Jacob’s Tech Tavern

Jacob’s Tech Tavern

Make Loading Screens Fun with the SwiftUI Game Engine

Clone flappy bird in ~10 minutes

Jacob Bartlett's avatar
Jacob Bartlett
Oct 06, 2025
∙ Paid
2
2
2
Share

2015.

Gamers worldwide hold their breath. Bandai Namco’s patent on minigames in loading screens expires after 20 years of tyranny.

…

…

crickets.

I’m as disappointed as anyone. 10 years on, and loading screen minigames are all of nowhere. Is it the SSDs? 5G? Pure lack of whimsy on the part of game developers?

I’m taking a stand.

Like all devs, at one point or another, I’ve entertained the idea of going into game development. In my IT GCSE, our final-year coursework was to make a game from Scratch, that is, with a drag-and-drop logic system designed for little kids. As a result, everyone got moderated down a grade, because we were meant to program it in Adobe Flash.

I was actually the only one who cinched an A*. But I deserved it.

This project consumed me for 9 months. I made an elaborate space shooter with 5 side-scrolling levels, multiple playable ships, an 8-bit heavy-metal soundtrack I generated using midi files, plus co-op, 1-v-1 deathmatch, and boss rush modes.

The game is lost to time. All I could find was this list of sprites I posted to Facebook in January 2011

Like most low-agency 15-year-olds, I didn’t think too hard about the next logical step of my programming prowess. I promptly dropped all my knowledge when I started my science & maths A-levels, so I could work towards my future career as “probably a doctor”.

Since landing in software engineering mostly by chance, I never seriously entertained going into game development. I like money and seeing my family too much.

I got the SpriteKit book in 2017, a book which is still entirely up-to-date (its last release was 2015). I set it aside after my colleague pointed out that I still couldn’t remember to set the Delegates and DataSources on my table views.

I digress*.

*What’s frickin’ new?

I’m re-litigating my past triumphs and blunders for a reason.

Game engines.

Everyone sort of knows what these are. But, uh, maybe not specifically. They essentially divide the responsibilities of game development between the cracked goblins that write shaders in assembly vs the gameplay designers that shuffle the subsequent triangles into playable levels.

Today I’m going to show you…

  • What is a game engine?

  • The moving parts of a game engine

  • How to build your own simple game engine in SwiftUI

  • How to use this to make 2D games

  • The future of app loading screens

SwiftUI was a surprisingly perfect fit. My engine is entirely open source, plus my sample app, where I demo some minigames in a real loading screen. The games might just feel familiar if you owned an iPod Touch back in 2011.

Subscribe to Jacob’s Tech Tavern for free to get ludicrously in-depth articles on iOS, Swift, tech, & indie projects in your inbox every week.

Paid members get several benefits:

  • Access Elite Hacks, my exclusive advanced content 🌟

  • Read my free articles a month before anyone else 🚀

  • Grow your career with my Swift Concurrency course 🧵

Upgrade to read this article right now, or wait until November 10.

Keep reading with a 7-day free trial

Subscribe to Jacob’s Tech Tavern to keep reading this post and get 7 days of free access to the full post archives.

Already a paid subscriber? Sign in
© 2025 Jacob Bartlett
Privacy ∙ Terms ∙ Collection notice
Start writingGet the app
Substack is the home for great culture