# Description of Changes <!-- Please describe your change, mention any related tickets, and so on here. --> - Bumps version to 2.2.0 # API and ABI breaking changes <!-- If this is an API or ABI breaking change, please apply the corresponding GitHub label. --> None # Expected complexity level and risk - 1 - this is just a version bump <!-- How complicated do you think these changes are? Grade on a scale from 1 to 5, where 1 is a trivial change, and 5 is a deep-reaching and complex change. This complexity rating applies not only to the complexity apparent in the diff, but also to its interactions with existing and future code. If you answered more than a 2, explain what is complex about the PR, and what other components it interacts with in potentially concerning ways. --> # Testing <!-- Describe any testing you've done, and any testing you'd like your reviewers to do, so that you're confident that all the changes work as expected! --> - [x] Version number is correct (`2.2.0`) - [x] BSL license file has been updated with the new date and version number --------- Co-authored-by: Zeke Foppa <196249+bfops@users.noreply.github.com> Co-authored-by: Zeke Foppa <bfops@users.noreply.github.com>
Blackholio
Blackholio is a small-scoped MMORPG built using Unity and SpacetimeDB, designed to showcase scalable multiplayer game development. Inspired by agar.io, Blackholio reimagines the mechanics with a space theme where players become planets, stars, and black holes in a competitive cosmic arena.
Game Overview
- Gameplay: Absorb smaller entities, grow, evolve, and dominate the leaderboard as a black hole.
- Scale: Supports hundreds of players seamlessly with SpacetimeDB's real-time synchronization.
- Objective: Demonstrate SpacetimeDB's features and best practices in a fun, interactive project.
Tutorial Overview
This repository accompanies the Blackholio Unity Tutorial, which guides you through building the game from scratch while learning:
- Unity integration with SpacetimeDB.
- Client-server setup for multiplayer games.
- SpacetimeDB features, including reducers, tables, and scheduled events.
By following the tutorial, you'll develop:
- A basic understanding of SpacetimeDB for multiplayer games.
- A functional game prototype with scalable multiplayer features.
Need help with the tutorial? Join our Discord server!
Getting Started
If you want to follow a more structured tutorial where it shows you how to set everything up, start with our Blackholio Tutorial.
If you just want to checkout the final project and play around a bit, follow these steps:
- Install SpacetimeDB CLI
- Start SpacetimeDB in a separate terminal with
spacetime start. - Clone this repository:
git clone https://github.com/ClockworkLabs/SpacetimeDB.git cd SpacetimeDB/demo/Blackholio - Publish the server logic. You can either publish the csharp server or the rust server.
cd server-rust/ # Upload the module to SpacetimeDB bash ./publish.sh # Update the client bindings in case they are out of date bash ./generate.sh - Install Unity Hub and Unity version 2021.2 or newer.
- Open the scene named
Main.unity - Hit play!
You should be prompted for a username and you should be able to move around, eat food and defeat other players!
Features
- Core Gameplay: Consume, grow, and dominate.
- Multiplayer: Scales to hundreds of players with SpacetimeDB.
- Dynamic Gameplay: Spawning, movement, collisions, and evolution mechanics.
- Learn by Building: Explore the mechanics of Unity and SpacetimeDB through the tutorial.
Repository Structure
Blackholio/
├── client-unity/ # Unity client project
├── client-unreal/ # Unreal Engine client project
├── server-csharp/ # SpacetimeDB server module (C# implementation)
├── server-rust/ # SpacetimeDB server module (Rust implementation)
├── DEVELOP.md # Development guidelines
└── README.md # This file
Requirements
- Unity: Version
2021.2or newer. - Rust: Version
1.65.0or later (for the SpacetimeDB server module). - SpacetimeDB CLI: Installed via SpacetimeDB installation guide.
Resources
License
This project is licensed under the Apache License.
Feel free to fork, modify, and use Blackholio as a starting point for your own projects. Contributions are welcome!
Feedback
We'd love to hear your thoughts on the tutorial or game! Open an issue in the repository or chat with us on Discord.
Happy developing, and enjoy creating the cosmos with Blackholio! 🚀