A few months ago after spending way too much time playing Overwatch & TF2, I started work on a Multiplayer FPS Engine for Java (nicknamed SteveTech1 in tribute to Id’s naming convention) to see if I could create a multiplayer FPS of my own. I designed it to be something like Source engine but written in Java, and have all the generic code required to write a proper multiplayer FPS.
There’s still plenty of work for me to do and it’s not been thoroughly tested in The Real World ™, but the bulk of the difficult coding is done and it has the following main features:
- Authoritative server
- Client prediction
- TCP and UDP
- Collision detection
- Simple physics
- Hitscan & projectile weapons
- Simple entity system
I’ve written one test game so far, to demonstrate the features, called Undercover Agent:-
This example game is like What the Box; each player is an identical looking snowman surrounded by other identical snowman, so the challenge is to identify the other players and shoot them with snowballs. (Excuse the jerkiness, my poor laptop is running a server and 2 clients and recording the desktop).
My next project with this engine is a multiplayer realtime version of Laser Squad/X-Com, which is still very early in development:-
The engine and example games are all fully open-source and available at https://bitbucket.org/SteveSmith16384/stetech1 , so if you fancy writing an FPS, feel free to clone/copy it or just have a look. Once the code has bedded down, I aim to write a tutorial on how to use it, but the example game gives a good idea as it is.