-
Notifications
You must be signed in to change notification settings - Fork 0
Home
- SpaceXpanse Multiverse forum
- SpaceXpanse Multiverse platform's wiki
- More about the platform /Manifeto & Whitepaper/
- About SpaceXpanse Metaverse Simulator
- ROD blockchain specification
- How to get RODs
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 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.
- Daemon or the headless part of ROD core wallet
- Game State Pocessor aka GSP
- 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.
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.
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.
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.
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.
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.
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 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.
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.
If you have questions, visit the SpaceXpanse Multiverse Disscussions. You can ask questions and get answers there.
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
Overview
Tech Specs
Blockchain Consensus Protocol
Dual Algo Mining
Currencies/Tokens
Daemon Interface
Games/dApps
Atomic Trading
Build ROD core wallet
Data Directory
spacexpanse.conf
Daemon Options
SpaceXpanse RPC Methods
Quick List
Complete Reference
SpaceXpanse QT Toolkit
SpaceXpanse Daemon
SpaceXpanse Daemon CLI
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
Downloads for developers
Tutorials Code
Getting Started with Regtest
How to Wire Up libspex in C#
RPC Windows C# Tutorial
Atomic Transactions Tutorial
Hello World! C++
Hello World! C#
Hello World! with SQLite
Mover Sample Game Overview
Mover Console Tutorial
Mover Sample Game in C# with Unity
Ships (How to get started playing)
Tutorials Code
FAQs
Game Engines
Sample in C# with Unity
Get Some RODs
ROD Mining
Use the sidebar in the right to navigate through the documentation
- 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
- Overview
- Tech Specs
- Blockchain Consensus Protocol
- Dual Algo Mining
- Currencies/Tokens
- Daemon Interface
- Games/dApps
- Atomic Trading
- How to Compile libspex in Ubuntu 20.04.03
- How to Compile libspex in Ubuntu 22.04
- How to Compile libspex in Windows
- libspex Component Relationships
- Getting Started with Regtest
- How to Wire Up libspex in C#
- RPC Windows C# Tutorial
- Atomic Transactions Tutorial
- Ships (How to get started playing)