Inspiration
We wanted a way to learn Xiangqi (Chinese chess) right on your phone, then take what you learned into online matches with friends.
What it does
Fun Xiangqi is Chinese chess (Xiangqi) built natively for iOS, with a built-in engine and an adaptive AI Player.
Play your way. Every match uses a classic 2D board. Play the engine at a difficulty you pick, or play a friend online — quick match finds an opponent now, while a join code opens a private room for someone specific. Ratings, wins and losses are tracked per account, and every finished game gets a move-by-move review.
A challenge map, not just puzzles. Five chapters hold 160 endgame puzzles that unlock as you clear the ones before them. Boss positions along the way award a badge instead of stars.
Daily quests and streaks. Three quests reset every day, paying out coins and XP. Your streak is always visible, never buried in a menu.
Fun Xiangqi Pro. One entitlement with several ways to pay — weekly, monthly, three- and six-month, yearly with a free trial, or lifetime. Pro removes the daily-credit wall on paid challenge chapters, unlocks the adaptive AI Player, and adds board and piece skins, no ads and a priority match queue. Everything free stays free; Pro only removes limits and never changes how a game plays out.
How we built it
- Design first: we mocked up the app in Claude Design, then turned those mocks into development guidelines for Claude Code to implement.
- iOS app: native Swift + SwiftUI in Xcode.
- Backend: a Flask API using the Firebase SDK for authentication, Firestore for data and Realtime Database for live match sync.
- Engine: Pikafish (UCI) running as its own service, powering the AI Player, move hints and puzzle validation.
- Monetization: RevenueCat handles every Pro package behind a single entitlement.
Challenges we ran into
- Setting up the Pikafish engine and getting the AI Player to behave well was the toughest part of the build.
- Keeping two players' boards in sync in real time, reliably, took several iterations.
Accomplishments that we're proud of
- The AI Player works: it adapts precisely to every move the player makes.
- Real-time online matches between players stay in sync through Firebase Realtime Database.
What we learned
- How to set up and drive Pikafish as the engine behind a Chinese chess AI opponent.
- How to build reliable real-time move sync between players with Firebase Realtime Database.
What's next for Fun Xiangqi: Chinese Chess
- An Android version.
- More content: puzzles, challenges and seasonal events.
- A stronger AI Player that can keep up with high-Elo players.
- Visit https://www.fxqchess.com/en for latest updates.
Log in or sign up for Devpost to join the conversation.