Go to file
John McCardle dd3c64784d Mark Issue #47 (Alpha README) as completed in ROADMAP
Documentation has been comprehensively updated for the Alpha release.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-04 06:59:29 -04:00
.archive Compress ROADMAP.md and archive completed test files 2025-07-03 23:05:30 -04:00
assets Whoops, never commited the UI icons spritesheet 2025-03-08 20:33:55 -05:00
deps/platform Windows build 2024-02-25 15:38:38 -05:00
modules Refactor: Python 3.12, build libtcod & SFML from source. Cmake build. Directory cleanup 2024-02-24 22:48:39 -05:00
src Remove deprecated registerPyAction/registerInputAction system (closes #2, closes #3) 2025-07-03 21:43:22 -04:00
tests Update comprehensive documentation for Alpha release (Issue #47) 2025-07-04 06:59:02 -04:00
.gitignore Prep: Cleanup for interpreter mode 2025-07-03 09:42:46 -04:00
.gitmodules Refactor: Python 3.12, build libtcod & SFML from source. Cmake build. Directory cleanup 2024-02-24 22:48:39 -05:00
CLAUDE.md Fix --exec interactive prompt bug and create comprehensive test suite 2025-07-03 19:25:49 -04:00
CMakeLists.txt Iterators, other Python C API improvements 2025-05-31 09:11:51 -04:00
GNUmakefile Python command emulation 2025-07-03 10:46:21 -04:00
LICENSE.md Refactor: Python 3.12, build libtcod & SFML from source. Cmake build. Directory cleanup 2024-02-24 22:48:39 -05:00
README.md Update comprehensive documentation for Alpha release (Issue #47) 2025-07-04 06:59:02 -04:00
ROADMAP.md Mark Issue #47 (Alpha README) as completed in ROADMAP 2025-07-04 06:59:29 -04:00
automation_example.py Implement --exec flag and PyAutoGUI-compatible automation API 2025-07-03 14:27:01 -04:00
automation_exec_examples.py Implement --exec flag and PyAutoGUI-compatible automation API 2025-07-03 14:27:01 -04:00
build.sh Python command emulation 2025-07-03 10:46:21 -04:00
clean.sh Python command emulation 2025-07-03 10:46:21 -04:00
compile_commands.json Prep: Cleanup for interpreter mode 2025-07-03 09:42:46 -04:00
css_colors.txt Squashed commit of the following: [standardize_color_handling] 2024-03-30 21:20:40 -04:00
debug_immediate.png Fix Issue #74: Add missing Grid.grid_y property 2025-07-03 19:48:33 -04:00
debug_multi_0.png Fix Issue #74: Add missing Grid.grid_y property 2025-07-03 19:48:33 -04:00
debug_multi_1.png Fix Issue #74: Add missing Grid.grid_y property 2025-07-03 19:48:33 -04:00
debug_multi_2.png Fix Issue #74: Add missing Grid.grid_y property 2025-07-03 19:48:33 -04:00
example_automation.py Implement --exec flag and PyAutoGUI-compatible automation API 2025-07-03 14:27:01 -04:00
example_config.py Implement --exec flag and PyAutoGUI-compatible automation API 2025-07-03 14:27:01 -04:00
example_monitoring.py Implement --exec flag and PyAutoGUI-compatible automation API 2025-07-03 14:27:01 -04:00
exec_flag_implementation.cpp Implement --exec flag and PyAutoGUI-compatible automation API 2025-07-03 14:27:01 -04:00
generate_color_table.py Squashed commit of the following: [standardize_color_handling] 2024-03-30 21:20:40 -04:00
gitea_issues.py Prep: Cleanup for interpreter mode 2025-07-03 09:42:46 -04:00
grid_none_texture_test_197.png Fix Issue #74: Add missing Grid.grid_y property 2025-07-03 19:48:33 -04:00
issue78_fixed_1658.png Fix Issue #74: Add missing Grid.grid_y property 2025-07-03 19:48:33 -04:00
screenshot_opaque_fix_20250703_174829.png Fix Issue #74: Add missing Grid.grid_y property 2025-07-03 19:48:33 -04:00
timer_success_1086.png Fix Issue #74: Add missing Grid.grid_y property 2025-07-03 19:48:33 -04:00
validate_screenshot_basic_20250703_174532.png Fix Issue #74: Add missing Grid.grid_y property 2025-07-03 19:48:33 -04:00
validate_screenshot_final_20250703_174532.png Fix Issue #74: Add missing Grid.grid_y property 2025-07-03 19:48:33 -04:00
validate_screenshot_with_spaces 20250703_174532.png Fix Issue #74: Add missing Grid.grid_y property 2025-07-03 19:48:33 -04:00
wikicrayons_colors.txt Squashed commit of the following: [standardize_color_handling] 2024-03-30 21:20:40 -04:00
xkcd_colors.txt Squashed commit of the following: [standardize_color_handling] 2024-03-30 21:20:40 -04:00

README.md

McRogueFace

A Python-powered 2D game engine for creating roguelike games, built with C++ and SFML.

Latest Release: Successfully completed 7DRL 2025 with "Crypt of Sokoban" - a unique roguelike that blends Sokoban puzzle mechanics with dungeon crawling!

Features

  • Python-First Design: Write your game logic in Python while leveraging C++ performance
  • Rich UI System: Sprites, Grids, Frames, and Captions with full animation support
  • Entity-Component Architecture: Flexible game object system with Python integration
  • Built-in Roguelike Support: Dungeon generation, pathfinding, and field-of-view via libtcod
  • Automation API: PyAutoGUI-compatible testing and demo recording
  • Interactive Development: Python REPL integration for live game debugging

Quick Start

# Clone and build
git clone https://github.com/jmcb/McRogueFace.git
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.font = mcrfpy.default_font
caption.font_color = (255, 255, 255)

# Add to scene
mcrfpy.sceneUI("intro").append(caption)

# Switch to the scene
mcrfpy.setScene("intro")

Documentation

For comprehensive documentation, tutorials, and API reference, visit: https://mcrogueface.github.io

Requirements

  • C++17 compiler (GCC 7+ or Clang 5+)
  • CMake 3.14+
  • Python 3.12+
  • SFML 2.5+
  • Linux or Windows (macOS untested)

Project Structure

McRogueFace/
├── src/           # C++ engine source
├── scripts/       # Python game scripts
├── assets/        # Sprites, fonts, audio
├── build/         # Build output directory
└── tests/         # Automated test suite

Contributing

McRogueFace is under active development. Check the ROADMAP.md for current priorities and open issues.

License

This project is licensed under the MIT License - see LICENSE file for details.

Acknowledgments

  • Developed for 7-Day Roguelike Challenge 2025
  • Built with SFML, libtcod, and Python
  • Inspired by David Churchill's COMP4300 game engine lectures