Game Sprint 2: Pie in the Sky
June 15, 2025
When you start Pie in the Sky, you'll see a very different intro splash screen than that of my previous games.
In this devlog, I'll be discussing my experience making my first game in Unity coming from Godot, my experience making my first 3D game, and the technical limitations that ultimately lead to Pie in the Sky looking very different from its inception as Stack Rush two weeks ago.
When I planned this project, I knew it would be a learning experience. I knew that each fortnight I would tackle something entirely new, constantly exploring different genres and formats. What I did not expect was my second ever Sprint requiring me to immediately switch engines, on top of being my first experience making a 3D game.
Let's start at the beginning: Stack Rush was a game about moving around in 3D space to catch blocks falling from the sky, the twist: your phone, face up in your hand, would hold the tower of previously stacked blocks you'd have to keep balanced. I was very excited about this idea and wondered why no one had tackled it. Having seen many gyroscope demos, I thought getting positional data from a phone would be a breeze.
It was not.
The first hurdle was my engine: Godot, despite being highly extensible, has no support for the gyroscope, officially or unofficially, in WebGL builds — a dealbreaker when all of my Game Sprint games are being published to itch.io. If I wasn't on a two-week deadline, I would have looked into building a plugin, but the ticking clock combined with forum posts indicating Unity had gyroscope support in Web builds lead to me quickly downloading the engine.
Of course, any game can be built in any engine, but as Unity is more widely used in industry than Godot anyways, I welcomed the opportunity to learn it.
Unity
I don't know if I'll go back to Unity anytime soon. The engine itself was easy to work with — the Entity Component System (ECS) workflow, where everything in the game is made up of modular components that are added to barebones objects, is one I'm actually more comfortable with from work in the engine my team and I built for Raycast.
But a poor debugging experience combined with lengthy compile times after every minute change to the code didn't jive with my process. Godot has the same amazing debugging experience as working in an IDE, so I assumed Unity would also be similar. Unfortunately, it just can't compare, and I found myself print debugging A LOT.
There was a lot to like though: not having the entire editor in one window felt a lot less claustrophobic, C# syntax is a lot more familiar to me than the Python-like GDScript, and Unity's UI Toolkit is excellent and allows for far better organization and faster iteration than Godot's controls. I also loved the ability to run the game in-editor, though I believe Godot has recently added that feature.
I also appreciated how much code-first Unity is — instantiating GameObjects in code was simple, controlling the camera was a cinch, and building components with all the features of C# (including far better typing and inheritance), was excellent.
I'm sure I'll return to Unity soon enough, but with middling performance and long compile times — my M2 MacBook Air was struggling — I plan to return to Godot for the time being, though the trial by fire of making my first ever 3D game on a deadline was a great way to learn the engine.
3D
By virtue of being distracted getting used to a new engine or otherwise, the added complexity of 3D really didn't affect my development, aside from the finished product looking less polished than I'd like on account of not having time to work on models and materials.
If you're a developer afraid to add a new dimension to your next game, don't be. Sure, it's more to keep track of, art and assets are a bit more complicated, and you'll probably confuse the Y and Z axes for the first few days, but it's nothing you won't have encountered before.
Plus, everyone will seem to be far more impressed despite the game looking objectively worse — I'm not sure if that's a pro or a con, but according to the limited sample of brother, roommate, and two friends, 3 > 2.
Now back to the Sprint.
After getting acquainted with Unity, I spent a number of days trying to get positional data from my phone's gyroscope. This was made difficult due to the compile times I mentioned earlier, as well as the inconsistency of the Unity remote mobile app.
I did ultimately manage to get a cube moving with my phone, but phone gyroscopes just aren't accurate enough to give position data. This is as close as I got:
Again, I ran into the two week limitation — by then it had already been three days, and coming up with a way to account for drift could have taken the entire rest of development, let alone all the other parts of the game.
So I pivoted to Pie in the Sky, still a stacking game (now themed around Pizza courtesy of my brother), but one where the player controls a character with tilt (or WASD) instead of absolute position. Something I'd discovered was far more accurate and fast.
Immediately after hearing the theme, my friend Martin Henry, who is also an excellent artist, made a bunch of sketches, some of which I'm saving for a future salad-themed tower defence game because they're great but didn't fit this game. But his sketch of a chef was perfect.
Some faffing about in GIMP later, and I had made assets for the player character, power-ups, and pizza boxes.
I also made some optimizations for performance, including adding a Tetris-like shadow to replace the much harder to follow little shadow I had been casting before that didn't require computing shadows and only keeping the top box's collider active.
One minor thing I love from Pie in the Sky is the level system, which replaced a combined score and level system with a bouncy progress bar that progresses the player through pizza-themed ranks.
Look at that bounce! If I had more time, I would make the stack of pizza boxes behave similarly, but I'm quite happy with how everything looks and performs, all told.
I hope you enjoy Pie in the Sky — I can't wait to hear what you think!
See you in two weeks for my third Game Sprint game: FLOP!