Posted July 27, 2021 by Wolfe
#milestone
The latest video on my YT channel is a retrospective of the stepping stones I created along the way to GDSim. With the video and in this post, it is my hope to inspire others to pursue their dream of making a videogame, by taking things one step at a time:
In 2019, I had next to no experience as a programmer or 3D artist. I dabbled in some BASIC as a child, first introduced to me by my mother on a command-line PC, and I had taken one semester of intro-level Javascript -- which didn't stick with me. My 3D experience only included a few planes I created for myself in X-Plane, using an included editor instead of a conventional 3D modelling program.
Otherwise, my background was only a lifetime tinkering in iterations of RPG Maker, poking around with projects that never got anywhere. In the video, some viewers will no doubt have noticed assets pulled from RPG Maker, with varying degrees of modification. Also, note the 'W' on the license plate of the car in First Gear -- the Works brand (and other names) did not first appear in GDSim.
Late in 2019, I discovered GDevelop. At this point, I was not interested in conventional coding and didn't think I could manage it, so GDevelop was quite appealing. Coming from RPG Maker, the interface for GDevelop 4 felt familiar, and I settled on using GD4 instead of GD5. Over the winter of '19-'20, I began experimenting with perspective projection, wondering if I could make an Out-Run-style game.
"First Gear" as shown in the video is the culmination of that first effort. It uses a conveyor belt of sprites, split into sections that contain information about the turns and elevation changes, applying randomized changes whenever a section passes behind the car, out of view.
Before going any further, I wondered, "if I can project sprites like this, what if I can do it in full 3D? Then I could implement better handling physics." After determining a way to lay down road sprites along a path, "Circles" was born. (The technique bears more than a little resemblance to Victory Heat Rally, which I consider to be a delightful coincidence. Go check 'em out!)
After this achievement, "Circles" was quickly aborted by the next question: "if I can project sprites in full 3D, what if I can harness the 3D Box object? Then I could imitate the Mode 7 style of F-ZERO or Super Mario Kart on SNES." GDevelop 4 is unique from GD5 in that it offers this polygonal OpenGL object. It is very basic, only intended for 2.5D games, and visually bugged in versions later than GD4.0.9.4.
That question led me into a rabbit hole of painstakingly reverse-engineering the box to perform projection in full 3D. The next months were consumed by this effort -- resulting in "Seven". It was both a useful learning experience and a waste of time! Not long after completing the weather effects seen in the video clip for Seven, it dawned on me to consider stepping up to another engine that could make all of that easier.
Thus, close to a year ago, I switched to Godot. I began learning GDScript and experimenting with 3D physics, brushing up on vector math concepts. In late 2020, I found Wings3D as an alternative to Blender and began learning to make 3D models. In April 2021, I uploaded GDSim version 0.1 alpha to itch.io, as an unlisted project. Here we are.
All this, I credit in part to two things. The willingness to keep asking, "what if...?" and a plain statement in the standard practice of coding a game: whatever you might think to try, the worst that can happen is that it doesn't work, so just try it and see what happens.
Thanks for following me on this journey.
Wolfe