In my spare time, I work on two AR experiences. One of them is a casual game with ~ 100 different levels, which means a lot of ๐˜ค๐˜ฐ๐˜ฅ๐˜ฆ, ๐˜ฃ๐˜ถ๐˜ช๐˜ญ๐˜ฅ, ๐˜ฅ๐˜ฆ๐˜ฑ๐˜ญ๐˜ฐ๐˜บ, ๐˜ต๐˜ฆ๐˜ด๐˜ต โ€ฆ ๐˜ณ๐˜ฆ๐˜ฑ๐˜ฆ๐˜ข๐˜ต. In the past, I have always used text files or similar to describe the levels, model files, and scoring systems and coded the game in C++ to be platform-independent.

That works great, but I wanted to automate the prototyping process further and fulfill the following requirements at the same time:

โ€ข Support of ๐—บ๐—ฎ๐—ป๐˜† AR/VR platforms (ML2, AVP, Oculus, Tilt 5) โ€ข ๐—ฉ๐—ฒ๐—ฟ๐˜† ๐—ณ๐—ฎ๐˜€๐˜ for prototyping โ€ข Make changes immediately visible at ๐—ฟ๐˜‚๐—ป๐˜๐—ถ๐—บ๐—ฒ on the device โ€ข Allows to define ๐—ช๐—ถ๐—ป๐—ฑ๐—ผ๐˜„๐˜€, ๐—ฆ๐—ฝ๐—ฎ๐—ฐ๐—ฒ๐˜€, and ๐—ฆ๐—ฐ๐—ฒ๐—ป๐—ฒ ๐—š๐—ฟ๐—ฎ๐—ฝ๐—ต๐˜€ โ€ข ๐—˜๐—ฎ๐˜€๐˜† to extend โ€ข Donโ€™t need programming experience to use it โ€ข Allows the use of Lua for ๐˜€๐—ฐ๐—ฟ๐—ถ๐—ฝ๐˜๐—ถ๐—ป๐—ด โ€ข Uses existing tools (reduces development time and maintenance) โ€ข Support of version control

Iโ€™m a huge fan of Markdown languages, so itโ€™s no wonder my solution uses the same approach to define the entire application flow, all interactions, the level maps, all settings, and even the screen graph in a Markdown text file. This can all be done in Visual Studio Code; the preview is made using the Mermaid plugin, and a little tool checks the changes and sends them immediately to the device. No compilation, build, or deployment is needed.

The results: โ€ข <60 min for an entirely new app/prototype/experience โ€ข <5 min for a new game level โ€ข <1 sec to see a change ;)

Video


<
Previous Post
๐Ÿ“บ VectreC - Vectrex C-Compiler
>
Next Post
๐Ÿ‘“ A ZX Emulator for the Apple Vision Pro