ProBot

First 3D prototype

This story begins in 2011 when a friend and I had this idea of a robot fighting game where you would build and program the robot.

We started working on the first 3D prototype (no pictures here). However we quickly were overwhelmed with the synchronized networking of physic bodies.

2D prototype

Years later, I got back on the project alone. In the meantime, I learned about deterministic lockstep and here was my solution for networked multiplayer. For the sake of simplicity, I started with a 2D prototype. The code is available on GitHub.

    alt
Main Menu

There is a functional editor with assembly of a few simple shapes and components. The CPU can be programmed using JavaScript.

    alt
Robot Editor

I implemented this deterministic lockstep technique and managed to get playable multiplayer over the internet. Robots can be split in two with lasers and the two parts will function (or not) independently.

    alt
Networked multiplayer on a single machine
    alt
Laser!

However there wasn’t really a good separation between engine stuff and the game itself and two dimensions weren’t enough to make the game interesting and enjoyable.

3D engine

Therefore I started working on a new 3D prototype. I properly laid down the foundations of a simple 3D engine based on OpenGL. This engine aims at displaying colored low poly models with automatically highlighted edges.

The code is available on GitHub (engine | prototype).

    alt
Main Menu
    alt
Simple model test

Moreover this engine provides a solid and modular implementation of the deterministic lockstep technique. It was successful at implementing a simple multiplayer pong.

Remaining work

Implementing the game itself with this new engine is work in progress!

Marc Ducret copyright © 2024