Space Battle Online
A downloadable game for Windows
Public server is offline. You can host one on your own.
Space Battle Online (name might be changed in the future) is an online team vs team based space shooter prototype. The project is a result of experimenting with online real-time multiplayer game programming in my spare time.
Note: The server has limited capacity (up to 50 players) and might be shut down temporarily due to the costs of internet bandwidth usage. When the server exceeds a specified data usage threshold, new matches cannot be started, but players will be allowed to finish their match if they are already participating in one. When all matches are over, the server is shut down, and will be available again after a short period (at most 6 hours).
Update: You can also host the server on your own by downloading the server executable.
Game rules:
Capture as many points on the map as you can. While you are having more points under control than your opponent, your total progression is increasing at a steady rate (shown at top of the screen). In order to win, you must fulfill all of the following conditions at the same time:
- 100% total progression,
- having more points under control than your opponent,
- none of your points are under attack,
- you are not in reinstall state, which means your opponent didn't take any points from you in the last 20 seconds.
You can heal your damaged spaceship at the respawn zone.
There is a clock shown at the top of the screen as well. When it hits zero, the match automatically ends in a draw. While the total progression of either team is increasing, the clock is stopped for that duration.
The YouTube video on this page demostrates how these rules work in-game.
Controls:
WASD - move spaceship
MOUSE CURSOR - rotate spaceship
LEFT MOUSE BUTTON - shoot laser projectile (deals 10 damage)
RIGHT MOUSE BUTTON - shoot bouncing projectile (deals 30 damage)
MOUSE WHEEL - zoom
P - show/hide network connection metric (the displayed number should be around 20)
Features:
- 1v1, 2v2, 3v3 game modes.
- Rejoin match feature, in case something goes wrong on your end.
- Matchmaking system for finding random players (parties are not supported yet).
- Room system, invite your friends and play with them!
- Launch & play, no registration required (yet).
Issues & upcoming fixes:
- If you experience a long delay in the movement of your spaceship, a workaround for this problem might be manually allowing the game through your firewall or running it as administrator. This issue will be addressed in a later version.
- For now, if some players are unable to connect, they have no way to decide whether the server is full, shut down temporarily or crashed because of an error. An improved version is under development which will allow players to query server status and capacity.
Tech: I used Unity C# for the client, but the server is written in C++. I used the Enet library for real-time, reliable communication over UDP and Google's Flatbuffers library to generate C# and C++ code used for serializing & deserializing in-game messages sent over the network. I compiled a DLL from the Enet source code written in C to use it as a native plugin from C# in Unity. The physics simulation runs on the server which I implemented from scratch (in C++, without using any 3rd party libraries). You can download the source code of this project, both the server and client.
Status | Prototype |
Platforms | Windows |
Author | tgreg |
Genre | Action, Shooter |
Tags | Multiplayer, PvP, Team-Based |
Leave a comment
Log in with itch.io to leave a comment.