I'm in... Will be making an online multiplayer game!
Over the last 7 years I've been taking part in Ludum Dare (as well as the Global Game Jam) with 5-10 friends using our own real-time collaborative game-making apps CraftStudio (XNA/FNA-based blocky 3D engine with Lua scripting) and then Superpowers (Three.js-based engine with TypeScript scripting). It's been a lot of fun and we made games aplenty! (1)
Confiture, a framework for creating online multiplayer games
This time around, I've set out to build Confiture (2), a C# SDL2/OpenGL engine & framework for writing online multiplayer games! I have been and will be streaming my work on it in the weeks leading up to Ludum Dare 41. Mostly commenting in French by default but happy to chat in English too!
Why this tech?
After fiddling with Web technologies so much lately, I'm kinda over working so far removed from the machine. It's really cool to have the "no install" experience and Node.js has cool sides but boy, it's just too many layers, tools, compilation steps and workarounds.
I think going forward I'll mostly treat the Web as a compilation target (through WebAssembly). C# / SDL2 / OpenGL are pretty good medium-term candidates for that, so that's good.
In the absolute, I'd love to work with a lower-level, non-GC'ed language than even C#, but I haven't found anything reasonable to work with at the moment (excited for Jonathan Blow's upcoming JAI language though!). I'm not willing to put up with C++'s idiosyncrasies during a game jam, especially not with a whole team and several coders.
The .NET ecosystem has finally gone truly cross-platform with .NET Core, including easy all-dependencies-included deployment. It has fast compilation times, a pretty great IDE, a lot of traction and a language whose evolution is at least taking game developers' needs into account.
Current status and roadmap
Right now I have all the low-level engine stuff done: windowing, input, rendering, packet reading/writing... The main tasks left are:
- Networking: shuffling around TCP sockets and segments!
- Some animated 2D sprite support and a small UI lib maybe!
- A basic game logic structure including lobby & stuff so that we can focus on the fun parts during the jam!
- If time permits, loading & playing back animated 3D models: glTF to the rescue!
So that's a lot of work haha, though I have experience with all of those so hopefully I can fit that into my spare time over the next 25 days! We'll see ๐
(1) Ludum Dare games, Global Game Jam games and recent games
(2) "Confiture" is French for jam.