# game-libgdx-unity/gdx-engine architecture

> Architecture diagram of the GitHub repository game-libgdx-unity/gdx-engine, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-12). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/game-libgdx-unity/gdx-engine
- Repository: https://github.com/game-libgdx-unity/gdx-engine

## Overview

GDX-Engine is a LibGDX game-framework library for structuring cross-platform games. A developer subclasses the game runtime, initializes assets and settings, and uses its service to select scenes and access rendering and game services. Scene types cover 2D tiled and physics play; separate branches provide 3D rendering, UI, animation, effects, input, and pathfinding. The excerpts show runtime and manager relationships, but most feature implementations were not sampled, so their connections are omitted rather than inferred.

Main entry points: [`gdxengine/src/com/gdxengine/framework/GameService.java`](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/GameService.java) (Game service), [`gdxengine/src/com/gdxengine/framework/Game.java`](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/Game.java) (Game lifecycle), [`gdxengine/src/com/gdxengine/framework/BaseManager.java`](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/BaseManager.java) (Manager base), [`gdxengine/src/com/gdxengine/framework/object3d/DefaultObject3D.java`](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/object3d/DefaultObject3D.java) (3D objects)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Game Runtime"]
  node_game["Game lifecycle<br/>[Game.java]"]
  node_service["Game service<br/>[GameService.java]"]
  node_assets["Asset loading"]
  node_settings["Game settings"]
  node_manager["Manager base<br/>[BaseManager.java]"]
  node_scenes["Scene management<br/>[ISceneManager.java]"]
end

subgraph group_world2d["2D World"]
  node_scene["Base game scene<br/>[BaseGameScene.java]"]
  node_tiled["Tiled scenes<br/>[TiledScene.java]"]
  node_physics["2D physics"]
end

subgraph group_world3d["3D World"]
  node_camera["Camera manager<br/>[CameraManager.java]"]
  node_shaders["Shader manager<br/>[ShaderManager.java]"]
  node_lights["Light manager<br/>[LightManager.java]"]
  node_objects3d["3D objects"]
end

subgraph group_features["Game Features"]
  node_ui["UI management<br/>[UIManager.java]"]
  node_menus["Menu management<br/>[MenuManager.java]"]
  node_animation["Animation playback"]
  node_particles["Particle effects"]
  node_input["Touch input<br/>[TouchEvent.java]"]
  node_pathfinding["A-star search<br/>[Pathfinder.java]"]
end

node_developer(("Game developer"))

node_developer -->|"subclasses"| node_game
node_game -->|"loads"| node_assets
node_game -->|"loads"| node_settings
node_game -->|"creates"| node_service
node_game -->|"dispatches"| node_scenes
node_service -->|"changes"| node_scenes
node_service -.->|"exposes"| node_scene
node_service -->|"supports"| node_tiled
node_physics -->|"uses tile renderer"| node_tiled
node_manager -->|"extends"| node_camera
node_manager -->|"extends"| node_shaders
node_manager -->|"extends"| node_lights
node_service -->|"provides"| node_camera
node_service -->|"provides"| node_shaders
node_service -->|"provides"| node_lights
node_objects3d -->|"uses"| node_camera
node_objects3d -->|"uses"| node_shaders
node_objects3d -->|"uses"| node_lights
node_ui -->|"uses"| node_service
node_menus -->|"uses"| node_service

click node_game "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/Game.java"
click node_service "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/GameService.java"
click node_assets "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/DefaultGameAsset.java"
click node_settings "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/BaseGameSetting.java"
click node_manager "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/BaseManager.java"
click node_scenes "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/interfaces/ISceneManager.java"
click node_scene "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/scene/BaseGameScene.java"
click node_tiled "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/scene/TiledScene.java"
click node_physics "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/box2d/PhysicsManager.java"
click node_camera "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/camera/CameraManager.java"
click node_shaders "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/effect/ShaderManager.java"
click node_lights "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/light3d/LightManager.java"
click node_objects3d "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/object3d/DefaultObject3D.java"
click node_ui "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/ui/UIManager.java"
click node_menus "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/ui/MenuManager.java"
click node_animation "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/AnimationPlayer.java"
click node_particles "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/effect/ParticleEffectManager.java"
click node_input "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/event/TouchEvent.java"
click node_pathfinding "https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/algorithm/astar/Pathfinder.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_game,node_service,node_assets,node_settings,node_manager,node_scenes toneBlue
class node_scene,node_tiled,node_physics toneAmber
class node_camera,node_shaders,node_lights,node_objects3d toneMint
class node_ui,node_menus,node_animation,node_particles,node_input,node_pathfinding toneRose
class node_developer toneIndigo
```

## Components

### Game Runtime

- [Game lifecycle](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/Game.java): `gdxengine/src/com/gdxengine/framework/Game.java`
- [Game service](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/GameService.java): `gdxengine/src/com/gdxengine/framework/GameService.java`
- [Asset loading](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/DefaultGameAsset.java): `gdxengine/src/com/gdxengine/framework/DefaultGameAsset.java`
- [Game settings](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/BaseGameSetting.java): `gdxengine/src/com/gdxengine/framework/BaseGameSetting.java`
- [Manager base](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/BaseManager.java): `gdxengine/src/com/gdxengine/framework/BaseManager.java`
- [Scene management](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/interfaces/ISceneManager.java): `gdxengine/src/com/gdxengine/framework/interfaces/ISceneManager.java`

### 2D World

- [Base game scene](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/scene/BaseGameScene.java): `gdxengine/src/com/gdxengine/framework/scene/BaseGameScene.java`
- [Tiled scenes](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/scene/TiledScene.java): `gdxengine/src/com/gdxengine/framework/scene/TiledScene.java`
- [2D physics](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/box2d/PhysicsManager.java): `gdxengine/src/com/gdxengine/framework/box2d/PhysicsManager.java`

### 3D World

- [Camera manager](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/camera/CameraManager.java): `gdxengine/src/com/gdxengine/framework/camera/CameraManager.java`
- [Shader manager](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/effect/ShaderManager.java): `gdxengine/src/com/gdxengine/framework/effect/ShaderManager.java`
- [Light manager](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/light3d/LightManager.java): `gdxengine/src/com/gdxengine/framework/light3d/LightManager.java`
- [3D objects](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/object3d/DefaultObject3D.java): `gdxengine/src/com/gdxengine/framework/object3d/DefaultObject3D.java`

### Game Features

- [UI management](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/ui/UIManager.java): `gdxengine/src/com/gdxengine/framework/ui/UIManager.java`
- [Menu management](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/ui/MenuManager.java): `gdxengine/src/com/gdxengine/framework/ui/MenuManager.java`
- [Animation playback](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/AnimationPlayer.java): `gdxengine/src/com/gdxengine/framework/AnimationPlayer.java`
- [Particle effects](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/effect/ParticleEffectManager.java): `gdxengine/src/com/gdxengine/framework/effect/ParticleEffectManager.java`
- [Touch input](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/event/TouchEvent.java): `gdxengine/src/com/gdxengine/framework/event/TouchEvent.java`
- [A-star search](https://github.com/game-libgdx-unity/gdx-engine/blob/master/gdxengine/src/com/gdxengine/framework/algorithm/astar/Pathfinder.java): `gdxengine/src/com/gdxengine/framework/algorithm/astar/Pathfinder.java`

### Other components

- **Game developer**

## Connections

- Game developer → Game lifecycle: subclasses (evidence: `gdxengine/src/com/gdxengine/framework/Game.java`)
- Game lifecycle → Asset loading: loads (evidence: `gdxengine/src/com/gdxengine/framework/Game.java`)
- Game lifecycle → Game settings: loads (evidence: `gdxengine/src/com/gdxengine/framework/Game.java`)
- Game lifecycle → Game service: creates (evidence: `gdxengine/src/com/gdxengine/framework/Game.java`)
- Game lifecycle → Scene management: dispatches (evidence: `gdxengine/src/com/gdxengine/framework/Game.java`)
- Game service → Scene management: changes (evidence: `gdxengine/src/com/gdxengine/framework/GameService.java`)
- Game service → Base game scene: exposes
- Game service → Tiled scenes: supports (evidence: `gdxengine/src/com/gdxengine/framework/GameService.java`)
- 2D physics → Tiled scenes: uses tile renderer (evidence: `gdxengine/src/com/gdxengine/framework/box2d/PhysicsManager.java`)
- Manager base → Camera manager: extends (evidence: `gdxengine/src/com/gdxengine/framework/camera/CameraManager.java`)
- Manager base → Shader manager: extends (evidence: `gdxengine/src/com/gdxengine/framework/effect/ShaderManager.java`)
- Manager base → Light manager: extends (evidence: `gdxengine/src/com/gdxengine/framework/light3d/LightManager.java`)
- Game service → Camera manager: provides (evidence: `gdxengine/src/com/gdxengine/framework/Game3DService.java`)
- Game service → Shader manager: provides (evidence: `gdxengine/src/com/gdxengine/framework/Game3DService.java`)
- Game service → Light manager: provides (evidence: `gdxengine/src/com/gdxengine/framework/Game3DService.java`)
- 3D objects → Camera manager: uses (evidence: `gdxengine/src/com/gdxengine/framework/object3d/DefaultObject3D.java`)
- 3D objects → Shader manager: uses (evidence: `gdxengine/src/com/gdxengine/framework/object3d/DefaultObject3D.java`)
- 3D objects → Light manager: uses (evidence: `gdxengine/src/com/gdxengine/framework/object3d/DefaultObject3D.java`)
- UI management → Game service: uses (evidence: `gdxengine/src/com/gdxengine/framework/ui/UIManager.java`)
- Menu management → Game service: uses (evidence: `gdxengine/src/com/gdxengine/framework/ui/MenuManager.java`)
