diff options
| author | Gene Pasquet <dev@etenil.net> | 2026-04-10 17:38:04 +0100 |
|---|---|---|
| committer | Gene Pasquet <dev@etenil.net> | 2026-04-10 17:38:04 +0100 |
| commit | e1da1b0c2b2df9880e7f0a76b6ecc7aefecaf229 (patch) | |
| tree | 15e89991aaaa3c2c44058998598d726a3bb66697 /README.org | |
| parent | 9ffd919e293324332acd87cd129c8d73ea27035a (diff) | |
Remove useless ai.scm, use prefabs
Diffstat (limited to 'README.org')
| -rw-r--r-- | README.org | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -19,7 +19,6 @@ A 2D tile-driven game engine for Chicken Scheme, built on SDL2. Targets old-scho - Built-in update pipeline: input → acceleration → gravity → x-collision → y-collision → ground detection → entity collisions - Entities as plists — purely functional, no classes - Data-driven prefab/mixin system for composing entity types -- FSM-based enemy AI via the =states= egg - Configurable input: keyboard, joystick, and controller - Asset registry with =preload:= lifecycle hook - Scene and camera management @@ -53,10 +52,12 @@ System libraries: =SDL2=, =SDL2_image=, =SDL2_mixer=, =SDL2_ttf= Chicken eggs: #+begin_example -chicken-install sdl2 sdl2-image expat matchable defstruct states \ +chicken-install sdl2 sdl2-image expat matchable defstruct \ srfi-197 simple-logger srfi-64 #+end_example +Games that ship their own FSM logic (for example with the =states= egg) declare that egg themselves; Downstroke does not depend on it. + ** Building #+begin_src sh @@ -75,7 +76,7 @@ csi -s tests/physics-test.scm Modules live at the project root. Each compiles as a Chicken unit (=csc -c -J -unit=). Compile order follows the dependency graph: -: entity, tilemap → world → animation, physics, ai → input → prefabs → mixer → sound → engine +: entity, tilemap → world → animation, physics → input → prefabs → mixer → sound → engine | Module | Responsibility | |----------------+---------------------------------------------------| @@ -85,7 +86,6 @@ Modules live at the project root. Each compiles as a Chicken unit (=csc -c -J -u | =physics= | Gravity, velocity, AABB tile + entity collisions | | =input= | SDL2 events → action mapping, configurable binds | | =animation= | Frame/tick tracking, sprite ID mapping | -| =ai= | FSM enemy AI: idle → patrol → chase → attack | | =prefabs= | Mixin composition, entity instantiation | | =renderer= | =draw-sprite=, =draw-tilemap-layer=, =draw-text= | | =assets= | Asset registry for the =preload:= hook | |
