Skip to content

DhruvaSambrani/tetra-turing-hunt-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tetra: The Turing Hunt Engine

This is an Engine for the Turing Hunt.

The aim is to simplify the making of an interactive virtual hunt by splitting the data from the code.

Objectives

Primary

  • Start a terminal screen using PSGui

  • Handle Surfaces

    • Read surfaces.json and load all Surfaces
  • Make a map displaying logic

    • Read map from file and display it on terminal screen
    • Read map metadata
    • Capture and react to the user movement input
    • Make sure map can be traversed only on walkable Surfaces
    • Make map to map transitions
  • Implement Pocket

    • Actual storage
    • Display Pocket
  • Implement Logging and LoggerView

  • Make item interaction logic

    • Read items from file and place in map
    • Interact with items on map
    • Display item interaction screen
    • Make interaction mechanics
    • Allow arbitrary code execution
    • document
    • Arbitrary output types
    • Arbitrary input types

Secondary

  • Make game builders

    • Make bitmap -> map
    • Make item builder
  • Implement Save game

Developing a Game

  1. Create a directory
  2. Create a venv in the directory and activate it
  3. Install PySimpleGUI, numpy, pillow
  4. Clone this repository to a sibling directory
  5. run pip install -e turing-hunt-engine
  6. Make yourgame/main.py and yourgame/assets/* as per documentation. You can also refer to the example_* files in this repo
  7. Run as python3 main.py

For engine developers

You can use the example_main.py file and example_assets to test the engine. Note that assets is symlinked to example_assets

Trouble-shooting map rendering issues

  1. Make sure that you have installed FiraCode Nerd Font provided in /assets.
  2. Run the font_gallery.py script provided in /helpers and verify that FiraCode is listed.
  3. If the issue still persists, one of more of the unicode characters used in the map are not supported by FiraCode and have to be changed.