Smelly Hippie gave me permission a couple weeks ago to talk about 3D CM here on the forum.
Been working on and off on this. Netcode is a MoFo…
It doesn’t look like much of anything but I have a lot of the infrastructure finally working so it can be networked properly. Syncing hasn’t been implemented yet, however.
There’s 50 “humans” in this scene here, but because of how possessing “pawns” works, each player can only control “his.”
The bodes are white because of some kind of “assimp” configuration problem with my model or UVs or something. Not really a problem atm.
I’m writing this all in C# with Raylib and Facepunch’s Steamworks. Raylib is a graphics wrapper for Open GL that makes it a bit easier to do basic stuff. Setting this up in Open GL would be at least another 500~1,000 lines of code.
Having read a bit of “Game Engine Arcitecture” I planned to be able to “slot out” raylib stuff for Open GL stuff should I feel a need to do that later.
Working with netcode projects on a “socket level” in the past, having the client and server simulate the same things is pretty important. So I structured the basics of the project’s network code to be like appropriately separate.
So all the Client netcode and stuff is in the client, server in the server, and then stuff that’s shared like the actual game logic, packet definitions, etc.
To make it so I don’t have to run multiple instances of the program, I setup singleplayer testing to begin. Instead of passing packets to the network card, I pass them as arguments so all data even locally is still serialized/deserialized.
C# has made it decently easy to “genericize” how network transmissions work with the memory management and stuff.
I want to reduce the calculations and stuff of everything, so a lot of data is like idk.. enumerations at least for now.
Keeping things simple:
Lots of options for playing planned.
Main ideal is a primary server, and then the possibility for people to just play with their friends.
Also on CS:S, “Dust 2 24/7” servers were popular, so “LV624 24/7” could exist too should someone have only time for 1 round and opt for LV 624 if that’s what he wants to play.
I have a lot of game modes planned for diverse experiences, and high, med, low pop.
Also got a pre-game lobby screen:
This is just my work. I shared some private screenshots and stuff.
A lot of the codebase design is such that later, I can more easily implement things in different ways.
This is my 2nd or third “socket level” game. Maybe 5th or so socket level project.
Because of what code I will have to write, I’d end up not using most of a game engine and I’d be writing most of what a game engine would do for me anyway, I opted for just making the game… THE engine… so it’s just straight code, no engine, no overhead (besides C#).
I’ll prolly post more shit here later.
This is a big milestone for under-the-hood stuff.
I’m very likely going to go in a different direction than the maintainers are going in.
There’s a few maps I’d love to get into the game. LV 624 and Solaris Rizz are probably the only ones I’d have rights to use. I have to double check the license with what I downloaded from 2014’s github.
Whoever made Fiorina, hihi. Money?
I’ll just not say anything further about CM direction because I have nothing nice to say.
OH!
Also.. art direction!!!
Space hulk vengeance of the blood angels:
I have little reason to believe the game won’t look similar to this.
I also think “space hulk” (derelict abandoned frigate space ship) maps are cool and I want to bring some of those to life.
Additionally, I was doing Dunkey’s 2025 game jam and his theme was “Power” or something so I was working on this:
So the idea was basically Dead Space but on a Dyson Sphere. I made models and animations for doing APC board replacements in first person.
I started 2 days into the jam and needed 2 more days to finish so…
I think it’d be cool asf to be on a Dyson Sphere fighting monsters.
I would not use any Alien IP. I’d change everything, and have all that sorted out in my head.
When I was younger, my friends would fight other imaginary bugs that we have a name for.
I thought out what I’d like to do with that.