85 lines
2.3 KiB
Markdown
85 lines
2.3 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
# 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
|
|
|
|
```python
|
|
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](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](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](https://www.sfml-dev.org/), [libtcod](https://github.com/libtcod/libtcod), and Python
|
|
- Inspired by David Churchill's COMP4300 game engine lectures |