Skip to content

WIP: Simple dungeon crawler in terminal using RayTracing engine

Notifications You must be signed in to change notification settings

pkubiak/sh-dungeon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sh-dungeon

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

How to Run?

git clone https://github.com/pkubiak/sh-dungeon.git
cd sh-dungeon
pypy3 dungeon.py

Features

  • FullColor 24bit display in terminal
  • No external package dependencies
  • Low res (63x63) pixelated graphics
asciicast

Implementation status

  • 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)
  • 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

About

WIP: Simple dungeon crawler in terminal using RayTracing engine

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages