mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 12:21:52 +09:00
48
work_files/GameDesign/BACKEND_DESIGN.md
Normal file
48
work_files/GameDesign/BACKEND_DESIGN.md
Normal file
@@ -0,0 +1,48 @@
|
||||
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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user