Not Quake – an example of real-time multi-player shooter (a bit like Quake :) ) using Castle Game Engine and RNL

Posted on

Not Quake - Castle Game Engine and RNL demo
Not Quake - Castle Game Engine and RNL demo
Not Quake - Castle Game Engine and RNL demo
Not Quake - Castle Game Engine and RNL demo
Not Quake - Castle Game Engine and RNL demo

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:

Notes:

  • (Edit: new-cameras was already merged to master!) 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.

Start the discussion at Castle Game Engine Forum