Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - CompMix

Pages: [1]
1
Modification Help / [DLL] Rendering Optimization Experiments
« on: July 09, 2019, 08:31:04 PM »
Hello, I'm releasing the rendering optimization DLL I've been working on the last several weeks. It includes a few fixes to improve rendering performance and a *disabled* complete custom brick renderer.

Some exciting screenshots to start us off:





Check out that FPS boost!

So, to briefly outline the fixes, let's discuss the issues. The first issue is Blockland does not frustum cull objects during the shadow map generation pass(es). This means the entire scene will be rendered up to four times even if the shadow cascades are small! This is where the primary FPS increase comes from. The second issue is Blockland uses a bad heuristic to compute the orthographic projection (object to light space) matrix size when doing shadow maps, which greatly overestimates the size they need to be, causing more brick batches to needlessly be rendered even if they're culled against the frustum. Finally, Blockland uses an old frustum culling algorithm which is only mostly correct. Since it culls large objects (octree nodes), it falls victim to the issues discussed on this website: https://www.iquilezles.org/www/articles/frustumcorrect/frustumcorrect.htm. These issues are all fixed with this DLL! Warning: shadow cascade overlaps are forced to be ten percent of the z distance of the previous cascade because of these fixes. Some custom shaders will break unless fixed themselves.

B-But what about that custom brick renderer??!

Unfortunately for Blockland, its rendering pipeline is far too old to take advantage of more modern techniques like batching by location instead of texture in order to utilize technology like hardware occlusion queries. The sad truth is that we will never see effective use of occlusion queries in Blockland just because it's too old. As for why this happens, I'm not even sure myself (much hair has been pulled over this). I included the code for it anyways so people can experiment, but it is disabled by default.

Update: I'm going to briefly revisit this part of the DLL. See below.

Happy rendering!

Source

2
Off Topic / Birthday today. Eternally grateful for you guys!
« on: July 07, 2019, 05:51:29 AM »
Hey, I'm 20 now. It's been a rough 10 years ever since things started getting hard for me, but here I am coming out on top. I live in a sober home with a dozen other guys right now and it's super rad. I'm grateful to be free of the crazy drug addictions I've been through, and things are finally turning for the better.

Just wanted to say thanks to the Blockland community for being my outlet all this time. Computer stuff was my escape and my way to feel better about myself when I know I couldn't love who I was.

As a way of saying thanks, I'm going to compile a list of bugs I know about Blockland and try and help out the game as much as possible before you know what happens. I love this game so deeply and it has sincerely changed my life and my decisions. I also have several DLLs I'd like to publish as well. Hopefully you guys can make good use of them.

Love you all!

3
Modification Help / [DLL] Tick Rate Modding Experiment (updated)
« on: May 11, 2019, 07:10:46 PM »
Yesterday I wanted to see if it was possible to patch Blockland and enable variable tick rates as would be allowed if you had the source. Here I am now with a working DLL! I've tested 62.5 tps and 125 tps so far, and I'm currently hosting a server for those interested in experimenting with me. You will need to run this on your client in order to play properly, although interestingly clients without the DLL can still join. Attached is the source for the DLL. If you want you can add me on my discord (in my profile) for a build.

This is a special DLL! It needs to run before engine classes are registered with the console. So it won't work with Port's BlocklandLoader. Use Stud_PE to open Blockland.exe, go to the functions tab, right click the list in the "Imported Functions" box and select the DLL and the export "hello." This will add it to Blockland's imports and cause it to load before the main thread gets a chance to do anything. Make sure the DLL is also in the same directory as the exe. You can also do this on Port's modified exe to retain DLLs you already have.

(also, if you want to revert/remove the DLL to play on other servers, you'll have to undo what you did in StudPE.. or recompile for regular ~32tps. Back up your exe!)

Update for version two:
- Fixed projectile lifetime/armingDelay/fadeDelay range limits
- Added patch for max packet rate clamp

Note: $Pref::Net::PacketRateTo* variables are clamped both in the engine and in the dsos. So you'll have to re-set these variables after your server or client is done executing default scripts!! Can't say I didn't warn ya!

Apparently the player collision issues aren't bugs, it's just a side effect of how higher tick rate collision calculation works. This version should be complete, then! Enjoy!

4
Off Topic / Amends
« on: February 25, 2019, 12:18:57 PM »
Hey guys!

I'm working a 12 step program to recover from drug addiction and child abuse. It has done wonders for my mental and emotional health.

In it, I became aware of how my own selfish actions, through the behaviors I learned when I was abused and in active use, have affected others in the past. I have made many mistakes in the Blockland community, and I'm here to make amends for my wrongdoings. I'm here to focus on your issues, not mine.

I have enabled players to cheat through the use of hacks, and this has caused a lot of trouble on various types of servers, especially lava survival, TDM, and hide-and-seek gamemodes. I made BLHack and its derivatives to gain an unfair advantage on servers for myself. I then gave it to other people so I could feel better about myself and my work when they complimented me. Eventually, when the community voiced its disapproval, I felt self-rightous and egotistical, and continued to make more hacks to spite people.

I made a server crashing utility many years ago and had been silently taking down servers since 2014. This suddenly disrupts gameplay for those involved and ruins their fun. I did this because I wanted players to go into the servers I liked for my own benefit, or for a friend's benefit (these friends did not know this was happening), or simply to spite certain hosts or purposely ruin certain people's fun.

I made reverse engineering tools for Blockland in order to uncover code that Badspot did not want anyone seeing. I excused this as "helping the community" to feel better about my actions, and shared this code with others to feel better about myself. Revealing this code enabled people to abuse functions of the game which allowed impersonation, auth bypassing, and piracy. The angry responses from the community again made me feel self-rightous and egotistical.

I made many aggressive, harmful, and egotistical posts in my previous accounts. I did this to downplay others so I could feel better about myself, my accomplishments, or excuse bad behavior to make it sound good, feel in control of others, or sound like I knew everything about anything. This lead to frustrating and stressful conversations for others here.

This post serves as my attempt to make amends to those I don't know I've affected. Those who I do know I've wronged will get their own message from me as soon as I can. If you feel like a victim of my behaviors, here is the place to discuss it and how I can repair the damage for you. You can PM me, or make a post, and we can figure out something together.

I appreciate your cooperation in this. These behaviors are unacceptable, and moving on they will not be repeated.

Pages: [1]