John McCardle
d6446e18ea
I want to move keyboard input defs to the Python API. I laid the groundwork for it today. From the JANKFILE: - working on API endpoint `_registerInputAction`. it will add "_py" as a suffix to the action string and register it along with other scene actions. - Adding public Scene methods. These are on the base class with default of return `false`. `bool Scene::registerActionInjected(int code, std::string name)` and `unregisterActionInjected` the PythonScene (and other scenes that support injected user input) can override this method, check existing registrations, and return `true` when succeeding. Also, upgraded to C++20 (g++ `c++2a`), mostly because I want to use map::contains. |
||
---|---|---|
assets | ||
deps_linux | ||
deps_windows | ||
platform | ||
src | ||
.gitignore | ||
JANKFILE.md | ||
LICENSE.md | ||
README.md | ||
build_linux.sh | ||
run_linux.sh |
README.md
McRogueFace - 2D Game Engine
An experimental prototype game engine built for my own use in 7DRL 2023.
Blame my wife for the name
Tenets:
- C++ first, Python close behind.
- Entity-Component system based on David Churchill's Memorial University COMP4300 course lectures available on Youtube.
- Graphics, particles and shaders provided by SFML.
- Pathfinding, noise generation, and other Roguelike goodness provided by TCOD.
Why?
I did the r/RoguelikeDev TCOD tutorial in Python. I loved it, but I did not want to be limited to ASCII. I want to be able to draw pixels on top of my tiles (like lines or circles) and eventually incorporate even more polish.
To-do
- ✅ Initial Commit
- ✅ Integrate scene, action, entity, component system from COMP4300 engine
- ✅ Windows / Visual Studio project
- ✅ Draw Sprites
- ✅ Play Sounds
- ✅ Draw UI, spawn entity from Python code
- ❌ Python AI for entities (NPCs on set paths, enemies towards player)
- ✅ Walking / Collision
- ❌ "Boards" (stairs / doors / walk off edge of screen)
- ❌ Cutscenes - interrupt normal controls, text scroll, character portraits
- ❌ Mouse integration - tooltips, zoom, click to select targets, cursors