Castle Arena So Far, in Numbers

Devlogs tend to be about the shiny parts. This one is a receipt. Every number below was counted from the project itself on October 3: the history of changes, the source code, the game data and the test folders. Where a count depends on how you slice it, we say so.
Three days
Castle Arena's first design report is dated October 1, 2026. The first commit (a saved, described set of changes) landed shortly after midnight on October 2, and the latest at 11:30 pm on October 3. That's three calendar days and 43 commits. Some are one-line fixes; others carry a lot of work at once.
The receipt
| What | Count |
|---|---|
| Commits | 43 |
| Lines of TypeScript in the game's source | about 84,000 (84,078 in 376 files) |
| Factions | 14 |
| Buildings on the build menus | 140 (10 per faction) |
| Buildings, counting every upgrade | 231 |
| Troop types | 182 (162 trained by buildings, 20 summoned or raised) |
| Arenas | 6 |
| Perks | 12 |
| Shop items | 12 |
| Game mode commands | 48, plus 10 ready-made modes |
| Match formats | 3 (1v1, 2v2, 3v3) |
| Achievements | 17 |
| Coat of arms charges | 30 |
| English translation entries | about 3,700 |
| Automated tests | about 130, in 14 test files |
| Automated check commands | 6 |
| Reference screenshots for visual checks | 74 |
| Design reports | 14 |
A few notes so the table doesn't oversell itself. The line count covers everything written in TypeScript, so faction lore and the English dictionaries count too. "Troop types" includes every unit in the faction data, such as skeletons raised from corpses and creatures summoned by spells. The translation count adds up the English entries across 74 dictionary files; a handful of them are patterns that cover many sentences at once.
What the checks do
The checks deserve a line each, because they're why we can move this fast without breaking things:
- Tests cover the rules, abilities, game modes, team matches, Training lessons and game data, and run four minutes of AI play for every faction.
- Lockstep check plays the same match on two simulated computers and proves they stay identical, which is what online play depends on.
- Replay check makes sure replays play back to exactly the same result, including jumps in time.
- Resync check drops and restores players and spectators, then compares the results.
- Translation check flags any text without an English version.
- Visual check photographs fixed scenes with a frozen clock and compares them with our 74 reference screenshots.
We also wrote 14 design reports: rules, balance, interface, Training, stalemates, crowd fighting, flying units, game modes, team matches and more. Several of them changed our minds, as you can read in Two Hard Problems.
What's next
No dates, just the honest list of what our own notes mark as unfinished:
- A Steam store page. Castle Arena doesn't have its own page on Steam yet.
- Flyers that look the part. Flying troops still use procedural wings; real 3D creatures are on the list.
- Online with more people. Online team matches are still two humans plus AI allies.
- Balance, always. Our latest AI round-robin puts every faction between 42% and 57%, and we're keeping a particular eye on the Abyssal Pact.
- Estimated numbers. Some ability values, mostly for summoned creatures, are still our own estimates and are flagged for review.
- Training. One lesson teaches its point less sharply since the melee movement changed, and a lesson about perks would be the natural next step.
- A known bug. The minimap can still show invisible enemy troops.
That's where Castle Arena stands today. We hope the next receipt is a longer one.
— The Castle Arena team
