Skip to content
Walter Philips edited this page Apr 10, 2025 · 61 revisions

SpaceXpanse Multiverse platform documentation

All the information will be placed here in a meaningful structured way

Disclaimer

Please be advised that this documentation may contain some inaccuracies and/or inconsistencies or even some factual errors because of, but not only, due to the nature of open source model itself..


SpaceXpanse Multiverse 101

SpaceXpanse Multiverse platform provides a convenient solution for developers to put their decentralized applications aka dapps up to 100% on the blockchain. The following materials can help you get started quickly.

The SpaceXpanse ROD blockchain is a decentralized data store. And there are 3 main components to an application or a game.

  1. Daemon or the headless part of ROD core wallet
  2. Game State Pocessor aka GSP
  3. Front end (metaverse/dApp/game CLI or graphic interface)

The daemon (spacexpansed) is the software that interfaces with the ROD blockchain. It has a JSON-RPC interface to create accounts, make moves in games, etc.

The Game State Processor (GSP) is where moves are processed and new game states are created.

The front end is where the Metaverse/dApp/game is displayed for users/players. It consumes game states. All the blockchain goodness is invisible to them.

We'll look at the different parts in order, gradually building up to the point where you can confidently create your own games on the SpaceXpanse Multiverse platform.

Step 0: Blockchain Basics

If you're not familiar with what a blockchain is or how cryptocurrencies work, we recommend that you read Blockchain Basics. This will provide you with a high-level overview of what a blockchain is. The shortest answer is that it's a secure decentralised data store. However, there are many benefits to it that are non-obvious.

Still, while blockchain is just a data store, SpaceXpanse Multiverse is much, much more than just that. It's a complete decentralized application platform. How and why that is will become apparent as you progress through the various tutorials and documents here and see how SpaceXpanse Multiverse enables decentralized metaverses.

Step 1: spacexpansed

Read and complete the Step 1: spacexpansed tutorial here before you do anything else. It will give you a high-level overview and understanding of important fundamentals that you must understand in order to progress with SpaceXpanse.

Step 2: The Game State Processor

In the Step 2: The Game State Processor tutorial here we learn about the SpaceXpanse Game State Processor (GSP) and its relationship to other components.

Step 3: libspex

The core of the GSP is libspex. It does much of the heavy lifting for blockchain operations, and nicely isolates developers from that complexity so that they can focus on creating their dapps/games.

Read libspex component relationships for a high-level overview of libspex and how it interacts with other components.

In order to stay up-to-date with the latest improvements and feature additions, it's recommended to compile libspex on your own. Using git will keep your libspex code fresh with the latest version and compiling is very simple with the provided scripts in the "HOW TO" documents below.

See here to compile libspex in Windows or here to compile libspex in Ubuntu.

Step 4: Run libspex for Games In Step 1 above we learned about the SpaceXpanse daemon, spacexpansed, and how to issue some RPC commands to it. There was quite a bit in there.

Running spacexpansed for dapps is very short and well worth the 3 minutes it takes to read to refresh your memory and get a solid grasp on just what the most important options are for you to run spacexpansed properly.

If you encounter any errors while trying to run a game or application, the first thing to check is whether or not spacexpansed is running properly.

Step 5: Hello World!

Hello World is a simple SpaceXpanse game that you can build. Once you've finished, you'll have mastered 90% of everything you need to know to build your own games on the SpaceXpanse Multiverse platform.

Hello World in C++ is a long, thorough tutorial where you code every line and where every line is explained in detail.

Hello World in C# is a quicker tutorial that focuses on the bare basics of the SpaceXpanse platform. Pre-compiled binaries for libspex are included with the sample solution so you can run it immediately, set break points, and dive straight into the code. The tutorial itself includes videos and walks you through all the most important aspects of building a game on the SpaceXpanse platform without getting into too much nitty-gritty details. For those details, the code is extensively commented, and you can study those on your own.

Hello World! with SQLite is a C++ console application tutorial that shows you how to use spacexpanse::SQLiteGame. Before you start on your own game, you should read this. SQLiteGame makes developing your blockchain game far easier than using a CachingGame. Further, you can build MASSIVE game worlds with SQLiteGame. This is most likely how you will choose to make your game.

Keep in mind that ALL 3 of these Hello World implementations are for THE EXACT SAME GAME and if you want to play the game, you can equally use any of them.

Further, you could easily write your own version in Python, Ruby, or any other modern programming language.

Go further with Mover

Now that you've got some experience with the platform, it's time to look at implementing game logic. Hello World didn't have any significant game logic, but with Mover we have some very simple game logic to examine.

Start with the Mover Sample Game Overview. This is a high-level overview to explain the various moving parts and concepts behind Mover.

Once you've completed that, you can dive into the code.

Again, we have multiple tutorials for you, depending upon your preferences.

The Mover console tutorial is a C# console application with a code walk-through. Much of what is in the code walk-through you've already seen in Hello World, so those portions you can skip. The main content to focus on is how the game logic is implemented in the 3 callbacks.

The Mover sample game in C# with Unity tutorial is substantially the same as the Mover Console Tutorial, but adds in a front end with Unity. This is closer to a "real world" example of a game. Again, as above, the main content to focus on is how the game logic is implemented in the 3 callbacks.

Both the Mover console and Mover Unity games are the exact same game, just as with Hello World above. You could easily write your own Mover game in Java, Ruby, Python, or any other modern programming language just by porting the code for the callbacks properly and then wiring up libspex as described in other documents.

SpaceXpanse Metaverse Simulator as part of the platform

SpaceXpanse Metaverse Simulator is a simulator based on Newtonian mechanics. Its playground is our solar system with many of its major bodies – the sun, planets and moons. You take control of a spacecraft – either historic, hypothetical, or purely science fiction. SpaceXpanse Metaverse Simulator is unlike most commercial computer games with a space theme – there are no predefined missions to complete (except the ones you set yourself), no aliens to destroy and no goods to trade. Instead, you will get a pretty good idea about what is involved in real space flight – how to plan an ascent into orbit, how to rendezvous with a space station, or how to fly to another planet. It is more difficult, but also more of a challenge. Some people get hooked, others get bored. Finding out for yourself is easy – simply give it a try. SpaceXpanse Metaverse Simulator is free, so you don’t need to invest more than a bit of your spare time.

SpaceXpanse Metaverse Simulator, or SpaceXpanse for short, is a community project. Its core is just the skeleton that defines the rules of the simulated world (the physical model) that can be controlled just through its API. A basic solar system and some spacecraft (real and fictional) are included, but you can get a lot more with add-on modules developed by other enthusiasts in the SpaceXpanse community. There can be add-ons for nearly every spacecraft that ever flew (and quite a few that never got beyond the drawing board), for many more celestial bodies in the solar system (or entirely new fictional systems), for enhanced instruments, and much more.

Next...

If you've completed the above steps, you're in a very good position to begin programming your own blockchain-based dapp/game.

Make certain that you've reviewed the tutorial on SQLite as that is probably the best choice for you to create a game on the SpaceXpanse Multiverse platform.

The next thing to do is to explore other documentation linked in the sidebar navigation. There's a wealth of information there and most is very easy to get through quickly.

Developer Support

If you have questions, visit the SpaceXpanse Multiverse Disscussions. You can ask questions and get answers there.

Content

HOME

Step by step guide - from zero to hero

Overview
Step 0: Blockchain Basics
Step 1: SpaceXpanse Daemon
Step 2: The Game State Processor
Step 3a: libspex Component Relationships
Step 3b: Compile libspex in Windows
Step 3b: Compile libspex in Ubuntu
Step 4: Run SpaceXpanse Daemon for Games
Step 5: Hello World! in C++
Step 5: Hello World! in C#
Step 5: Hello World! with SQLite

SpaceXpanse ROD blockchain

Overview
Tech Specs
Blockchain Consensus Protocol
Dual Algo Mining
Currencies/Tokens
Daemon Interface
Games/dApps
Atomic Trading

ROD core wallet

Build ROD core wallet
Data Directory
spacexpanse.conf
Daemon Options

RPC Methods

SpaceXpanse RPC Methods
Quick List
Complete Reference

Tools

SpaceXpanse QT Toolkit
SpaceXpanse Daemon
SpaceXpanse Daemon CLI

libspex C++ library

How to Compile libspex in Ubuntu 20.04.03
How to Compile libspex in Ubuntu 22.04
How to Compile libspex in Windows
List of Dependencies in Window
libspex Component Relationships

SpaceXpance Metaverse Simulator

Documentation
Releases

Downloads

Wallets

ROD core wallets

Other

SpaceXpance Metaverse Simulator
Downloads for developers
Tutorials Code

Tutorials

Getting Started with Regtest
How to Wire Up libspex in C#
RPC Windows C# Tutorial
Atomic Transactions Tutorial

Hello World!

Hello World! C++
Hello World! C#
Hello World! with SQLite

Mover Game

Mover Sample Game Overview
Mover Console Tutorial
Mover Sample Game in C# with Unity

Ships

Ships (How to get started playing)
Tutorials Code

Miscellaneous

FAQs
Game Engines
Sample in C# with Unity
Get Some RODs
ROD Mining

Menu

HOME

Step by step - from zero to hero

SpaceXpanse ROD blockchain

ROD core wallet

RPC Methods

Tools

libspex C++ library

SpaceXpance Metaverse Simulator

Downloads

Wallets

Other

Tutorials

Hello World!
Mover Game
Ships
  • Ships (How to get started playing)

Miscellaneous

To top

Clone this wiki locally