Devlog · Deduxion
Redesigning Deduxion for Android
Deduxion is a detective game where the suspects talk back. You read the dossier, search the scene and question each suspect in your own words. To close the case you name the culprit, the method and the motive, and you show the evidence that proves it.
We built the first version in February as a browser game. Playtesters gave us a long list of fixes, and this fall we rebuilt Deduxion as a native Android app and retired the web version. We'd rather do one platform well than two halfway.
How the rebuild went
We fixed the rules before we drew a single screen.
- Make the game fair. You now earn points for clues you dig up yourself, and you lose points only when you buy a hint. A wrong accusation gets the same neutral rejection every time, so you can't guess your way to the right suspect. An accusation now has three parts (who, how and why), and you attach the evidence.
- Split the acting from the rulings. In the prototype, the code that played a suspect also decided whether you'd found a clue. Now the characters only talk. The game's rules decide whether your contradiction landed, whether a suspect handed something over and how rattled they are, so a suspect can't give you the case by accident. If the game can't make a ruling, you keep your question.
- Run the game on the server. The Android app holds no game logic. It sends your question and draws the answer. That keeps the app small, around 6,000 lines of Kotlin, and lets us ship a rules fix without an app update.
- Rework each screen for one hand. We kept the existing look and rebuilt each screen for a phone, from sign-in and case files through interrogation, the notebook and the final reveal.
- Retire the web app. We deleted the Vue web app the day the Android app landed.
What we gave up
We lost the desk. The web version spread across a board up to 1,400 pixels wide, with the suspect roster open beside the conversation. A phone shows you one thing at a time, so we split the case into tabs and gave each interrogation the full screen.
| Area | Web prototype | Android | The trade |
|---|---|---|---|
| Layout | One wide board, roster sidebar, folder tabs | Dossier, suspects, scene and notebook tabs; full-screen chats | You can't watch two suspects at once, and you can give one your full attention |
| Look | Light paper on navy and cyan | Charcoal ground, gold accents, paper cards, red stamps | Darker and moodier |
| Type | Typewriter everywhere | Courier Prime for labels and numbers, Literata for briefings and dialogue | Typewriter type stays on labels, where it won't slow your reading |
| Actions | Type and click | Tap a line to pin it, then hold evidence up against it | Your thumbs type less |
| Questions | Free | A free daily allowance, then rewarded ads or question packs | You start free, and heavy players help pay for the servers |
Play Games is now the default sign-in, with email as a backup, so most players skip the login form. You buy a paid case once and keep it, and the case of the month costs nothing.
Problems we hit
Paying for each question. A reply depends on the case, the suspect and everything you've said so far, and our server used to work all of that out from scratch on each turn. We changed it to reuse the parts that stay the same. We also log what each request costs us, so we can see the bill per question.
Evidence on a five-inch screen. A piece of evidence used to be a name and a line of description, which gave a phone little to show. We turned evidence into documents in twelve formats, from police reports and newspaper clippings to telegrams, receipts and photos. You open each one full screen. A form looks like manila card, a telegram comes in strips, and you can flip a photo over to read the note on the back.
Reading short messages. In a playtest of the train case, a suspect admitted "I carry a master key" and the game missed the clue, because its rulings ignored who was speaking. We made them check the speaker, and now they catch it. A different rule read "Hand me the master key" as a player demanding the solution. We fixed that one too.
Keeping the app and server in sync. With the logic on the server, we worried about a reply the app no longer understands. A contract test calls the real server and checks each reply against sample files that the app's own tests read. Change the shape of a reply on one side and the build fails on the other.
Fair cases, and enough of them. A phone game needs new cases on a schedule, and a mystery has to play fair. We start each case as a logic grid of suspects and requirements before we write any story. A checker then proves the case has exactly one answer and that a named clue rules out each innocent suspect.
Our favorite bug. In one build, what one suspect knew leaked into everyone else, so each conversation ended with the suspect solving the case for you. We had a lot of helpful witnesses that week.
What's next
You can play two cases today: a murder on a train, and The Lantern Tea Room, a short tutorial. Thefts and kidnappings come next through the in-app store, along with a free case each month.
Want to play first? Join the sign-up list on our homepage for playtest invites and release news.
Magic Man Labs is an indie studio in Minnesota.