FPS v0.1

Motivation

I want to introduce you to another project. I have always been a big fan of Quake 3 Arena and Half-Life (especially the Adrenaline Gamer Mod). That’s why I started to develop my own shooter.

The v0.1 Milestone

And today I present you version v0.1 of FPS - a very original working title, I know 😂. A small clip of the game can be watched on Vimeo.

Game-Features:

  • There are Characters
  • Characters have a position and life
  • Characters can move and jump
  • Railgun as weapon
  • There is a player character and a non-player character
  • Physics is integrated, gravity + collision
  • There’s a test level
  • The level contains several spawnpoints
  • logging and replay function for played games

Technical aspects of the Game:

  • Developed in Kotlin with jMonkeyEngine
  • The application integrates a server and client application
  • Client and server are only „connected“ via UDP.

Next steps

The first thing I would like to do is to separate the server and client-side better from each other. At the moment, the application is extremely closely coupled to localhost. To run the application as a dedicated server or as a dedicated client is currently not possible. I’d like to change that first.

After that I would like to focus on the network implementation. Currently only the inputs are sent by the client and only the GameState-Snapshots are sent by the server. Client-side prediction or server reconciliation is not performed. This works on the localhost, but it will not work over the network. Reliable messages and delta compression of the individual messages is also missing.

So there is still a lot of work to do before I can get back to the actual game content.