jtanderson / TextAdventure

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TextAdventure

A text-based RPG meant to experiment with code abstraction and procedural content generation

High level design notes:

  • Use pushdown-automata model for game loop
  • user input handled by current game state
    • state takes ownership of player and state stack

Class hierarchy:

  • GameState (gamestate.h) - abstract
    • CombatState (combatstate.h, combatstate.cpp)
    • TravelState (travelstate.h, travelstate.cpp)
    • IdleState (idlestate.h, idlestate.cpp)
  • Entity (entity.h)
    • LivingEntity (livingentity.h, livingentity.cpp)
      • Player (player.h, player.cpp)
      • Npc (npc.h, npc.cpp)
  • WorldLocation (worldlocation.h)
    • RoadLocation (roadlocation.h)
    • WildernessLocation (wildernesslocation.h)

TODO

  • use ncurses library for user interface
  • More detailed map locations (road, landmarks, etc.)
  • richer text/storytelling components
    • break combat messages up into individual particpants' turns
  • better world generation
  • data structure to store/access world
  • better, more detailed, npc system
  • saving/loading
  • friendly npc's
  • towns/villages/etc.
  • items
  • player inventory
  • combat looting
  • quests?
  • dungeons/buildings
  • special items/abilities
  • player death, game ending
  • logging system

About


Languages

Language:C++ 97.8%Language:Makefile 2.2%