This was my first full-time week working on Galantrix and I was impressed with how much stuff one can get done when there are no interruptions! You can set up a productivity-focused development workflow without nitpicking code feedback, long build framework delays, and all the overhead you deal with in AAA tech. I felt that I could do more in one day than sometimes I would do in a full week back at work.
I completed 14 tasks from my TODO list, and listing everything would lead to a tedious read. I’ll keep focusing on highlights in these updates, but always keep in mind there is much I’m not talking about here; I will sometimes wait until a task yields a concrete result before talking about it in detail. I completed 3 interesting things this week. Firstly, I wanted to prototype a gameplay flow so Alex could play it and give me some feedback… That would, in theory, be tricky as I haven’t actually programmed a single line of the actual game! No problem. I’m a big believer in aggressive prototyping using the tool that will most quickly lead to getting the desired outcome from the prototype. In this case, I prototyped the gameplay flow in nothing less than Microsoft PowerPoint… It supports animations, mouse events, and lightweight logic so it took me just a couple of hours (instead of over a week) to create some variations of an important gameplay element. Alex played the alternatives and provided great feedback about how we should proceed.
I also did a lot of thinking and experimenting with different options for the dialog flow engine. I initially planned to implement the entire engine myself, which would have taken me a few weeks of work. Instead, I built a small prototype (this time with real code) using the open-source Ink narrative engine. That worked a lot better than I had expected, so Alex and I played around with the Ink development/testing – which also worked great. I’m fairly certain that we’ll use Ink for Outsider Zero. I was also very happy with what I saw when I looked at its code in detail.
Finally, I created a bunch of small test apps to figure out the best way to use Godot’s 2D/3D engines. Outsider is mostly a 2D game, but a lot of games simulate 2D by creating textures “painted” on planes in the 3D space and displaying that through an orthographic projection. This worked well on PC and Mac (yes, I started testing multiplatform), but I was initially afraid of not being able to do a pixel-perfect 2D->3D projection, which is needed to ensure that fonts remain sharp and benefit from subpixel rendering. I created some test patterns like this…
…and measured font rendering performance (using Godot’s excellent CPU/GPU profiler) while looking for any rogue, undesired antialiasing/artifacts. It took me some tries to adjust the projection plane and the camera, but I eventually got the pixel-perfect result I wanted; I confirmed it with other, more demanding, test patterns that checked for slight pixel color changes and problems with boundary pixels.