fps

Featured

Design an arena level for Jev FPS (the ASCII map, the demons, the pace), then measure where Jev's decision rate stops being enough.

AI & Automation 957 stars 79 forks Updated today MIT

Install

View on GitHub

Quality Score: 93/100

Stars 20%
99
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Craft: Jev FPS levels Jev FPS is a first-person arena shooter that Jev plays by itself, one typed decision at a time. You shape the arena in `level.json`. The craft is a map that reads well in 3D and a pace that shows the real limit: about nine decisions a second. ## What Jev is asked, every tick One call, four questions, all answered in parallel from the same state text: ``` turn choice LEFT_HARD LEFT LEFT_FINE AHEAD RIGHT_FINE RIGHT RIGHT_HARD move choice FORWARD BACK STRAFE_LEFT STRAFE_RIGHT HOLD fire noul "Fire now? Yes only when a demon is in your crosshair and you have ammo." threat score calm < watchful < pressed < critical ``` The state text is what a player could know: health, ammo, wall distances, each demon in sight with its bearing and distance, the nearest demon it can hear but not see, the automap route, and whether the crosshair is on a demon. The pane shows this text live under "What Jev reads". ## Drawing a good map - Tiles: `#` stone, `%` tech panel, `=` hell brick, `.` floor, `P` start, `D` demon spawn, `M` medkit, `A` ammo. The border must be wall. Every row is the same width. - Give sight lines of 5 to 9 tiles. Very long halls make it a shooting gallery. Tight mazes hide demons until they are biting. - Put spawns on at least two sides of the start so Jev must turn to deal with them. - Pillars (single wall tiles in a room) make demons split and flank, which is fun to watch. - A level of about 24 by 16 fills the minim...

Details

Author
autonomous-ai
Repository
autonomous-ai/openharness
Created
1 months ago
Last Updated
today
Language
C
License
MIT

Similar Skills

Semantically similar based on skill content — not just same category