Hi there. This is my first iteration of a 'dev blog'. I'll be logging the achievements, milestones and the things I learn while I make my first Unity game and first WebSocket server.
This is the code name of my project. To be put simply, the game I am developing is an infinitely sized massively-multiplayer online real time strategy space game. That's a mouthful to be sure. I decided on the Greek god Ares, as it's the god of war. Primarily, that is the intent of this game.
As a note to myself in the future: it doesn't have to be about war. There will be aspects to creating drones that will protect resources and could allow you to be a trader/traveler instead.
When starting this project, a friend of mine known online as 'Danish' had a laugh and created a Trello board while the game was thrown round as a jokey idea. At this point, it was called Sneezey's Space Game.
We were throwing round ideas. Ideas included
- Procedural universe
- Build & research
- Universal economy
I found myself actually thinking about the logistics. How it would work, how it would communicate.
Danish wrote some back-stories for the game. He called them game lore and starred a company called The Millington MegaCorp. With each sentence that was added to these stories, an actual game-story started building itself around them.
As of writing this dev-blog, I have a couple of working items. I'm really pleased with how far these have come. These include
- WebSocket Server with simple client tracking and sending locations
- Publisher/Subscriber model with the WebSocket server for scalability
- Game that recognises different clients
- A small model to represent a building (one day this could be custom coloured?)
I tested the WebSocket server with JMeter and could handle 2,000 clients. I haven't pushed it further but will end up doing so as the complexity increases.
There still needs to be error handling in places as it's currently missing. However, that will come in the near future. (Better late than never...)
Shown below is the demonstration of Project Ares with working connections. This demonstrates 5 different clients moving at the same time.
Just a heads up, the current player's cube is the servers knowledge of the location and the sphere inside is the clients knowledge of the location. Currently locations are updated every client frame, so ~60/sec. There's no 'gliding' between movements, it's just a 'set' of coordinates to the cube which gives the visual of jittery motion.
I hope as this game progresses, I'll keep you updated with these little dev-blogs.
Happy new year!