Files
Terrarum/GAME_SYSTEM.md
Song Minjae e3f0970a03 Copyright update 2017
Former-commit-id: 8c662c7cb637ae4565e95e661b0e627d9bfd7e5a
Former-commit-id: 4a5279b47f7c8f4fadb62ee6843b3848f803f433
2017-01-01 00:04:43 +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)