Exercise

Ship Lexicon Duel to Your Android Phone

Module 7 · Exercise 1 · ~1.5 hours · the real ship moment

This is the exercise that produces the first text message to a friend that says "hey want to try my game." You are one connected phone and one working preset away from that.

Definition of done

  1. You tapped your game's icon on your phone's home screen.
  2. It launched, you played a full duel, it didn't crash.
  3. You handed the phone to someone else and they played a duel without you explaining every button.
  4. You have a deploy.sh that rebuilds and installs in one command.

That's it. The UX-on-touch and the fit-for-friend test matter more than any technical milestone in this exercise.

Steps

1Android export preset. From Lesson 1: create "Android Debug" preset, set up icons (use any 192×192 placeholder), set unique name to your reverse-DNS. Hit Export Debug once in the UI to confirm it works.

2Touch targets pass. Open your game scene. Measure with your phone in hand: every tappable element should be at least 48×48dp (about 10mm). Letter cards, the End Turn button, Submit — test each with your thumb. Things that looked fine on desktop are almost certainly too small on phone. Fix before proceeding.

# Good starting sizes for portrait phone (~1080x2400):
Card:         160x220 px
Button:       240x80 px
Font (body):  36 px
Font (HP):    64 px

3Safe area. Add a MarginContainer at the root of your UI with 60px top margin and 40px bottom — most Android phones have a status bar or gesture bar that'll chew 40px of your layout.

4deploy.sh. Save this at your project root:

#!/bin/bash
set -e
PKG="com.yourname.lexiconduel"
APK="build/lexicon-duel-debug.apk"

echo "Building..."
godot --headless --export-debug "Android Debug" "$APK"

echo "Installing..."
adb install -r "$APK"

echo "Launching..."
adb shell am start -n "$PKG/com.godot.game.GodotApp"

echo "Tailing logs..."
adb logcat -s godot

chmod +x deploy.sh. Now ./deploy.sh is your dev loop. Expect ~20 seconds end to end.

5Two-hand playtest. Play 3 duels holding the phone normally with two thumbs. Note:

Each of these is a bug. Fix before step 6.

6One-hand playtest. Play a duel with ONE thumb, phone held normally. This is how 60% of your players will actually play. If it doesn't work one-handed: redesign the bottom of the screen so everything important is reachable.

7Cold-start test. Force-close the app (swipe away). Relaunch. Does it come back with state, or fresh? For now, fresh is fine — but note how long the splash screen takes. Anything over 2s feels slow.

8Hand-off test. Give the phone to someone who hasn't seen the game. Don't say anything. Watch. Where do they hesitate? What do they tap that doesn't respond? What do they not notice? This is the single most valuable data point in the module. Write three notes in progress/journal.md.

9Feature graphic. Not for submission yet — but take a nice screenshot of the duel screen on your phone. Save it to assets/promo/screenshot-01.png. You'll thank yourself when you're scrambling to fill in the Play Store listing later.

Stretch goals

Checkpoint You've done the single hardest thing in hobby-to-indie transition: you put your creation into a stranger's hands and they played it. Whatever happens next is iteration. The first flight is the big one.

What you have now

Module 8 turns this into "now do it 10x faster with AI." Keep your deploy.sh warm.