What’s benzine? That’s the placeholder name of a project, I am working on for over a year now. It is supposed to be an online multiplayer game, based on the unity engine.
What is it about?
As I am currently the only developer working on this game in my spare time, I want to keep the game fairly simple. It is a turn based online multiplayer strategy game with two sides, blue and red, that fight over resources, construct fortifications and try to eliminate each other.
What is already done?
Let’s start with the server side. The server is powered by nodejs and uses colyseus to communicate with unity clients. Why nodejs and colyseus? It is cross-platform, runs fairly well on my vps, as well as local machine and is easy to deploy. And the most benefit is, no need to run unity on the server side.
Following components of the server are already more or less done:
- user registrations
- user/client authentications
- presistent data storage (pgsql)
- game room creation
- random map generation
- unit creation
- unit movement
- unit attacks
- turns
- web based chat
Why unity on the client side? This has a bunch of reasons, but just to name a few: unity is “free”, has a ton of tutorials and a fairly nice documentation. Yes I point at you unreal! Get your docs together :). Did I mention it is cross platform? I plan to release the game as a mobile (android) version first.
The client side has already the following features:
- login screen
- a simple main menu
- join a game room
- create a new game room
- rejoin same game room on crash / lost connection
- visualize the server’s map
- camera movement / zoom
- basic unit movement
- basic unit attacks
- visualization of the unit’s possible moves/attacks
- basic UI
- ingame chat
What is planned ?
There are quite a few features that I want to add, but at the moment I try to keep the feature set quite limited. Otherwise I fear that nothing will be finished in my life time…
The main goal is to get a simple online multiplayer game running, so at the beginning I will try to restrict myself to only implement the absolute basics like some sort of player level progression with basic statistics about the player. Something like the count of played, won and lost matches. Also the game mechanics will stay quite simple. There will be basic attacks for each unit type. The only differences will be how far and how strong attacks are based on the unit type and the current terrain the unit is positioned at. Looking at the first “playable” version, only a few components are missing. I need some sort of simple Ai, so users don’t have to wait until someone is available to play against. And the game logic needs winning conditions, fancy animations and sounds.
I guess that’s enough for a first post. I will try to post a bit more frequently about this project 🙂