John McCardle
6de3f0e8cf
Massive new set of behaviors: * Move, resize*, zoom, and pan mcrfpy.Grid instances from Python. Note: there's a rendering error with resizing, which will have to wait for after 7DRL. * Add, remove, and create mcrfpy.Entity instances from Python. The fields can be edited to change position and sprite. They can be removed from a grid and/or added to another. the Entity class is closely related to the EntityCollection class, the Python interface to UIGrid's std::vector of UIEntities. * mcrfpy.GridPoint and mcrfyp.GridPointState objects. The GridPoint class allows access to the "physical" parts of a grid. The GridPointState class allows access to an entity's knowledge of it. Grids and Entities have an "at" method that takes a tuple (x,y) and returns one of these objects. __repr__ and many other nice things are notably absent - many TODOs were added to the codebase today. They can get picked up after 7DRL. |
||
---|---|---|
assets | ||
deps/platform | ||
modules | ||
scripts | ||
src | ||
.gitignore | ||
.gitmodules | ||
CMakeLists.txt | ||
LICENSE.md | ||
README.md |
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