Skip to content

Astrocat

A real-time multiplayer vertical platformer where players race their cats to the moon.

Year
2026
Type
Apple Platforms · Game Engineering
Focus
Game systems, multiplayer, physics
Stack
SpriteKit · GameplayKit · GameKit · SwiftUI
On this page
Astrocat preview

Overview

Astrocat is a real-time multiplayer racing game built with a team at Apple Developer Academy. Players move upward through a vertical platforming level and compete to become the first cat to reach the moon.

It pushed me outside the web and app-development problems I was used to. A game that should feel simple to play required physics, input, architecture, synchronization, level generation, and visual feedback to work together.

Physics that changes how the game feels

Concepts such as movement, velocity, collision, gravity, and force stopped being abstract once small changes immediately affected how the character felt to control. The project made physics part of interaction design: technically correct movement was not enough if the result did not feel responsive or fun.

Organizing game behavior with ECS

Astrocat introduced me to Entity-Component-System architecture. Separating entities from reusable components and systems made the growing set of game behaviors easier to reason about than placing every responsibility inside individual game objects.

Random, but still playable

Randomizing the level sounded simple until fairness became a constraint. The generated map needed enough variation to make each race unpredictable, while still ensuring that the route remained possible to complete. That turned random generation into a balancing problem rather than arbitrary placement.

Real-time multiplayer synchronization

Using GameKit introduced a different class of failure from normal client-server applications. Player state and game events had to stay synchronized across devices while the game still felt responsive locally. It gave me a practical introduction to the tradeoffs behind real-time multiplayer rather than treating networking as a request-response flow.

Astrocat was also my first experience using TestFlight to distribute and test an iOS game before release.

Engineering Takeaways

Astrocat made me appreciate how much engineering sits behind something that should feel effortless to the player. Physics, architecture, synchronization, and level design disappear when they work well — and become immediately visible when they do not.

This was built with a team. Individual ownership of specific subsystems is not claimed here.