Files
Terrarum/src/net/torvald/terrarum/GAME_SYSTEM.md
Song Minjae 2e46df67a8 Separated langpack, concept art for inventory UI
Former-commit-id: 7a98df93b4ef50b47283abcd99576d6fbefc9cc5
Former-commit-id: db6e34417ccf84e59ba68547f30459cb4b188eb7
2016-07-04 23:08:16 +09:00

1.3 KiB

The game has elements that are:

  • Actors
    • Controller
      • AI
      • JInput (Provided by LWJGL)
    • Factioning
    • Scheduler
    • Physics solver (simple, AABB-oriented)
    • TODO: sprite assembler (character--avatar--maker)
  • Imagefont
    • Font drawer
      • Hangul character assembler (aka JOHAB)
  • Sprite animator (really simple one)
  • De/serialiser
  • Concurrency helper (really simple one)
  • Tiles
    • Tile property database
  • Items
    • Item property database
      • TODO: Material system
  • Map drawer
    • Map camera
    • Map drawer
    • Lightmap renderer
  • Map generator
    • Utilises Joise Modular Noise Generator
    • Additional noise filters
  • Real estate
    • The registry (a book that records the current owner of tiles on the map. Owner can be a single NPC or faction)
    • Utility
  • Internationalisation
    • Language pack

The elements are connected like:

  • Actors
    • Controller ← AI, Player Input
    • AI ← Factioning, Scheduler
    • class "Actor"
      • class "ActorWithBody" with properties like (AIControlled, Factionable, Luminous, Visible, etc.)
        • class "NPCIntelligentBase"
          • (NPCs that has AI and can be interacted)
        • (fixtures, player)
      • (any of the invisible actors)