The first step is to build a prototype that implements the core features we’re after. For the server prototype we will use NodeJS and the JavaScript Stellar SDK, since it is officially supported. For the client prototype we plan to use Phaser. Once we have the prototype up and running we can decide whether to switch to a different technology stack or to continue building the project on the same technologies.
We plan to host the client-side game content on GitHub Pages initially, with the game server running on a VPS, likely a DigitalOcean droplet.
To build the world we will use the Tiled level editor, which we will also keep developing alongside this project.
Our budget is meant to cover part-time development over a period of 6 months. At $7500, or $1250 per month, we can afford to spend at least one full day per week on the project, which should be enough to reach our goals.
We have a working server and client, but they are not currently online. Also, no integration has yet been done with the Stellar network. We are however familiar with Stellar’s many features thanks to participating in the Stellar Quest series and have a plan for replacing the server’s database with data on the Stellar blockchain.
Using Stellar for Authentication
For logging into the game we expect the player to authorize using some Stellar wallet. When the game is running in the browser, it can use for example Freighter, Albedo or even a hardware wallet. We plan to integrate similar solutions for the mobile client.
It might be nice if the client had the option to generate its own wallet, but it comes with the problem of storing this wallet securely and providing a way to transfer it to another device, so it’s not something we plan to pursue at first.
Using Stellar as the Character Database
The Character Itself
For each character, the server would generate a Stellar Keypair, adding the player's public key as an additional signer to share ownership over the account.
In-game Currency, Character Attributes, Items
In-game currency, character attributes and items are assets issued from issuing accounts owned by the server operators, either via a server-owned wallet or directly to the character account. Some (like currency and items) can be traded, while others (like character attributes) are locked (unauthorized). We want to allow the player to trade their items, but not their “strength”.
Quests, Equipment, Location
Quests often need to store some character-specific state, and there are also other potential things to store, like which items do you have currently equipped. For these kinds of things we plan to use the data feature of Stellar. To avoid arbitrary modification of this data, the idea is to have the server sign it in some way.
Developing Game Content
While it would be nice to explore the possibility of some game data being stored on the Stellar network, for example allowing players to own and build their own piece of the world, this is out of scope for this project. The game world would instead be developed on GitHub and hosted somewhere so the client has access to the maps and sprites.
Target Market
With this game we aim to attract people who are looking for a casual action-RPG style game that is easy to jump in and out of while on a break. The game provides:
- social contact to other people who also like such games,
- an opportunity to relax while enjoying the friendly atmosphere,
- the occasional challenge as the player tries to conquer areas or solve quests
- and of course a sense of achievement.
Funding Model
We expect to run this as an open-source project, hoping to eventually get excited players to donate towards the further development of the game and its use of the Stellar network. In return, these players could receive badges so they can show off their support.
The costs of running the server should initially be very low (estimated less than $100/month for a VPS that can serve many thousands of players), so the main use of additional funding would be paying for development time.
In addition to relying on donations, there is of course also the possibility to sell access to exclusive areas in the game, exclusive items or a raise of character level cap. Exploring these options is out of scope for the currently proposed project.
Finally, there is the cost of the Stellar network, in terms of transaction fees and various sponsorships (signer, data, trustlines). While not the best for usability, this will require the player to have some Lumens and sign for these sponsorships, since covering these costs would not be scalable.
Competition
Frankly we would welcome any competition in this space because it would be great to see more projects like this explore ways to use Stellar in games. However, we are currently not aware of any project going into this direction.
Marketing
Since we’re still in the development phase the marketing efforts will be limited to setting up a website to describe our project, and to send out development updates through Twitter. Once the game is showing promise and is enjoyable we expect it to become more popular by word of mouth.