3D CM

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. :stuck_out_tongue:

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… :person_shrugging:

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.

13 Likes

this looks cool as hell. Absolutely mark me down for any future updates. Did you make all this by yourself?

1 Like

Hi, Grace.

Yeah. All but the photographs of the sun and stars. I think Nasa made those.

I’ll be using a few CC0 art assets. Maybe sfx too but I think making my own sfx is better since I know how to do it.

I assumed (when reading the title) that you were gonna port 3D Yogstation and fix it up for CM

This is crazy.

1 Like

idk what 3d yogstation is.

when I first heard of ss13 through “mandalore gaming” I did hear “there were a few attempts to get ss13 off the engine, but none have been successful so far”
The only 3d one I saw was a Doom 1993 thingy.

I have pretty ambitious plans so I think custom is prolly best.
Plus I suck at other people’s code :stuck_out_tongue:

this is 3D yogstation

Hierophant fight but its 3d

how to run the yogstation 3d test server offline

1 Like

where vomit reaction?

lighting needs to be better IMO.

Neat though that someone did all that.
Hierophant link is neat. looks too… 90s or …NES 8 bit? for me.

Cool! But yeah… naw… gotta look like shitty psx minimum IMO. Got a whole vision of how shits going to look.

1 Like

Doesn’t look like anything, but I’m like EXTREMELY close to full Rollback Compliance, which is the hardest, but BEST rollback there is.
I’m going back to school…. maybe for this game, idk.,…

I have too much emotional attachment to this game.

I re-coded stuff in Open GL, and I’m going to a school to learn more about low level engine development … maybe just to make this because I completely lost my mind right before / as I started playing CM…. So Some part of my dead soul is engraved with this game.

I just don’t have time THIS week to do ANYTHING between my interview with Roblox, AI homework, and Computer Imaging HW.

idk what I’m doing but… The data structures and tools are being developed.
I will NEVER forget about you.
Without my ex, you’re all I have to hold on to.
Something deep in my soul… something lost in my loss.

I love you and I need to do something for you…
because I’m completely lost without you as my axis of origin.
The physics library was made that is COMPLETELY deterministic which is BETTER than a LOT of AAA physics engines FOR networked games.
I also am learning Linear Algebra and Calculus to make the Deterministic Physics and Occlusion Engine better.
I will learn about raycasts before December if I’m not mistaken.
On a mathematical level, so I can help those of you on Core 2 Duos, which I know some of you exist.

Also, there’s this one dude that’s someone somewhere in this game that is a badass.
Hi person! If you’re still lurking forums.

I know a LOT of people are leaving CM which makes me very sad, but I completely understand.

If any staff are interested in this project, preferable in 3~4 weeks, hmu by Discord, or shoot me a DM. I’ll try and log in again this weekend… I know it has been a while.
Everyone is invited.
Except Nanu.
Fuck you Nanu!

1 Like

There’s a lot of ways to make a game engine, depending on what you’re going for, latest architecture is ECS, before that it was mostly OOP.
ECS has better performance (if correctly implemented), implementing it can be challenging depending on how far you want to go.
OOP varies a lot, just go with what you know better.

If you need help with determinism over a network, look at gafferongames:
https://www.gafferongames.com/post/introduction_to_networked_physics/
Read most of the early blogs (the ones all the way at the bottom), should help you avoid some headaches down the way.

I don’t know what your end goal for your project is, but if you’re going for a 3D remake of CM-SS13, you will have to figure out a solution to the vision & range differences between 2D (2.5D now I guess?) and 3D. In CM no one can really see past their rather limited view distance, but you do see in all 4 directions equally well.
Perhaps a top down perspective like Foxhole would be the best match? I’m not really sure.

naaa…
I only want an fps viewpoint.

I want it to be an FPS.
I am going to look at various fog options with 7 m views. Based on some very very very light Godot tests with 7m views, it seems to be mostly fine.
I also did see some of GafferonGames stuff. Byond appears to use a form of Lockstep which is what many RTS seem to use. Based on various discussions with peopel I forget where they work, and an Activision Employee, Rollback is the best solution for network protocol. I’m going to TA some network programming with a dude that does stuff and thinks I should be a TA for game networking 2 without taking networking 1.

I don’t remember everything I read by gafferongames, but I read a few of his things in the past.

I already have a physics system that is integer based with cos / sin lookup tables for rotations, and various scales for positions.
According to redacted Integer mathematics is extremely fast. Even if you have to parse floats to integers, so my system should be really efficient by default.
I got some insight with various hyper optimizations.

The core elements to the marine side is 100% the fog of war, lack of communication, and lack of information.
This is player dictated on how to win the match. If anyone falters, the xenos will be able to take advantage.
Considering I can hypothetically lock viewports to 90~120 degrees of FOV, and indestructable walls of caves limit distance views, there should be a lot locked down.

I haven’t been able to get shit done with calculus…

What really makes CM imo is the experience not the balance.
So as long as I can hit the nail on the head with how it feels to play, it should be awesome.

2 Likes

I hope you are doing well man.