
PHYSICS-FORTRESS BATTLE (CHARGE! Edition) — Portfolio GDD
One-line Hook
A fast competitive artillery game where players earn hits by doing projectile math, then choose whether to push their luck for bonus damage with CHARGE!.
Elevator Pitch
PHYSICS-FORTRESS BATTLE turns core kinematics into a tight tabletop duel: players draw an attack (m, v₀), choose an angle, compute range to match a declared target band, then convert kinetic energy into damage. Dice add bounded uncertainty (launch reliability + drift), and CHARGE! creates a high-agency push-your-luck layer that rewards confidence while preserving tension. It is designed for quick play, clear state visibility, and classroom deployment without sacrificing competitive depth.
Genre / Player Count / Session
- Competitive tabletop / educational tactics
- 2–4 players
- 10–25 minutes (scales with player count and Integrity tuning)
Design Pillars (What the game is “about”)
- Skill Gate Before Chance
Math happens first. Players must earn the roll by hitting a range band. - Bounded Uncertainty, Not Random Outcomes
Dice cannot create damage from a miss; they only modulate a successful solution. - Agency Under Risk
CHARGE! is optional and player-controlled: “bank” value vs “bust” volatility. - Readable Combat State
Integrity boxes make damage, breach, and elimination instantly legible.
Core Experience Loop (Player-facing)
Draw → Declare (side + angle) → Compute R → HIT? → Compute KE → Launch Roll → Drift (sometimes) → Base Damage → Optional CHARGE! → Breach/Eliminate check → Next player
Moment-to-moment decisions
- Which side band to target (risk/reward, finish opportunities, defense reading)
- Which angle to use (accuracy vs drift profile at 60°)
- Whether to CHARGE! and how long to press (STOP vs BUST)
Target Audience & Use Cases
- Primary: students learning projectile motion + energy, competitive learners, game-based learning environments.
- Secondary: casual tabletop players who enjoy quick tactical duels and push-your-luck.
- Classroom modes: team-vs-team, stations, warm-up competition, review day.
Core Systems (Cohesive Summary)
Components
- Fortress board per player with 4 sides (W/S/E/N), each at Integrity 6 (□□□□□□).
- Attack deck: each card shows m (kg) and v₀ (m/s).
- Dice: d6 and 3d6.
Target Bands (Range Targets)
Declared side determines band:
- W: 10 m, S: 16 m, E: 20 m, N: 22 m
HIT if |R − band| ≤ 1.5 m.
Physics-First Resolution (always before dice)
- Range: R = v₀² · Fθ, θ ∈ {30°, 45°, 60°}
F30 = 0.0884, F45 = 0.102, F60 = 0.0884 - Kinetic Energy: KE = 0.5 · m · v₀²
Launch Reliability: ARTILLERY-11
Roll 3d6 after math:
- 11 MISFIRE (no damage, no CHARGE!)
- ≤11 launches
- ≤5 PERFECT RELEASE (launches, skip drift)
Air Drag (drift affects side only, not R)
Only if: HIT + launched + not Perfect Release.
CW: N→E→S→W→N; CCW: N→W→S→E→N
Drag die: 1–2 CCW, 3–4 none, 5–6 CW
- θ 30°/45°: 1 die
- θ 60°: 2 dice combine to a single drift (never drift 2 sides)
Damage Conversion (base damage to final side)
- KE ≥ 30 J → 3 boxes
- 20–29.9 J → 2
- 10–19.9 J → 1
- < 10 J → 0
Integrity floors at 0.
CHARGE! (Signature Mechanic / Differentiator)
Design Intent
Convert “I solved it” into a meaningful gamble: extra damage is not random—risk is chosen.
Trigger
CHARGE! may be declared only after a Successful Shot: HIT + launched (3d6 ≤ 11). Perfect Release counts.
Procedure (always 3 dice per pull)
Each pull is 3d6:
- 1=W, 2=S, 3=E, 4=N → bank +1 damage to that side
- 5 → no effect
- 6 → lock as Danger (set aside), then replace so next pull is always 3 dice
Stop anytime:
- If you STOP before 3 total locked 6s: apply banked damage to the indicated sides.
- On the 3rd locked 6: BUST immediately (lose all CHARGE! banked damage).
Why it works
- Rewards situational awareness (finish a breached fortress, spread damage, or snipe weak sides)
- Provides tension without undermining the math-first identity
Fortress States (Breach & Elimination)
- Breach: any side hits 0 → fortress becomes BREACHED (still plays)
- Elimination: a BREACHED fortress is eliminated the next time it takes ≥1 damage (base or CHARGE!)
Design intent: “One more shot” creates drama, comeback windows, and clear finish pressure.
What Makes This Portfolio-Worthy (Explicit Claims)
1) Strong Skill/Chance Architecture
- MISS ends the turn before any roll: avoids “dice doing the work.”
- Dice modulate success (launch + drift), not replace it.
2) Clean Risk Layering
- Base damage is deterministic from KE tiers.
- CHARGE! is optional volatility with a strict bust condition.
3) High Readability + Fast Teaching
- Integrity boxes are a visible scoreboard.
- Angle set is constrained (30/45/60) and trig is removed via Fθ constants.
4) Tunable for Classroom or Competitive Play
You can tune difficulty, length, chaos, and learning load without rewriting the engine.
Balancing & Tuning Knobs (with expected outcomes)
- HIT window (±1.5 m): tighter = more skill, shorter CHARGE frequency.
- Band distances (10/16/20/22): rebalances side value and “best θ” patterns.
- Artillery threshold (11) & Perfect Release (5): controls reliability and drift frequency.
- Drag distribution and 60° combine rule: controls variance and “angle personality.”
- KE damage tiers: main time-to-kill lever.
- CHARGE bust at 3 locked 6s: adjusts aggression and average bonus damage.
UX / Rules Clarity (Anti-Lawyering Definitions)
- Declared side: side chosen before math.
- Final side: side after drift (if any).
- Successful Shot: HIT + launched (3d6 ≤ 11).
- Perfect Release: 3d6 ≤ 5; skip drift.
- Air Drag changes only side, not computed R.
- CHARGE! bank damage may hit multiple sides; base damage hits only final side.
Appendix A — Worked Example Turn (Complete)
Setup Assumptions
Target bands: W 10, S 16, E 20, N 22. HIT window ±1.5 m.
Example Attack Card
m = 0.20 kg, v₀ = 14 m/s
Step 1: Declare
Player declares target side E (20 m) and angle 45°.
Step 2: Range
R = v₀² · F45 = (14²) · 0.102
14² = 196
R = 196 · 0.102 = 19.992 m ≈ 20.0 m
Check HIT: |20.0 − 20| = 0.0 ≤ 1.5 → HIT
Step 3: KE
KE = 0.5 · m · v₀² = 0.5 · 0.20 · 196
0.5 · 0.20 = 0.10
KE = 0.10 · 196 = 19.6 J
Base damage tier: 10–19.9 J → 1 box
Step 4: Artillery-11
Roll 3d6 = 9 → ≤ 11 launches (not Perfect Release)
Step 5: Air Drag (45° uses 1d6)
Roll d6 = 6 → drift CW one side
CW from E → S
Final side becomes S
Step 6: Apply Base Damage
Apply 1 box to S integrity of the defender.
Step 7: Optional CHARGE!
Player declares CHARGE! (allowed: Successful Shot).
Pull 1 (3d6): 1, 4, 6
- 1 → W-bank +1
- 4 → N-bank +1
- 6 → lock Danger (Danger=1), replace next pull to keep 3 dice
Player chooses to press.
Pull 2 (3d6): 2, 5, 6
- 2 → S-bank +1
- 5 → none
- 6 → lock Danger (Danger=2)
Player chooses to STOP (Danger < 3).
Apply CHARGE! banked boxes: W +1, N +1, S +1 to the defender after base damage.
Net result this turn
- Base: S takes 1
- CHARGE!: W takes 1, N takes 1, S takes 1
Total: 3 bonus-distributed boxes + 1 base box across sides.
Appendix B — Edge Case Examples (Quick)
B1) MISS Example
Declared N (22 m), computed R = 19.0 m → |19−22|=3.0 >1.5 → MISS
Turn ends immediately: no roll, no damage, no CHARGE!
B2) MISFIRE Example
HIT achieved, KE computed, Artillery roll = 12 → MISFIRE
No damage, no drift, no CHARGE!. Turn ends.
B3) Perfect Release Example
HIT achieved, Artillery roll = 5 → Perfect Release
Skip drift. Damage applies to declared side (final side = declared side).
B4) 60° Drift Combine Example
At θ=60°, roll 2d6:
- If 1 (CCW) and 6 (CW) → cancel (no drift)
- If 1 (CCW) and 2 (CCW) → drift CCW 1
- If 3 (none) and 6 (CW) → ignore none, drift CW 1
Never drift 2.
Portfolio Presentation Notes (How to show this on a site)
Include these artifacts as separate sections:
- One-page Pitch Sheet (Hook, Pillars, Loop, Differentiators)
- Rules Overview (the core engine in ~1 page)
- CHARGE! Deep Dive (why it exists, how it plays)
- Worked Example (Appendix A)
- Tuning Knobs + Playtest Notes (even if brief)