Kevin Liu

Princeton TD

A browser tower defense game set at Princeton, with 26 levels.

GameData

Open ptd.questSource

The numbers

  • 291commitsgit rev-list --count a109b8424
  • 12GitHub starsgh api repos/Kevin-Liu-01/Princeton-Tower-Defense --jq .stargazers_count (2026-10-30)
  • 6check filesgh api repos/Kevin-Liu-01/Princeton-Tower-Defense/git/trees/a109b8424?recursive=1 | grep -cE <glob>
  • 3.46commits per active day291 commits over 84 distinct commit dates, 2025-12-31 to 2026-10-16

Trait

Waves Are Data Enemy waves are fixed lists, so its moves that hit more than once land every hit.

Princeton-Tower-Defense@e76bdf8:src/app/constants/waves.ts:1-15

Moves

  1. Missile Battery hits for 100, 90% of the time and goes first. The Palmer Mortar’s final upgrade can be a six-pod guided launcher that fires barrages, aimed automatically or by hand.

    Princeton-Tower-Defense@e76bdf8:README.md:225; src/app/constants/towers.ts:175, 180-185
  2. Wave Schedule hits for 45 three times. The first level, Poe Field, opens with three timed enemy groups, each with a set count and spacing.

    Princeton-Tower-Defense@e76bdf8:src/app/constants/waves.ts:21-27; src/app/constants/maps.ts:972-979
  3. Cached Map raises a 40% barrier. Terrain and paths are drawn once and kept until you zoom, so each frame redraws only towers, enemies and effects.

    Princeton-Tower-Defense@e76bdf8:README.md:28, 195-201
  4. Boss Wave hits for 145, 80% of the time. Sandbox mode is an endless arena for testing tower builds, and every fifth round sends a boss.

    Princeton-Tower-Defense@e76bdf8:README.md:255

Numbers pinned at a109b8424, 2026-10-16.

# every page, one line each
$ curl -s https://www.kevinliu.studio/llms.txt
# every card in one file
$ curl -s https://www.kevinliu.studio/llms-full.txt
# this page as Markdown
$ curl -s -H "Accept: text/markdown" https://www.kevinliu.studio/cards/princeton-td
HTTP 200 · text/markdown · 1,983 bytes
# Princeton TD

A browser tower defense game set at Princeton, with 26 levels.

Card 17 of 26 in Kevin Liu's collection. 2025. Game and Data.

- Live: https://ptd.quest/
- Source: https://github.com/Kevin-Liu-01/Princeton-Tower-Defense
- Inks: 2
- Health 318, attack 121, defence 109, speed 102

## The numbers

- **291 commits**. Receipt: `git rev-list --count a109b8424`
- **12 GitHub stars**. Receipt: `gh api repos/Kevin-Liu-01/Princeton-Tower-Defense --jq .stargazers_count (2026-10-30)`
- **6 check files**. Receipt: `gh api repos/Kevin-Liu-01/Princeton-Tower-Defense/git/trees/a109b8424?recursive=1 | grep -cE <glob>`
- **3.46 commits per active day**. Receipt: `291 commits over 84 distinct commit dates, 2025-12-31 to 2026-10-16`

## Trait

**Waves Are Data**. Enemy waves are fixed lists, so its moves that hit more than once land every hit. Receipt: `Princeton-Tower-Defense@e76bdf8:src/app/constants/waves.ts:1-15`

## Moves

- Missile Battery hits for 100, 90% of the time and goes first. The Palmer Mortar’s final upgrade can be a six-pod guided launcher that fires barrages, aimed automatically or by hand. Receipt: `Princeton-Tower-Defense@e76bdf8:README.md:225; src/app/constants/towers.ts:175, 180-185`
- Wave Schedule hits for 45 three times. The first level, Poe Field, opens with three timed enemy groups, each with a set count and spacing. Receipt: `Princeton-Tower-Defense@e76bdf8:src/app/constants/waves.ts:21-27; src/app/constants/maps.ts:972-979`
- Cached Map raises a 40% barrier. Terrain and paths are drawn once and kept until you zoom, so each frame redraws only towers, enemies and effects. Receipt: `Princeton-Tower-Defense@e76bdf8:README.md:28, 195-201`
- Boss Wave hits for 145, 80% of the time. Sandbox mode is an endless arena for testing tower builds, and every fifth round sends a boss. Receipt: `Princeton-Tower-Defense@e76bdf8:README.md:255`

Facts pinned at commit a109b8424 on 2026-10-16.

Back to every card: https://www.kevinliu.studio/