The project is divided into 3 distinct layers:
- The Graphics / Gaming layer contains everything needed to make a game without blockchain integration natively on the three leading existing PC platforms (Linux, OSX, and Windows). (This is the layer that is done right now in the repository.)
- The second layer is the blockchain layer. It contains systems written in C or C++ with the mindset of being able to be easily portable to other programming languages so as not to be attached to the gaming SDK (being easy to integrate into existing game engines, for example). (As part of the second layer, Naezith and I simulated a game store using nSPV. It is only a proof of concept, but the project is functional which proves the blockchain integration)
- The 3rd layer is CC. The second layer will most of the time be a bridge between CC and the first layer (or existing engines). A new CC with new functionalities will be easily buildable in the second layer (but with a higher-level abstraction to facilitate the developer's life). (Communication through an RPC command, for example.) In the future, if CC is usable via nSPV, this will mean that we will be able to use a blockchain without fully downloading it; we will be able to use our CC directly in the games we develop. (SDK users)
- The SDK itself is coded in C++ 17 with lua scripting available.
- The architecture of the SDK is based on an ECS (Entity component system), and the layer blockchain, therefore, only contains blockchain systems that come to grip with the ECS.