FEATURE
The Fight Engine: From Sliders to Knockdowns
The fight engine went through more iterations than anything else in the game. FightEngine.cs and FightDisplayController.cs are the two most-edited files in the entire codebase — 8 passes each.
The damage formula: (power x 0.15 + punchStat x 0.1) x (1 - defenderDefense/200). Intentionally halved from realistic values for theatrical pacing. Every fight should feel like a movie, not a spreadsheet.
Hit chance floor is 65% — most punches connect because watching two boxers whiff for 3 rounds isn't fun. 7-11 exchanges per round. 6% knockdown chance per big hit. Stamina recovers +8 between rounds, creating a natural degradation arc.
42 fights across 5 chapters. Each opponent has an archetype — brawler, technician, counter-puncher, tank, showboat, scrapper. The archetype determines their AI patterns, not just their stats.
Pass 105 was the 5th attempt at getting the fight rendering to work. We tried ScreenSpaceCamera, abandoned it, went back to ScreenSpaceOverlay with world-space SpriteRenderers. Sometimes the right answer is the one you started with.
Oh, and there are Easter eggs. You might run into the Italian Stallion. And if you look hard enough, Mike Tyson makes an appearance. I'll leave it at that.