This commit completes a comprehensive documentation migration initiative that transforms McRogueFace's documentation from scattered markdown files into a structured, navigable wiki with systematic issue organization. ## Wiki Content Created (20 pages) **Navigation & Indices:** - Home page with 3 entry points (by system, use-case, workflow) - Design Proposals index - Issue Roadmap (46 issues organized by tier/system) **System Documentation (5 pages):** - Grid System (3-layer architecture: Visual/World/Perspective) - Animation System (property-based, 24+ easing functions) - Python Binding System (C++/Python integration patterns) - UI Component Hierarchy (UIDrawable inheritance tree) - Performance and Profiling (ScopedTimer, F3 overlay) **Workflow Guides (3 pages):** - Adding Python Bindings (step-by-step tutorial) - Performance Optimization Workflow (profile → optimize → verify) - Writing Tests (direct execution vs game loop tests) **Use-Case Documentation (5 pages):** - Entity Management - Rendering - AI and Pathfinding - Input and Events - Procedural Generation **Grid System Deep Dives (3 pages):** - Grid Rendering Pipeline (4-stage process) - Grid-TCOD Integration (FOV, pathfinding) - Grid Entity Lifecycle (5 states, memory management) **Strategic Documentation (2 pages):** - Proposal: Next-Gen Grid-Entity System (consolidated from 3 files) - Strategic Direction (extracted from FINAL_RECOMMENDATIONS.md) ## Issue Organization System Created 14 new labels across 3 orthogonal dimensions: **System Labels (8):** - system:grid, system:animation, system:python-binding - system:ui-hierarchy, system:performance, system:rendering - system:input, system:documentation **Priority Labels (3):** - priority:tier1-active (18 issues) - Critical path to v1.0 - priority:tier2-foundation (11 issues) - Important but not blocking - priority:tier3-future (17 issues) - Deferred until after v1.0 **Workflow Labels (3):** - workflow:blocked - Waiting on dependencies - workflow:needs-benchmark - Needs performance testing - workflow:needs-documentation - Needs docs before/after implementation All 46 open issues now labeled with appropriate system/priority/workflow tags. ## Documentation Updates **README.md:** - Updated Documentation section to reference Gitea wiki - Added key wiki page links (Home, Grid System, Python Binding, etc.) - Updated Contributing section with issue tracking information - Documented label taxonomy and Issue Roadmap **Analysis Files:** - Moved 17 completed analysis files to .archive/ directory: - EVAL_*.md (5 files) - Strategic analysis - TOPICS_*.md (4 files) - Task analysis - NEXT_GEN_GRIDS_ENTITIES_*.md (3 files) - Design proposals - FINAL_RECOMMENDATIONS.md, MASTER_TASK_SCHEDULE.md - PROJECT_THEMES_ANALYSIS.md, ANIMATION_FIX_IMPLEMENTATION.md - compass_artifact_*.md - Research artifacts ## Benefits This migration provides: 1. **Agent-friendly documentation** - Structured for LLM context management 2. **Multiple navigation paths** - By system, use-case, or workflow 3. **Dense cross-referencing** - Wiki pages link to related content 4. **Systematic issue organization** - Filterable by system AND priority 5. **Living documentation** - Wiki can evolve with the codebase 6. **Clear development priorities** - Tier 1/2/3 system guides focus Wiki URL: https://gamedev.ffwf.net/gitea/john/McRogueFace/wiki 🤖 Generated with Claude Code (https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| assets | ||
| deps/platform | ||
| docs | ||
| modules | ||
| roguelike_tutorial | ||
| src | ||
| tests | ||
| tools | ||
| .gitignore | ||
| .gitmodules | ||
| CLAUDE.md | ||
| CMakeLists.txt | ||
| GNUmakefile | ||
| LICENSE.md | ||
| README.md | ||
| ROADMAP.md | ||
| build.sh | ||
| build_windows.bat | ||
| build_windows_cmake.bat | ||
| compile_commands.json | ||
README.md
McRogueFace
Blame my wife for the name
A Python-powered 2D game engine for creating roguelike games, built with C++ and SFML.
- Core roguelike logic from libtcod: field of view, pathfinding
- Animate sprites with multiple frames. Smooth transitions for positions, sizes, zoom, and camera
- Simple GUI element system allows keyboard and mouse input, composition
- No compilation or installation necessary. The runtime is a full Python environment; "Zip And Ship"
Pre-Alpha Release Demo: my 7DRL 2025 entry "Crypt of Sokoban" - a prototype with buttons, boulders, enemies, and items.
Quick Start
Download:
- The entire McRogueFace visual framework:
- Sprite: an image file or one sprite from a shared sprite sheet
- Caption: load a font, display text
- Frame: A rectangle; put other things on it to move or manage GUIs as modules
- Grid: A 2D array of tiles with zoom + position control
- Entity: Lives on a Grid, displays a sprite, and can have a perspective or move along a path
- Animation: Change any property on any of the above over time
# Clone and build
git clone <wherever you found this repo>
cd McRogueFace
make
# Run the example game
cd build
./mcrogueface
Example: Creating a Simple Scene
import mcrfpy
# Create a new scene
mcrfpy.createScene("intro")
# Add a text caption
caption = mcrfpy.Caption((50, 50), "Welcome to McRogueFace!")
caption.size = 48
caption.fill_color = (255, 255, 255)
# Add to scene
mcrfpy.sceneUI("intro").append(caption)
# Switch to the scene
mcrfpy.setScene("intro")
Documentation
📚 Developer Documentation
For comprehensive documentation about systems, architecture, and development workflows:
Key wiki pages:
- Home - Documentation hub with multiple entry points
- Grid System - Three-layer grid architecture
- Python Binding System - C++/Python integration
- Performance and Profiling - Optimization tools
- Adding Python Bindings - Step-by-step binding guide
- Issue Roadmap - All 46 open issues organized by system
📖 Development Guides
In the repository root:
- CLAUDE.md - Build instructions, testing guidelines, common tasks
- ROADMAP.md - Strategic vision and development phases
- roguelike_tutorial/ - Complete roguelike tutorial implementations
Build Requirements
- C++17 compiler (GCC 7+ or Clang 5+)
- CMake 3.14+
- Python 3.12+
- SFML 2.6
- Linux or Windows (macOS untested)
Project Structure
McRogueFace/
├── assets/ # Sprites, fonts, audio
├── build/ # Build output directory: zip + ship
│ ├─ (*)assets/ # (copied location of assets)
│ ├─ (*)scripts/ # (copied location of src/scripts)
│ └─ lib/ # SFML, TCOD libraries, Python + standard library / modules
├── deps/ # Python, SFML, and libtcod imports can be tossed in here to build
│ └─ platform/ # windows, linux subdirectories for OS-specific cpython config
├── docs/ # generated HTML, markdown docs
│ └─ stubs/ # .pyi files for editor integration
├── modules/ # git submodules, to build all of McRogueFace's dependencies from source
├── src/ # C++ engine source
│ └─ scripts/ # Python game scripts (copied during build)
└── tests/ # Automated test suite
└── tools/ # For the McRogueFace ecosystem: docs generation
If you are building McRogueFace to implement game logic or scene configuration in C++, you'll have to compile the project.
If you are writing a game in Python using McRogueFace, you only need to rename and zip/distribute the build directory.
Philosophy
- C++ every frame, Python every tick: All rendering data is handled in C++. Structure your UI and program animations in Python, and they are rendered without Python. All game logic can be written in Python.
- No Compiling Required; Zip And Ship: Implement your game objects with Python, zip up McRogueFace with your "game.py" to ship
- Built-in Roguelike Support: Dungeon generation, pathfinding, and field-of-view via libtcod
- Hands-Off Testing: PyAutoGUI-inspired event generation framework. All McRogueFace interactions can be performed headlessly via script: for software testing or AI integration
- Interactive Development: Python REPL integration for live game debugging. Use
mcroguefacelike a Python interpreter
Contributing
PRs will be considered! Please include explicit mention that your contribution is your own work and released under the MIT license in the pull request.
Issue Tracking
The project uses Gitea Issues for task tracking and bug reports. Issues are organized with labels:
- System labels (grid, animation, python-binding, etc.) - identify which codebase area
- Priority labels (tier1-active, tier2-foundation, tier3-future) - development timeline
- Type labels (Major Feature, Minor Feature, Bugfix, etc.) - effort and scope
See the Issue Roadmap on the wiki for organized view of all open tasks.
License
This project is licensed under the MIT License - see LICENSE file for details.