directories needed: * build - for cmake output * deps - stuff needed to compile McRogueface (headers) libtcod -> ../modules/libtcod/src/libtcod sfml -> ../modules/SFML/include/SFML python -> ../modules/cpython/Include * lib - stuff needed to link McRogueFace (shared objects); also required at runtime libtcod -> `../modules/libtcod/buildsys/autotools/.libs/libtcod.so.1.0.24` sfml -> `../modules/SFML/build/lib/*` python -> `../modules/cpython/libpython3.12.so`; standard lib at ../modules/cpython/build/lib.linux-x86_64-3.12 & ../modules/cpython/Lib You can get dependencies by: - Build from source (i.e. all submodules) - Go download them from each project's website - install packages from your distro and symlink them to deps/lib directories
30 lines
1.2 KiB
Markdown
30 lines
1.2 KiB
Markdown
# 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
|