Game Development for Decentraland
As I already mentioned in the article An Introduction to Decentraland our company works close to the Decentraland team. We want to share our experiences along the way to give you some impressions on how game development might work in this pioneering environment.
Currently we are supporting the Decentraland team in their mission to create a “Gaming SDK” that scene-developers can use to create various types of games that are secure, powerful and efficient. Our task right now is to create the first game prototypes which help the DCL team to empower the SDK.
Game Example: Basic Tower Defense
We have chosen a basic tower defense game as our first example. We’ve also defined a workflow that allows for rapid prototyping: a game engine (in our case Unity) runs on a centralized server and provides a wide set of tools to run calculations for our a-frame game.
Think about having enemies spawned at [0,0,0] and you want those units move to [5,3,1]. In our example we handle path-finding in a server-side, headless Unity process. We send the calculated coordinates via websocket to the clients and allow them to update their models positions.
To achieve this, the clients push their results into a function like moveElementToPosition(..) that is provided by the Decentraland Gaming SDK to update the parcels in a safe way. Every interaction between the user and the game gets channeled through this pipeline — back and forth.
We are going to explain the specific API dynamics in upcoming posts. Our team will try to provide a more technical overview of our approach — code examples included.
Conception of a Low-Poly Setting
The game designers chose a steampunk setting for this tower defense game. Keeping the low-poly constraints in mind they started to put their initial ideas on paper.
We have already started to translate these sketches into 3d models. Some are already complete while others are still in the making. We will stick to the defined style and appreciate your feedback.
These initial models will get implemented into a-frame over the course of the next weeks. We will keep you updated and will explain more details about our code and its architecture in upcoming articles. Stay tuned!