In this post we’d like to review all the progress we’ve made during this season.
After finishing the ICO we focused on the most important — developing Dragonglass Platform. The blockchain introduces many new opportunities for the gaming industry. Players can transfer items to their friends, trade them and use in different games. If you are curious about more blockchain use-cases in gaming, please check out our Why Your Game Needs Blockchain page on our website. There you will find a list of 10 benefits the blockchain brings to the gaming industry. But this is only the beginning. We expect more ingenious use of the technology in gaming after more developers join the club. And this is where our Platform comes in place.
Game development is hard. Even if we don’t count game design, audio and art production, marketing and everything the rest beside of coding and project architecture — it is still a very complicated process. Most of the games have 3 main components developed by engineers: Client (an app used by player), Backend (server, all important and multiplayer related logic goes here) and Database to store players’ progress and other data. The Client will be used on different platforms (iOS, Android, Xbox, PC, etc), each platform has its own nuances. The Server and Database must be very efficient (to save on hosting), scalable and secure. Game developers are very careful with additional mechanics because of this complexity. Even if it may have a good impact on players experience and earnings, developers wouldn't just risk making the architecture more complex. Moreover, indie developers and studios of middle size may not afford investing in blockchain research and integration. It’s too expensive.
At Dragonglass we want to integrate blockchain technology into the games. However developing cost-efficient smart contracts and simplifying blockchain interactions is not enough if we want to attract lots of game developers. We need to make Dragonglass Platform so progressive, that using it will also solve all the complexity and scalability hassle that traditional game developers face every day.
We have dedicated this Spring to polishing all the core elements of the Platform and closing the first major milestone named Minsk. After we finish testing and preparing the documentation, Minsk version will be ready for use by early adopters. We plan to start on-boarding the first game developers this summer.
Dragonglass Platform will be able to replace Backend and Database for games, so that developers could focus on making great games and seamlessly integrate blockchain at the same time.
Dragonglass Platform + Unity and nothing else
This is our vision. Of course, we don’t limit developers to Unity only, this is just where we start and focus the most. Moreover, our Platform is flexible enough, so developers can use only some of its features and integrate their own for the rest.
Dragonglass Platform is a set of various tools, services and smart contracts. All they are important and are closely connected with each other to deliver the best experience for the developer. But there is one, the developer will be interacting with the most, called Cloud Desk.
Like any other cloud service, Dragonglass Cloud needs a dashboard that will be used by developers to manage their game. We follow the serverless model when developers don’t need to develop their own databases and write the code to connect players with the database. All they need to do is to write game logic code, the rest will be handled by the Cloud.
In the screen capture below we are creating a new application in the Cloud Desk.
Each app has CCE (Cloud Code Execution), User Preferences, App Data, API Keys and Players.
- Cloud Code Execution enables game developers to run backend game logic that is too resource-intensive for blockchain smart contracts. We will cover it in more details below.
- User preferences contain non-crucial information about the players that they can change themselves. For example, language settings.
- App Data — game specific data that can be changed only by the application owner using an application secret token (for example from developer’s own server) or with Cloud Code Execution.
- API Keys — special keys for interacting with the Cloud’s REST API. Developers can generate as many keys as they need and set up custom permissions for each individual key.
- Players — list of players signed into the game. Developers can view details about players’ devices and sessions, and manage restrictions.
All these components make developer free from developing their own databases and players’ account. But the most important part of it, that we are very proud of, is Cloud Code Execution (CCE) module.
Cloud Code Execution
CCE allows developers to run custom game logic in the Cloud. For example, it can be a code that sends a reward if a player reaches a certain level or completes an achievement. This type of code usually runs on the server because it prevents player from cheating. Also, developer has more flexibility if the code needs to be updated.
Moreover, Cloud Code Execution module implements our ETR protocol, so game developers can use it to move the heaviest logic from the smart contracts to the Cloud. For example, if developers want to reward players after completing a level with NFT token and store achievements on the blockchain, they can move the level verification logic to the CCE. Or if it’s an RPG game, where the player gains experience (XP) fighting with monsters, there may be too many transactions if the developer is willing to store player’s experience on the blockchain. With the Cloud, he can store XP in App Data, and ask the player to make a transaction only when there is enough XP for the next level. So, CCE in combination with other Cloud modules is a very powerful tool that allows to store some data and run a custom logic outside of the blockchain while the transaction is still happening.
To make the integration with the blockchain and Cloud as seamless as possible we developed an integration with Unity Engine.
After the Unity SDK is imported into the game project, the developer will be asked to authenticate. After the successful authentication, the project setup begins. Game developer needs to write only one line of code to attach the Unity SDK to their game. Then deeper integration starts. Engineers need to attach player authentication logic to the game user interface, connect NFT tokens with an item instance in the game client. In order to help developers, our Unity SDK will generate a lot of C# code for smart contracts (even if the developers use their own contracts).
Unity SDK has a lot of handy features that are accessed not from the code, but from the Unity Editor itself to simplify the process of interaction with the blockchain and game testing.
All the features are divided into multiple windows so that developers could customize the workspace by moving windows around, attaching them to the panels and even work with multiple windows at the same time without switching between tabs and menus. Moreover, Unity SDK implements all the core Dragonglass Hub mechanics, so developers don’t need to run Android emulators or use physical phones to test the game.
While Minsk milestone was all about core elements and great user experience basics, our next milestone, Toronto, will be dedicated to optimisation and speed improvements. We are porting CCE module from Node.js to Golang, to make it run much faster and create a basis for other language support. The second programming language we will add to CCE is C#, the language used to write scripts in Unity, thus game developer will need to know only one language to be able to develop complex games with the blockchain technology. Another reason behind the decision of moving to Golang is the git integration. It will introduce CCE code version history and possibilities of integration into any IDEs so that developers could have Cloud and Client code side by side with no need to switch between IDE and browser.