We recently held a gamejam at Cat-astrophe Games and I decided to tackle something fun: can I make a real-time multi-player shooter (like Quake), using Castle Game Engine and RNL? In 1 day, during a gamejam? In turns out that yes! π
Iβm proud to present Not Quake, a new demo of Castle Game Engine and RNL. You can download the client (just run it and play!) from Not Quake on Itch.io. Or you can download both client, server, as well as the source code from Not Quake on GitHub.
Done in ~10 hours, I went from nothing to a simple shooter game, where multiple people can join (from clients on Windows, Linux, macOS, even Android in theory β though input on Android is not ready yet), send chat messages, and finally run and shoot. I went for a simple client-server architecture for this, just as a first attempt, with a central server that talks with all the clients β many other ways to do this are possible, but this was simplest to start with and indeed it works reliably for such a simple game.
The whole networking was done using RNL: Realtime Network Library, UDP-based network library for real-time applications and games, by Benjamin Rosseaux.
If you like it, please support us on Patreon:
- Michalis Kamburelis (Castle Game Engine) on Patreon
-
Benjamin Rosseaux (RNL, PasGLTF, PasVulkan and more) on Patreon
Notes:
-
It relies on CGE new-cameras branch, which is not yet merged to master. I wrote more about new features there in this post. It takes me a while to finish it (and merge to CGE master branch) β I have there still TODOs to fix mouse look in editor on Windows, improve 2D viewports, improve undo wrt. to cameras.
-
Now that Iβm more familiar with RNL, I want to refactor some messages code, to make it both simpler and more powerful.
-
It uses my fork of RNL for now, which contains a very ugly hack to hide occasional problem with sending messages. I have to debug whether it is caused by my code, or by RNL unit, and of course fix. Unfortunately the crash occurs ~randomly, and never when testing through localhost, only on remote server. So itβs a pain to catch it.
-
There are problems with macOS (mouse look, freetype) and Android (all input) clients. For now, Linux and Windows clients are really stable and advised.