Inspiration

Our team shares an interest in aviation and the everyday life of airports. We wanted to turn that curiosity into a game that anyone could enjoy, even without knowing how an airport works.

Behind each departure are people balancing limited time, passenger requests, and small decisions that matter to someone. GATE 90 invites players to explore that human side through approachable, fictional situations: listen to a passenger, discover what is behind a request, and decide how to respond while the clock keeps moving.

We hope players leave with a little more curiosity and empathy for the people on both sides of the boarding pass. The closing terminal gives those encounters a shared story and a reason to care. This is a fictional game, not a representation of any particular airline or a guide to real operating procedures.

What it does

You are the gate agent for the final five flights before an old terminal closes. Each shift starts with 90 seconds on the game clock. Choose whom to call, read the request, optionally spend five seconds listening, then choose a response. More context can reveal another option; earlier decisions can change later conversations and opportunities.

The campaign contains 20 passenger cases, 60 authored responses, and four endings. A notebook preserves your calls. After each departure, the debrief separates rule accuracy and speed from the story's care, trust, and operations measures. You can replay a flight, or continue and live with the consequences. Unresolved passengers are handed over when time expires, so every playthrough can reach an ending.

STORY advances the countdown at half real-time speed. RUSH uses a real-time countdown. Night Connections offers endless shifts with changing aircraft and passenger queues. Reference sheets and reactions pause the clock. Autosave and resume make it possible to return between sessions.

The terminal changes across five days of pixel art, weather, and synthesized airport ambience. All five scenes are also available in the free Terminal Archive, where you can stop the clock and watch the place itself. The app supports English and Japanese.

How we built it

The app is native Swift, with SwiftUI for dialogue and controls and SpriteKit for the terminal, passengers, and aircraft. Pixel scenes are drawn in code. Airport ambience and chimes are synthesized in the app. Explicit decision records and flags allow earlier choices to affect later encounters while keeping saves and replays consistent.

Monetization follows the rhythm of a shift. Google AdMob supplies interstitial ads after a debrief. The app shows a fresh, preloaded ad only when consent and timing conditions allow it. If an ad is unavailable or presentation fails, the next shift opens without waiting. Ads do not interrupt passenger decisions.

RevenueCat's AdTracker is integrated with AdMob callbacks for loads, load failures, impressions, clicks, and ad revenue. Revenue callbacks include the impression identifier, currency, precision, and value in micros. The complete story, every ending, Night Connections, and all archive scenes remain free. There are no subscriptions or in-app purchases.

Google's User Messaging Platform handles consent. Game decisions and progress stay on the device; advertising services process the data described in the app's privacy information.

Challenges we ran into

The central challenge was making a short timer compatible with a story worth reading. STORY's slower countdown, paused reactions, and reference sheets give players room to understand a decision while preserving the cost of spending time. RUSH retains the sharper real-time pressure.

Another challenge was preserving consequences without trapping the player in a failure screen. Timeouts create handovers, and the campaign continues. Replaying a flight reconstructs its starting state, while ordinary continuation retains relationships and records.

An ad that finishes loading late must never suddenly appear during a conversation. The transition controller only presents already-loaded ads, applies an initial grace period and cooldown, and handles duplicate completion callbacks without advancing the story twice.

Accomplishments

GATE 90 is a complete, bilingual iPhone game with a connected five-day story, four endings, an endless mode, autosave, a decision notebook, and an explorable archive. Five seconds is both a real cost and an invitation to care. Familiar faces return, the room changes each day, and an ordinary working week becomes a farewell.

Release preparation included automated coverage of story state, audio, scoring, replay, archive access, and ad-transition behavior, plus an AdMob test-ad load, display, dismissal, and return-to-game test.

What we learned

A timer changes the meaning of a sentence. Pausing at the right moment matters as much as writing the sentence itself.

Narrative state needs the same discipline as any other application state. A promise, a missed passenger, a replay, and an interrupted session all need consistent records. Interface details matter when two languages must fit around the same countdown.

Monetization is also part of pacing. Choosing an ad placement means choosing when it is acceptable to ask for the player's attention. For GATE 90, that moment is after a shift has ended.

What's next

The next priorities are player feedback on the English dialogue and reading pace, more device and accessibility checks, and additional Night Connections cases. Live advertising and RevenueCat reporting will be evaluated as the audience develops, before making decisions about ad frequency or future content.

The aim is to deepen the people and situations at the gate while preserving a complete story that anyone can finish for free.

Built With

Share this project:

Updates

Submission history