pkubiak / sh-dungeon

WIP: Simple dungeon crawler in terminal using RayTracing engine

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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


Languages

Language:Python 100.0%