Simple dungeon crawler in terminal using RayTracing engine. Project use python reimplementation of my previous raytracer.
Pypy3 is recommended python runtime.
Check Gameplay demo on YouTube
git clone https://github.com/pkubiak/sh-dungeon.git
cd sh-dungeon
pypy3 dungeon.py
- FullColor 24bit display in terminal
- No external package dependencies
- Low res (63x63) pixelated graphics
-
Keyboard handling in terminal (keyboard.py)
-
Full color image display in terminal (using ANSI escape sequences: screen.py)
-
PNM/PAM image loading (image.py)
-
Many activities system (via State Pattern): activity.py
- Main Menu
- Game
- Inventory
- ...
-
GUI
- Inputs
- Radio/Check button
- Select box
- Scrollarea
-
RayTracer system
- Cameras
- Ortographic
- Perspectivic
- Scene
- Simple solids collection
- BHV structure for fast scene intersecting
- Solids
- Triangles
- Quads
- Sprites (Quad always parallel to camera)
- Textures
- ConstantTexture (RGB color)
- ImageTexture
- Materials
- Dummy Material
- Flat Material
- Phong Material
- ...
- Lights
- Point Light
- Directional Light
- Integrators
- RayCasting
- RayTracing
- ... (PathTracer, RecRayTracer)
- Speedups (to provide realtime rendering)
- Cameras
-
Dungeon Crawler mechanics
-
Simple maze demo
-
Simple turn based animations
-
Level stored in files
-
Sprites rendering (npc, enemies, torches, ...)
-
Interaction with environment (opening doors, using staircase)
-
User handled items (sword, magic staff, ...)
-
NPC / enemies
- movements
- dialogs
-
Fight system
-
Collisions
-