Any open-source multiplayer FPS's?

I’ve googled around and scoured the net, but for the life of me I can’t seem to find a single open-source multiplayer FPS written in Java, not even in JME. Am I being blind? I was thinking of writing one and I just thought I’d check if there wasn’t another one that I could start with. There seems to be a few non-open-source ones.

Well, since those games might be written in another game engine, I don’t know if that would help you much… Everything could be implemented a little different…

But if you are just looking for a basic approach on how such an FPS game is setup you basically can take the concepts of those projects and adjust them to your needs. I mean, you don’t want to copy those, right? I suppose you want to create your own game? The best might be to start small and setup your game step by step (on paper) so that you know what exactly you want to do.

I know that I could not answer your question directly but yeah … you know … :smirk:

Various multi-player implementations from basic to messages to authentication and so on. Explains the concept and gives examples to get you where you need to go.

Thanks for the answers. I’m really looking at least for a basic multiplayer FPS, to avoid all the boilerplate work required to get one up and running. I’m quite surprised there doesn’t seem to be one.

I think you might find that the “boiler plate” is nearly everything in an FPS. All of the really hard decisions will have been made by then… and any different decision will lead to TOTALLY DIFFERENT “boiler plate”.

To me, it’s similar to asking “Why are there no match 3 gems style puzzle game examples?” Well, because the base game would already be 80% done by then.

An FPS is quite a common genre, and (by definition) all involve walking around a 3D world shooting at other players, i.e. the boilerplate stuff. However, there are still hundreds of “sub-varieties”, from Doom to Overwatch to PUBG. I’m just looking for a basic FPS that I can turn into another “sub-variety”, and I’m very surprised there doesn’t seem to be a single open-source one in Java. One of the supposed advantages of open-source is that someone can take the code and extend it without having to start from scratch. (And there’s lots of match-3 puzzle source codes available :stuck_out_tongue: ).

If you don’t mind working with Quake2 era designs there’s Jake: Bytonic Software

And the so-called “boiler plate” for each of those is as different as a cat and an apple.

The FUNDAMENTAL questions in the design of an FPS:
-how do you handle networking?
-how do you handle physics/collisions?
-how do you handle predication/cheating/etc…

There are a variety of solutions to each of those problems… the combination of those is even more numerous than the number of FPS games out right now. And the choices you make HEAVILY affect the game.

so, yes, someone could throw together a simple FPS. And you would have to throw it completely away as soon as you wanted to change one of those things.

Else… spend 12 or so hours connecting bullet, the ogre model, and SimEthereal. Done. Useful beyond “Look what I did?” Probably not.

So if you wanted to you could go through the tutorials for how to create a game with jME. I know this is going to sound like me somewhat blowing you off but if you start with the beginner tutorial and get to part “i” you’ll have the knowledge to create a basic FPS.

a) How to make a jME game.
b) How to manage “things” in the game.
c) 3D models and what not (your character, enemies and buildings)
d) Actually making the game “work” when things happen
e) Keyboard commands.
f) How to make things look real with textures. (Camo for your soldiers for instance or dirt for the floor)
g) Animation… pretty self explanatory. You need animations to make enemies look like they’re walking.
h) Enh. Could probably skip this one for a basic FPS.
i) Stop your character (camera) from walking through things.

https://jmonkeyengine.github.io/wiki/jme3.html#tutorials-for-beginners

Sure at “i” you wouldn’t have physics yet, or audio, or cool shader effects… But you’d have a room built (through models) a bad guy standing around, you in a camera moving around, and the ability to click and shoot things.

Note: I haven’t tried making an FPS before. Just saying that from “the basics” this should be enough.

Yeah i think you want to make mods, not games… it sounds a lot like what you are describing tbh.

Thanks for the pointer; I’ve seen Jake2, IIRC it’s pretty old, and more of a line-for-line Java re-write of the C code using lots of static methods.

I’m a bit confused by all these other replies. FWIW, I’ve written loads of games in my time, many with JME and more than a couple of FPS’s. All I’m looking for is some existing code to save a bit of time. Am I the only person who’s had the thought of using an open-source game as a starting point for a new project, or does everyone start from scratch every time they write a game?

So far as I know, that’s all accurate.

I think part of the trouble is that a huge majority of the games in the world are either written in some proprietary C++ engine + engine-specific scripting language or in Unity. Re-use of code is pretty common with Unity, I think, but with other engines I don’t think it’s as common. By the time you’ve used Unreal’s blueprints (for example), you probably pretty much have your own game already and it’s not so much a common starting point as it is a game itself (as others have already said). It also doesn’t help that most FPS games are huge commercial ventures running on proprietary engines. The only open source FPS engine that I know of is Quake, and it’s pretty old. Even with Quake being open source, I could probably count on one hand the number of open source games that I know of that use it. So far as I know, writing an FPS in Java is pretty much unploughed territory if you’re looking for a basic engine to start with. All that being said, I don’t think that writing an FPS in jME would be a horribly difficult venture considering the immense value of jME + extra libs that others have open-sourced (I’m thinking of @pspeed’s Lemur, SimEthereal, Zay-ES, etc.)