Java Multiplayer FPS Engine

I’m currently developing a Multiplayer FPS Engine for Java (nicknamed SteveTech1 in tribute to Id’s naming convention) after spending way too much time playing Overwatch & TF2 and wanting to see if I could create a multiplayer FPS engine of my own. It’s designed to be something like Source engine but written in Java and have all the code required to write a proper multiplayer FPS.

There’s still plenty 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
  • Entity system

I’ve written one game so far, to demonstrate the features, called Undercover Agent:-

(Excuse the jerkiness, my poor laptop is running a server and 2 clients and recording the desktop).

It’s all fully open-source (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.

11 Likes

Amazing work keep it up :wink::wink::wink:

Is this built on https://jmonkeyengine.github.io/wiki/jme3/advanced/networking.html ?

Thanks! Been at it for about 4 months now and still got the enthusiasm.

I did originally use SpiderMonkey for networking, but I had some problems with it (can’t remember what exactly) so I moved over to Kryonet.

Hi Steve,

Thanks for the share.

I made myself a game engine in Java (no JMonkey), also open source, GitHub - g-amador/JOT: JOT: A Modular Multi-purpose Game Engine.
Feel free to use any code, features or ideas if you want, in order to make yours an even better engine.

If you want to discuss either feature you wish to integrate feel free to give me a post, message.

Cheers

My multiplayer FPS engine is still going strong. I’ve used it to start remaking the classic strategy game Laser Squad (the precursor to X-Com) as a multiplayer FPS:

I’ve also started a small tutorial on how to use this engine. It’s almost pretty straightforward to create an FPS using it. The only problem is getting good 3d models!

2 Likes

I’ve just started using my Java Multiplayer FPS engine to write a multiplayer “Alien Isolation” type game, although I could only find a zombie model to use.

It’s not much to look at at the moment, as most of the work is on the zombie AI, to get them to act just as they would in real life. :grin: . Even zombie’s don’t have eyes in the back of their heads, I assume.

2 Likes

I’ve been flitting from project to project that use the multiplayer FPS engine, so I hopefully avoid the inevitable boredom that comes from working on the same project for so long. This is also good for ensuring that the gine can handle a wide variety of game types.

Thus it was only a matter of time before I started a PUBG/Fortnite battle-royal type game:-

This is just me playing against 49 other AI’s to see how it would cope with all the entities and collision detection (and the fact I don’t have enough computers or friends to join me :frowning: ).

For my next trick, I’m starting a multiplayer game called “Replicant Hunter”, which will use a simple procedurally-generated Cyberpunk city which the players have to race around to be the first to find and kill the evil replicants. I might see if I can procedurally generate some emotionally moving final words when each replicant is killed.

9 Likes

I don’t think I mentioned it here, but I’ve written a small and pertinent tutorial on how to use SteveTech1 to create multiplayer FPS games, found at https://multiplayerfpstutorial.blogspot.com/ .

In addition, SteveTech1 now has built-in support for voxels, and (I finally gave in to pressure) now also uses Maven for its dependencies etc…

2 Likes