Game Prototype: Simple Dr. Mario clone

Now that I’ve finished the engine port from JavaScript to TypeScript, it’s time to actually try to use it for some game development prototyping so I can evaluate  if the new workflow is better or worse than using JavaScript.

I waffled around a bit trying to determine what I should spend the rest of the time prototyping and then decided that instead of doing a full prototype (which I probably could not finish in the time allotted due to time constraints on my part) that I should try to do two or three prototypes of different sorts of games to gain more insight into different aspects of using the engine in TypeScript with the new tool set.

I’ve noticed at least one person doing Devember mentioning doing a Tetris clone from a tutorial. I’ve made Tetris a couple of times in the past, so that seemed like it might be a good place to start. However I’ve recently been playing a lot of Dr. Mario on my 3DS, and that’s a puzzle type game that I like more than Tetris and which I’ve never done a clone of before.

So, the first thing I’m going to try to prototype is a simplistic clone of Dr. Mario, which I’m calling Rx (or ℞, if your browser supports that particular unicode character in whatever font this WordPress theme is using). I’m not sure at this point if this will come out to be a full clone of the game, or only of the parts of the underlying engine that revolve around the pill bottle mechanics of gravity, match finding and so on. We’ll have to see how the time progresses.

To this end I’m using a new branch named rx in the repository that’s purely this particular aspect, which will get merged to the master branch every night when I make the Devember update. If/when I move on to the next prototype, it will be in its own branch as well and brought back into master. This way, along with the tags that I’ve been making for the repository state at the end of each day there’s also an individual record of the different portions of Devember.

So far the only steps taken were to start in with some dirt simple rendering of the different kinds of possible pill segments, and set up an invisible pill bottle to hold the segments that will be used in the game. The bottle contents are currently filled up with random segments in random (poorly selected) colors.

I managed to work with this new code base for less than 10 minutes before I uncovered a couple of bugs in the new TypeScript port, for which I have created an issue on GitLab (since I’m also using Devember to evaluate that as well).

I’ll finish up with a screen shot of what things look like at the end of the first day of prototyping on Rx. Just a simple invisible pill bottle filled with a random assortment of nonsense segments in eye watering colors. It’s interactive in that when you click on any of the segments (including an empty space) the segment type switches to the next segment type in the type list.

Simple screenshot showing the capsule rendering currently implemented.

First Devember Dr. Mario clone Screenshot