How bubsee/kotowaza works
Kotowaza is a Pygame top-down exploration game. The main loop turns keyboard input into player movement, draws the tiled village and layered scenery, updates wandering villagers, and presents prompts and a notebook overlay. The documented exploration, randomized grass, responsive movement, and Japanese-inspired scenery map to these runtime modules. NPC pathfinding and collision details are supported by sampled code; the README’s broader promise of discovering secrets is not shown as a separate implemented system.
Main entry points: Main.py Game Loop · NPCs.py Villager Simulation · hitboxes.py Collision Checks · map.py Tile Map
Components 12
Game Loop
- Game Loop
Main.py
Village World
- Tile Map
map.py - Village Scenery
village_objects.py - Building Entries
entries.py
Movement and NPCs
- Collision Checks
hitboxes.py - Obstacle Rectangles
list_of_hitboxes.py - Villager Simulation
NPCs.py
Visuals and UI
- Art Assets
objects.py - Player Animation
sprites.py - Notebook Overlay
Notebook.py - Interaction Prompt
Text_popups.py
Other components
- Player
Connections 17
- Player → Game Loop: provides input
- Game Loop → Collision Checks: checks movement
- Collision Checks → Tile Map: reads tiles
- Collision Checks → Obstacle Rectangles: checks obstacles
- Game Loop → Tile Map: reads tiles
- Game Loop → Art Assets: draws floor
- Game Loop → Village Scenery: draws scenery
- Village Scenery → Art Assets: blits assets
- Game Loop → Player Animation: selects animation
- Game Loop → Villager Simulation: updates villagers
- Villager Simulation → Tile Map: routes on paths
- Villager Simulation → Obstacle Rectangles: checks obstacles
- Villager Simulation → Building Entries: gets spawn points
- Villager Simulation → Player Animation: uses idle sprites
- Game Loop → Notebook Overlay: draws overlay
- Notebook Overlay → Art Assets: uses notebook art
- Game Loop → Interaction Prompt: shows prompt