Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Blood Lines Devlog #2

Introduction

Hello everyone, I'm back with another post on my work-in-progress indie MMO - Blood Lines. This fortnight, there's new music, a new launcher, and a number of technical overhauls.

Game Launcher

Game updates are normally downloaded manually. This is fine for single player games, because it doesn't matter if a player is using an outdated version. But in an MMO, every player needs to be correctly synchronised (imagine one player receives an item that doesn't exist for another player).

So I made a game launcher. Instead of downloading the game files, the player downloads the launcher, which automatically downloads the game files if necessary before running the game. I open-sourced my creation in case you want to use it or look inside.

Server Architecture

Originally, the game worked as follows (technical warning!):

  • The player, made in Godot, sends its position to the server.
  • The server, made as a standalone program, sends the position to other players.
  • The other players render the player's position.

I went with this approach because it clearly separates the duties of the client & server, and it's also very performant. However, it has serious difficulties:

  • The server doesn't run a game simulation, so it can't verify input or run pathfinding for enemies.
  • It makes it cumbersome to share code between the client and server.
  • My implementation used TCP, which has more latency than UDP.

I took a step back and rethought the client/server architecture. This time, the client and server are made as a single Godot project, which are separated at export. Now it works like this:

  • The player, made in Godot, sends its position to the server.
  • The server, made in Godot, moves the character.
  • The server replicates the game simulation to other players.

Overall, this is much easier to work with and gives the server more control over the game state, even if it comes at a performance cost.

Music

For each place in the world map, there's a unique background theme. Here are the first two, composed by Hozach and Joshua Thomas:

Nakano City is swarming with phantoms, due to the Sinkhole.

The Shrine has statues of cats around every corner, respawning fallen players.

Discord

Feel free to join our Discord Server for updates!

Support this post

Did you like this post? Tell us

Leave a comment

Log in with your itch.io account to leave a comment.