Inspiration

Shogi is one of the most widely played board games in Japan. On the iOS store there is Shogi Wars, supervised by the Japan Shogi Association, and Shogi Quest, a much-loved indie app. I play both of them myself.

Like chess, shogi makes studying openings and established forms a prerequisite for climbing into the higher grades. Play for a while and you start to feel that wall of study standing in front of you.

I wanted to build something where your judgment in the moment counts toward winning more than how much you have studied beforehand. The reason was simply that I wanted to enjoy shogi without having to study for it — a lazy motive.

So I arrived at an approach: add a large number of pieces with new effects and abilities, enough to make the opening theory people have researched for so many years almost meaningless.

On top of that, I wanted to keep what makes shogi good — that it is a game of perfect information, and that both players compete from a nearly equal starting line. So I kept randomness out of the contest itself, and gave both players the same set of pieces. What came out was a new board game where the appeal of shogi and the casualness I was after fit together well.

What it does

Strange Shogi is online shogi in which some of the normal pieces are replaced with strange pieces.

When a match starts, 4 to 6 of the pieces other than the king are replaced with strange pieces. The replacement is point-symmetric, so both players get the same set. There are 54 strange pieces in total, and 51 of them can appear at the opening. The archer, for example, captures a distant piece without moving. The spider pulls an enemy in with its thread. The magic hand pulls a distant enemy to the square in front of it. The rock cannot be captured. The bacterium can only move onto empty squares, and it disappears when it is captured.

Because the set is different every time, you cannot apply opening theory directly. Each player has five minutes of sudden-death time, and you play against other users. When nobody is waiting, a bot takes their place.

Everything else follows the normal rules of shogi.

How I built it

I built this mostly with Codex. I have almost no background in mobile app development, and I cannot read code. Quality is held together by test code and by checking the behaviour myself.

This is also the first online game I have made. At first I implemented the piece abilities and the board calculations on the app side, but as I read up on how online games are usually built, I moved to having the server compute the legal moves. The app only displays what the server has worked out.

The extra WebSocket round trips make the response slower, but adding pieces or changing rules no longer requires an app release.

Challenges

The game was working correctly fairly early on, but for some reason it was not enjoyable to touch. Compared with existing shogi apps there should have been nothing wrong with it as a game.

So I spent time playing several shogi apps carefully and looked at how they differed from mine. What came out of that was that the response you get to your own input has a large effect on whether something feels fun. I then spent a week adding sound effects, haptics, and motion effects for piece movement. That made the game more addictive, and produced the feeling of wanting to play one more game right after finishing one.

What I learned

What makes a game fun is interactivity. Even in places that have nothing to do with the gameplay itself, the more response you get to the action you took, the more hooked you get. When developing with AI, write the specification and the decisions into a single source of truth document, and have the AI judge and act on that basis. When your own instruction departs from the SSOT, it works best to have the SSOT updated first and only then have the work carried out.

Built with

Swift, SwiftUI, Core Haptics, AVAudioEngine, Node.js (no framework), WebSocket, AdMob, RevenueCat, PostHog, Terraform, Caddy, AWS Lightsail.

RevenueCat is integrated through the AdMob adapter, and tracks ad revenue linked to each user. In-app purchases are not implemented yet. The server side already has the mechanism for handling an ad-free entitlement, but I intend to hold it back until there is enough there to be worth charging for.

What's next

English localization. The board is in kanji, so swapping out strings is not enough on its own. The 40,000 title combinations rely on how the words sound in Japanese, so they have to be written from scratch rather than translated. Subscription benefits such as ad-free play. Spectating. I will start on it once enough games are running at the same time. A match format where you build a deck out of pieces, with pieces collected through gacha, through matches, and through other game modes. Marketing. Posting gameplay videos every day on the official X account, YouTube, TikTok and Instagram, and asking shogi influencers to promote the app.

Built With

Share this project:

Updates

Submission history