Skip to content

Latest commit

 

History

History
86 lines (74 loc) · 2.54 KB

README.md

File metadata and controls

86 lines (74 loc) · 2.54 KB

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