I built Kingdom Watch because I still love the kind of strategy game that expects you to care all day, not just for a five-minute session. Utopia always had that pull for me. You build a province, watch the numbers move, make enemies, get hit when you're not ready, and suddenly your whole day has a little bit of war in it.
I wanted that feeling on the Apple Watch. If someone attacks you, your wrist should buzz. You should be able to glance down, understand the danger, and make one smart move immediately. The watch is the battlefield. The phone is the war room.
This project is a strategy war game for iPhone and Apple Watch. You manage a province, grow land, train troops, cast spells, run thievery operations, and fight for territory on a 20-minute tick.
The original shape of the game assumed real kingdoms full of real players. That is still the goal, but an empty multiplayer game is not fun, so version 0.1.0 now starts every province inside a solo frontier campaign. You get three named rival factions, a short list of guided orders, an event feed, and quick raids you can launch directly from the watch. That gives the game a real opening instead of asking the player to imagine one.
All of the game logic lives in the shared KingdomWatchEngine Swift package. The iPhone app, watch app, and watch widgets all read from the same rules. That matters here because the watch experience only works if combat math, province growth, alerts, and bot behavior all agree everywhere.
There is no custom server. Provinces store the last time they were processed, and each device catches up the missing ticks when it loads the province. That keeps costs down and keeps the design simple enough to ship. It also means the tick math has to stay deterministic. If two devices process the same province at the same moment, they need to land on the same answer.
CloudKit handles sync, records, and subscriptions. SwiftUI handles the app UI. Swift 6 strict concurrency keeps the sync and engine code honest. The main service layer is actor-based because I would rather structure the data flow clearly now than debug race conditions later.
This version is the first one where I feel like the watch actually has a game to host.
The biggest change is the watch-first solo frontier. A new province now spawns into a valley with three bot rivals: Ashen Knives, Iron Hearth, and Veil Synod. They grow over time, build pressure, scout you early, and then start raiding if you ignore them. The watch shows the most urgent order, the current pressure, the latest frontier event, and the best quick strike available right now.
I also reworked onboarding so the pitch makes sense from the start. Instead of talking about a kingdom that may or may not exist yet, the game now tells you that the frontier is active immediately. The phone mirrors the same campaign state so the whole app feels like one game instead of a watch app taped to a phone dashboard.
Right now the shared engine sits at 407 passing tests, and both the iOS target and the watchOS target build cleanly. That matters more to me than flashy copy because the whole project falls apart fast if the tick engine, combat rules, or sync layer drift out of agreement.
- Install xcodegen.
- Run
xcodegen generateif you need to regenerate the project. - Open
KingdomWatch.xcodeprojin Xcode. - Set your team, signing, and CloudKit container values.
- Build the iPhone and watch targets.
If I want better store art or preview assets, these are the kinds of prompts I would use.
Image prompt for Grok Imagine or Nano Banana:
Create premium App Store key art for "Kingdom Watch," a dark fantasy medieval strategy game built for Apple Watch and iPhone. Show an armored ruler standing in a storm-lit war room while an Apple Watch in the foreground displays a battle alert and a tiny kingdom map. Mood is tense, strategic, and atmospheric, not cartoonish. Visual style should feel like prestige fantasy game marketing: deep steel blues, ember orange highlights, worn gold accents, drifting ash, candlelit map table, banners, rain on stone windows, subtle magical glow. Emphasize that the watch is the battlefield and the phone is the command center. Cinematic composition, realistic materials, high contrast, sharp focus, premium mobile game advertising quality, no text, no watermark, portrait-friendly framing.
Video prompt for Grok Imagine or Nano Banana:
Create a 12-second cinematic vertical promo for "Kingdom Watch," a dark fantasy strategy game for Apple Watch and iPhone. Open on a stormy medieval war room with maps, candles, and distant thunder. Push in toward an Apple Watch on a commander’s wrist as it vibrates with an incoming attack alert. Cut to quick flashes of a frontier map, marching armies, magical shields, and a province under siege. End on a strong hero shot showing the watch interface and the ruler preparing a counterattack. Style should be realistic, atmospheric, high-end fantasy game marketing, with ember sparks, rain, steel, candlelight, and dramatic camera motion. No logos, no subtitles, no watermark.
Image prompt for Grok Imagine or Nano Banana:
Create a clean but dramatic product-style marketing image for an Apple Watch game called "Kingdom Watch." The Apple Watch screen should clearly show a dark fantasy strategy interface with frontier rivals, renown, warning indicators, and a one-tap raid action. Surround the watch with subtle medieval battlefield elements like torn banners, iron, parchment maps, and red signal flares, but keep the watch readable and dominant. Color palette: charcoal, iron gray, old gold, blood red, muted parchment. Premium Apple-style product lighting mixed with dark fantasy atmosphere. No text, no watermark, highly detailed, suitable for App Store preview art.
Video prompt for Grok Imagine or Nano Banana:
Create a 10-second product-focused promo showing an Apple Watch as the primary play surface for a dark fantasy strategy game called "Kingdom Watch." Start with a quiet close-up of the watch on a wrist, then trigger a haptic-style alert as an enemy raid warning appears. Show fast readable interface transitions: threat rising, frontier order updating, and a one-tap raid being launched. Blend the UI with atmospheric battlefield imagery like smoke, embers, steel, and distant cavalry silhouettes. The watch must stay readable and feel premium. Cinematic, polished, dramatic, vertical format, no text overlays, no watermark.
This project is publicly visible for portfolio purposes only. It is not open source. The full terms live in the LICENSE file.