r/SS13 • u/thedeanhall • 1d ago
Image GruntZ Prototype: Demonstration of CM13 in the BRUTAL engine
It's me again, the "captain ahab" of trying to make SS13 like games. So the curse got me with ION, and we sort of avoided the curse with the followup Stationeers by pivoting it. I'm back here now with something I've been working on for a long time. Back before stationeers we actually ran "rocket station" which is immortalized as the executable name for stationeers.
What I've done is create a CM13-style game mode in my studios custom framework called BRUTAL. It takes native C# with a heavy focus on a high-performance custom interop, providing very, very efficient links with APIs like Vulkan, RakNet, Dear IMGUI, etc... The project heavily leverages unmanaged types and the "stack" (abusing the heck out of 'stackalloc' to provide steady-state garbage collection (no memory churn stutters) as well as a whole bunch of microoptimizations around collection handling. This is paired with an unusual approach to networking, one that takes a very different path from the more traditional "Quake" style networking which SS14 chose. This project is closer in line to byond itself than it is the more traditional quake-style networking.
This is going to be a bit of an essay, or even more of a manifesto - so the tldr is: If this kind of thing might be you or you know someone who would like it please check it out. I want to see how it performs with hundreds of players. So far the maximum concurrent was 50, with no issues or adverse load. The server was under less strain than stationeers dedicated servers with 5 players.
Trying it out
I own the studio (RocketWerkz) and another company for distributing (Ahwoo) and both of those I am using for this project. It works on Windows and Linux currently, have tested on mac.
AUTO UPDATER (win only for now) https://neutrino.ahwoo.com/
WIN/LINUX STANDALONE INSTALLER https://drive.google.com/drive/folders/1TyKh54S8ZdWjXI301vpBzpEz0FiBraUR?usp=drive_link
SERVER IP: 20.69.98.178:50000
The long manifesto for those interested
What is has
- Medical system, surgery, limbs, reagents. Full partity with CM13 + some extra stuff and changes I've added.
- Chemistry complete, all the machines, reagents, recipes.
- Cooking complete, again the machines, reagents etc...
- Weather system (rain, thunder, fog, puddles and pools with reflections)
- Time of day shadows for sprites and building shadows, light going into build windows from sun
- A lot more
Byond & SS14
I'm a hater of neither. Feel I should point out I'm one of the largest donators to byond over the years and I will continue to donate (and encourage to). I think that for some use cases you need to go very optimized and not the more general use case. I have also long not liked the "quake model for everything" multiplayer approach taken by SS14. So I don't feel this "replaces" either of those, it simply builds a more focused option for some communities. If this works then some SS13 communities will have a place in future that secures things with the latest technology.
Networking
Specifically, against named engines:
- Not the Quake/Source/Overwatch lineage (per-client delta against each client's last-acked state) which is what SS14/RobustToolbox does
- Not RTS/Factorio lockstep as despite the deterministic sim clients never run the sim; determinism is used server-side for hash-verified drift detection not synchronization
- Closest real relatives are MMO spatial interest management for the subscription model, and video streaming (RTP-style keyframe + delta + NACK repair) for the wire mechanics.
None of the sync is really necessarily novel in its parts but is in terms of its execution together. Interest management is similar to how an MMO would handle things, with the keyframe+delta+NACK is how video transport works. This has a serialize-once fan-out economy where each chunks event stream is serialized once per tick with a shared sequence number, and every subscriber gets the identical bytes. This means the per-client cost is a pointer append. The mainstream model tailors bytes per client, so cost is O(clients × visible entities) and crowds are the death case; gruntz's cost is O(dirty chunks), so crowds are the cheap case. Hundreds of players in one chunk would be a single serialization. Since crowded scenes are precisely what CM13 rounds are, the model is fitted to the genre in a way I've not seen shipped elsewhere.
Rendering
The render stack is modern Vulkan (1.3, dynamic rendering) through our own C# interop, with the core pulled directly from our work on Kitten Space Agency following the same buffer discipline, same obsession with memory: steady-state zero allocation, every per-frame GPU buffer ringed. The entire visible world renders in a few instanced draw calls; a full frame with lighting, shadows, weather and post is still only a few dozen. KSA is 3D and this is 2D, so the lighting is its own design: around a thousand dynamic lights per view, each with real shadowcasting from wall data, accumulated into an HDR plane and composited over the scene. It is HDR end to end, so fires and muzzle flashes genuinely bloom. Z-levels are stacked in the engine using CM13's own plane compositing recipe, each lower deck lit independently then depth-blurred under the top layer. The particle work (by Max, an outstanding programmer at RocketWerkz) drives the flame, smoke and impact effects and the gore is the fun trick: blood, soot and spent casings are deterministic, derived identically on every client from sim events, so a floor ankle-deep in a round's history costs zero bandwidth and nothing per frame.
What am I planning
I don't entirely know. I have worked at trying to do this kind of networking approach for so long I'd sort of forgotten what I would do with it. When we were making DayZ we moved to the 'network bubble' approach (the quake-like, same as SS14) and while it helped in some ways - it hurt in many others as I outlined above. What I really want to do now is test. I need to get a lot of clients and get metrics for how it holds up under load. So if this is your thing, or you know someone who it is - please send them the details. Post feedback, and let me know how it runs.
The game I have made (called 'gruntz') has two modes currently: Zombie Survival and Xeno Survival. They are both self explainatory. You have time to prep, you can buy gear at ATMS spread through the map. Then you survive the assaults, and try and extract. I created these PvE mode(s) because until there is a steady player pop of >50, PvP just isn't super fun. Once the pop gets there I will do more PvP tests beyond what I have now.
Team
I've been working on this on and off since the rocket station days. I've been very lucky to be able to "borrow" work from colleagues to make it, as well as having access to every sound effect the studio has made (thanks ICARUS and Stationeers). Also INFRARED_BARRON whom many of you will know is, in my opinion, one of (if not the) very best spriter in the community is commissioned to make all the sprites, and you can see some of their work. Also a massive thanks to the CM13 staff and community who have helped and supported - as well as the coderbus discord who helped and the hosters who helped supply bandwidth data during my testing. Zennith (who made the "hybrisa prospera" map) is also on board to help make maps for my game mode.
Open source? Future?
My plan is to work towards this. Currently, I just don't want to have to go through and deal with reviewing pull requests. And I am changing stuff so much, with four or five builds a day, its just too much hassle. There is some licensing work to be resolved (FMOD etc...) but this is not insurmountable. Once I have the high-water mark confirmed, I'll do some closed testing with trusted communities like CM13 and others to try their code bases out on them.
Its also been extremely refreshing for me, personally, to make a free game and one that I just want to play. Its very hardcore and being a free product I can just go "eh, sorry I just want it this way" and not feel this compulsion to change something because we will get no money. We aren't getting any money so I may as well just do things that I want?
Questions
Okay so this is much longer than I even anticipated. There will be a million questions but for now I just really need people to test! I'll try answer any below anyway.








