Java Multiplayer FPS Engine - SteveTech1

Hi Everyone,

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
  • Lag-compensation
  • 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 , 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.


Looks pretty cool! :slight_smile:

Thanks. :slight_smile: 3D graphic design isn’t my strong point, but as is often the case, all the hard work is happening in the background.

Are you using LWJGL 3 or 2?

I only use LWJGL indirectly via using JMonkeyEngine for the 3D, so whichever version that uses. I’m afraid I don’t know which specific version it is, or how to find out?

Maybe there is the build file with the library jars? If not, maybe Google knows it.
I was just curious :slight_smile:

It looks like JME can use either version, but I seem to be using LWJGL v3 by default.

Work continues unabated on my Java Multiplayer FPS Engine. Shooting has been a particular problem, what with players viewing a delayed view of the world but wanting to see a bullet immediately. Who’d have thought that a multiplayer FPS engine would that complicated!? :wink:

I’ve just started using it to create a new multiplayer zombie survival game (a bit like Alien Isolation, but I could only find a zombie model).


It’s not very pretty at the moment, most of the work has been on the zombie AI. Zombies can only see the player if they are in front of them, and if they do see them, they chase them and bit them. All good clean fun.

I’ve also started a tutorial on how to the this engine to create your own multiplayer FPS’s without having to do all the hard work:

The way your zombie looks and moves makes me uncomfortable as hell lol

Impressive, and way beyond my capabilities (I stick to 2D, much safer ;D). The zombies remind me of the horrible nurses in Silent Hill (I think it was part 2). I did notice that your viewpoint is kinda low, seems like your playing as a little person.

Thanks for your comments. I can’t take any credit (or blame!) for the 3D models since they’re just what I’ve borrowed from the internet. My work has all been focused on creating the multiplayer FPS engine, which I’m currently using to jump on the latest bandwagon and create my own Battle Royale: ;D


Again, none are the models are mine, I’m indebted to the internet.

I’ve just started a tutorial on how to use SteveTech1 to create your own FPS, or more specifically, a “multiplayer FPS Tower Defence” game, since that encompases everything you need to know to create an FPS and more, like construction (for creating that Fortnite clone) and AI. So far it’s up to the stage of walking around and seeing other players walk around, but there’s more coming very soon.