Hello World

This is the very first entry in what I hope will become a long running development log for a project that I have (in one form or another) been working on for several years. This blog will chronicle the development of Dojo, a new 2D game engine / game-building app written in Xojo.

I love making dev tools and have always wanted to make a game. I'm fully aware that there are many, many game making apps and feature-rich game engines already in existence but I'm interested in making a game with Xojo.

Over the years I've prototyped several components required by a game engine in Xojo. Many of these were small simple side projects created out of boredom or for personal enjoyment and were never released to the public. A few (for example my rigid body physics engine - ImpulseEngine) are now open source. What I haven't done in the past is actually take these components and weave them into something useful for others.

I have two young daughters and both have shown some interest in programming. Game development is and always has been a great gateway for people to get into programming. The trouble is, I don't feel that the current game engines and game-making apps tick the boxes that I would like in order to get my kids involved. Most game-making apps are either too simplistic (e.g: Scratch) or too bloated (e.g: GameMaker Studio). Most game engines are too complicated to start using as a novice (e.g: Unity). I want to create an app that sits comfortably in the middle. An app that is easy to use but actually allows you to build a proper game that can be distrbuted and played by others. I also want the users of the app to be able to build the game they want to build. To do that, they need access proper code, not some drag and drop building block system like Scratch has. The code however needs to be accessible, not C++ or C#.

Ultimately, I hope Dojo will be an all-in-one game development IDE. My plan is that it will be a mixture of a visual editor for game creation but one that exposes code to control the elements of the game. At this stage, I'm thinking that the games will be written in Xojoscript and that the game will run in an optimised interpreter. I haven't ruled out transpiling the game into an established lanuage like javascript to be run inside an embedded HTML canvas. The third option I'm toying with is to use a custom language designed purely for Dojo. Afterall, it's not like I haven't already created a programming language before... 😊

So, what's the current status of Dojo? Currently there is no Dojo app. I'm presently porting a physics engine to Xojo that I anticipate will be the physics engine used by Dojo. The next blog post will talk all about it.