Source code for Quantum, an RTS with massive unit counts

Download Quantum

Many moons ago (7 years ago), i wrote a little RTS inspired by Dyson/Eufloria. I actually contacted the Eufloria guys before doing so and offered them to write a multiplayer mode for them. They politely declined and allowed me to write a clone with MP support. So that’s what i did.

After 2 months of work, Quantum was complete. We played it a lot at work. It got around 20k downloads from around the web after making my rounds on a few websites (TIG, JGO, etc.). Eventually, interest faded away and i forgot about it.

Fast forward to today. I was thinking about writing an RTS again. I remembered Quantum and started searching for traces of it on the web. I found a video and shortly after that a fork of the original source.

I forked the fork and started reviving it. A few hours later, it’s ready for you to shame my code from 7 years ago 😀 Here are features that might interest you:

  • Multiplayer via a latency-adaptive lock-step simulation, with thousands of units, inspired by the old 1500 Archers article
  • Scripting via BeanShell, a very old but super lightweight scripting language for the JVM. Here’s the complete AI.
  • A map editor

You should NOT take the code structure as a big inspiration! Code style, architecture and especially the graphics part (mixing fixed function and programmable pipeline) are NOT good. However, there’s a lack of fully open-source games out there that are more than a simple 2D plattformer, so i thought i’d share.

If someone opens a server, let me know 🙂

4 thoughts on “Source code for Quantum, an RTS with massive unit counts

  1. Thanks for sharing!

    Mario can you advice an open source game project on java with good architecture? Or may be an article or a book about game architecture? Thanks in advance!

  2. Just read this blog entry.. I find it really interesting that ppl have these very similar thoughts. Back then (2011) I also wanted a Eufloria Multiplayer version – and made one, but never officially published it anywhere. About a month ago I also thought of reviving the code base and I am doing so right now 🙂 First step was to switch from plain LWJGL to LibGDX 🙂 and for the network implementation I will also use lockstepping. I actually learned the hard way that lockstepping is the right way for 50+ controllable units in an online multiplayer game that I work on right now (not the Eufloria clone). Tried it with client-side-prediction before, but that was a big fail, as the network load was way too high.

    Also you may be interested in this thread: where Abuse posted a nice way to use strictfp for the whole project without having to use it on every class.

  3. Useful post , For what it’s worth , if someone was looking for a a form , my colleague discovered a template version here

Leave a Reply

Your email address will not be published.