First monthly dev log


Hello everyone I’d like to post an development update at the end of each month starting from now.

As this is the first devlog beside the one talking about the prototype I’ll cover all major things included in the (yet to be released) alpha.

The next update will follow around June 1st which might not contain many new things as the current month is like 50% over.

Dedicated Server: The game does feature a client server design model across all areas. Including singleplayer. This was done in order to allow for multilayer games right from the start and prevent extensive re-desing of the games code to add multilayer later.

No worries this does not mean there is an always online requirement for this game. In fact in singleplayer mode the client will launch a dedicated server on your local machine and will connect to itself so to speak.

A client can either join an existing lobby or host a new one from the in-game menu.

Lobby: A working lobby system has been implemented. Players can connect to a hosted lobby and see other players inside the lobby. Also there is a way for a player to authenticate as “master” which means this player will get full control over the server.

Master clients can change server settings and launch the game. In the future there will be more actions added for a master client to perform. Such as ban and kick players.

Chat: The lobby screen also features a chat which can also be disabled server side or on the client. This was done in order to silence a server if a player might play online with other as we know online communities can be toxic at times.

Therefore it was added that server administrators can disable chatting on their self-hosted dedicated server. Later on I plan on adding a per-server chat enable/disable option on the client side.

Universe generator: An initial version of the universe generator is also present. Which will generate a new game based on a given seed.

If a new game was launched players will also get assigned a random home planets with some basic buildings and resources to later on start playing.

As of now this only happens on the server and a client does not receive this data. Mainly because there are a few client only things to be done first in order for this data to make any sense.

For example there is a missing client side scene builder which will receive game data from the server and dynamically build a local scene for the player to interact with.

Server nodes: As an average game will feature multiple playfields which need to be actively simulated in parallel the server will spawn additional mini servers to do the actual server side simulation.

This has three advantages / reasons:

  • a dedicated server can make better use of a multi core CPU
  • As Godot only knows one active scenes it would be very difficult to simulate multiple scenes in parallel on the server which do not interact with each other
  • In theory this system can be extended to distributed the load across multiple PCs

Orbit camera: An initial version of an orbiting camera is also implemented.

This type of camera can dynamically be attached to a game object and will follow it in a given distance. You can think of it like a regular third-person camera in other games.

If the focused object has changed it will then performs a smooth transition towards the new object to avoid jumping.

Zooming and rotating the camera around the focused object is also possible.

Planets: Planets are a thing already which feature different biome types such as Arid, Lava, Oceanic, Rural, Rocky and a few more.

Also there is an more abstract “orb” class which is used to simulate the movement of celestial bodies.

Warpgate: An early version of a warp gate is also present. Even though it behaves more or less like a planet but with a different 3D model.

Warp gate

Background Music: An initial background music player is also present which plays the “main theme” of the game and afterwards a random track

Save games: Save games are also a thing and stored on disk as soon as a new game was launched from a server lobby.

Generated Names: Players can of course also set their own player name. By default the game will however generated a random name. This name is generated using an adjective and an animal name.
For example JumpingRabbit, ScreamingBoa, ClumbsyEleephant…

For a Server lobby a similar technique is used but this one will combine a place you can be with an animal name. Like Rabbit Couch, Fly Palace…

Godot 4 port: Also the game was ported from Godot 3 to Godot 4 as the development started during the Godot 3 age. This required a lot of rework of existing code and especially around the networking code. But I assure you this upgrade was totally worth it! As of writing this devlog I build the game using Godot 4.2.2

I think these are the most notable things as of now. See you next month! 👋

Get Space Conflicts: Empires

Leave a comment

Log in with itch.io to leave a comment.