Hey. I've been working on beta15b, which is another code overhaul update. There isn't much content, but it's a rather big update for me because of a lot of technical changes were made in order to optimize things and get the project code up to speed.
I've been nervous of pushing this patch but also can't continue with content until it's out, so I've decided to create a testing branch first. There are some fun changes:
- Stock market added to Survival, other Survival changes
- New Zpitter ability in Zombrains
- 'Smarter' interaction with picking up stuff (Medikit priority over weapons, etc)
- Grapplehook rework, other weapon balance changes
I won't be posting an official changelog quite yet or make this flashy because I don't want to lead people on who might read too fast (like me). So to learn how to gain access to the branch, please read my post thoroughly for the password. I don't want players to 'prefer' this branch, so please just switch back when you're done testing.
Here's what technical stuff was changed in this patch:
Updated runtime version: I have updated B-Man to the latest runtime version of Game Maker Studio 2. This version of GMS2 is very very different, and changed a lot of engine functionality. This alone made many bugs when I ported over the current version as it was, I believe I fixed things up quite a bit but there will be certainly be oddities lurking, report them as you normally would. You also may notice the install size has become quite larger.. this is the EXE file dramatically increasing in size. I don't have a solid explanation why, I'm guessing it's a change in how Game Maker compiles the exe file now.
New login server code: I have rewritten the server login code and ported it to Python 3, I also merged the v1 and TUNNEL DIVERS server lists into it, so they're all in one place once I make the switch. I haven't had any trouble at all testing it so far, but the Workshop might not work correctly right now. Untested saving is always a little sketchy so you will be logging into a separate server on a temporary new save file when testing. Your existing save data will stay safe on the other server that you've been using, I also figured this would encourage players to switch back to the main branch when done.
Performance optimized: I made some strides optimizing collision, AI, graphics and processing netcode to reduce resource usage for both server and client. Some players were complaining about a stutter, and I think I found and fixed a couple but no promises that all of them were fixed. They can be difficult to track down or find an explanation for, so the more info you provide about your stutter the more likely I'll be able to fix it.
Optimized netcode: The biggest optimization I made was the bandwidth usage and packet activity. Mostly everything has been stuffed into the big game state packet, and I also brushed up on proper data buffer creation, it turns out B-Man, both v1 and v2, had been sending a bunch of useless 0s within it's packets which contributed to the bloated bandwidth usage. The decrease in packet activity means the game sends less packets per second overall, therefore reducing your packet loss hopefully.
Spasdll file: This is a new Game Maker extension I'm making for myself, which really only has the memory cleaning stuff from the other DLL file. The reason I'm mentioning this is because it's made in C++, so it might really pi
ss off your anti-virus since it was made by me, whos just some chump. If it does set off an AV warning, then just let me know if you can. I'd like to gauge how often its occurring. If it happens too much then I'll probably switch back to the old DLL file until I figure out how to get it signed or something. Similar code is actually up on
my github but as a different file w/ different function names. If you (or your AV) really don't trust me, then you can just delete spasdll.dll from the installation and B-Man should still run just fine.
Dedicated Linux server: Now that I'm up to date with the GMS2 runtime, I was able to start figuring out the Linux version. It will not be available for player use for a little while, but it's doing pretty well so far. You will notice I have given my server's regional tags, the European ones are on a Linux box, so try to take note what server you were in if you have something to report. My servers are on VPSs now, so they will no longer have bots (except Royale) and run at lower settings. The password to the Steam beta testing branch is the first letter of every underlined word in this post, all lowercase, no spaces. You should also still be able host your own server with hole punching like normal.
If everything works, then great, I'd like a quick turn around to pushing out this patch officially. But I'm anticipating some sort of horrifying bug that will take up some time to fix, I'm already dealing with a mysterious crash on the Linux server export.
I don't really want too many jumping on this branch, so if you can't figure out what the password is or how to use it, then for my sake you're probably better off waiting a little while longer. I won't be looking to help with it since I think you're not really missing much, but you can ask other players for help if you really want to try it out. Thanks for your support!
[ 2021-05-16 05:39:53 CET ] [ Original post ]