[DAO:aafa957] Update #1 for proposal "The Metaverse Motorshow Race Track 2024"

Author: 0x71c99d7e593e4e2b07d17feba2d080cbffe832cb
Update Status: On Time
Project Health: :green_circle: On Track

Introduction

One of the key technical jobs of month 1 has been establishing the way we will program the Physics of the game. We have also passed a first set of race track components from Voxel Architecture to Vegas City game developers to establish which ideas and forms are possible and what is not. This has enabled us to declare what some of the key elements/constraints of the game are.

Highlights

For the 3D part of the project:

  • we have started to develop in parallel the Concept Design Book and the Base Racetrack Modules.
  • We gathered reference images to understand what are the base components that we need: the actual road that the cars are racing on, the limits of the road, the environment and the decoration assets. We addressed each of them.
  • We established an architecture for visual components in layers that can be added together in two ways: side by side, by matching them seamlessly to create a continuous road, but also on top of each other, to create visual diversity. For example, a straight road module can be combined with a couple of different decoration modules to always look a little different. It can either have some trees, or some tires, or some pavilions, red lights, etc. This technique is important to the depth of the games we can produce as it allows us to integrate environment assets that overcome the potential simplicity of plain road modules.
  • The other important 3D part in the project consists of the actual cars that the users can race with. Our car design specialist started to develop designs for a few car models that will be included in this open-source project, together with all the specs and information over how to develop your own cars to bring to Decentraland, not only for decoration, but to be able to actually play with them.

On the development side:

We have an early test track which exists in Genesis City on peer-testing server which we have used to conduct various technical tests such as:

  • How the car would be controlled (keyboard steering vs mouse)
    What track elements we can support (e.g. banked corners, inclines vs entirely flat environment)
  • Prototype some key features such as an indicative Map UI and speed-o-meter.
  • Optimising general DCL handling of moving the avatar around.
  • Observing the impact of neighbouring scenes on the performance of the game.

We have created the base infrastructure for the project. This includes:

  • Repos for the following:
    • 3D Components
    • Examples
    • NPM Package
    • Reference Game
  • We have also established the publishing pipeline to publish the NPM Package releases to npmjs.org

We carried out a detailed evaluation/R&D of the Physics system we will be using. Having established some technical constraints imposed by Cannon.js we evaluated:

  • Trying to get the more powerful Ammo.js engine working with Decentraland. This proved not feasible with SDK7 in the time scales we have.
  • We considered making a custom physic’s engine without Cannon.js use.
  • And we studied Cannon.js in more depth so we would understand the implications of its limitations on our game design.
  • The conclusion was that we will use some custom Physics where possible and fall back to using Cannon.js where it is not feasible to develop custom Physics (e.g. showing the effect of the car crashing with an obstacle). This approach has the fewest technical unknowns and will allow us to concentrate on the game loop and playability of the game rather than having to grapple with more complicated Maths and Physics.

Blockers

The 3D segment faces no significant blockers. We did change priority/focus slightly on the 3D side to work on the cars while we were concentrating on the physics to see what racetrack components will be possible.

Next steps

The next steps for the 3D part, that are coming by the end of December, are:

  • Finalising the design book over how these modules have to be created in order to bring them to Decentraland using the tools we provide.
  • Developing the complete set of road modules, with textures and colliders.
  • Developing the block-outs for at least 3 car models, exterior only. Interiors will come later.
  • Also, we will start working on the documentation along with the development team to explain how to load the modules and fit them together in a Decentraland scene.

The next steps on the development side are:

  • We will solidify the core API structure including establishing the design patterns we will use for the various APIs we will provide in the NPM package and pull them together into a cohesive code architecture which we will start documenting as we go.
  • We would also take a vertical slice of 3D models (e.g. small number of track parts and a car) designed by Voxel Architects and test them in the engine. This will establish the production pipeline and prove that our process between the 2 teams results in a high quality content in Decentraland.
  • Example Scenes established to facilitate the development of the NPM Package by decoupling some of the core features into examples that can be worked on in Parallel by multiple developers (e.g. Steering Example, Acceleration Example, Collision Example.
  • Building the development framework for the Reference Game and the developer/test/deploy process so that we can iterate on the game with Dev and UAT environments throughout the entire development of the project.

Additional notes and links

Before the end of this week we will share a Google Drive Link in Notion, which contains images and other materials.

The locations of the public facing git repos are:

Note that we have not yet open sourced any code into these repos yet.

View this update on the Governance dApp