# playopenz/openz architecture

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

- Interactive diagram: https://gitdiagram.com/playopenz/openz
- Repository: https://github.com/playopenz/openz

## Overview

OpenZ is a Unity-based, full-3D remake of the real-time strategy game Z. The main player journey is choosing a general and battlefield, issuing commands to armies, fighting for territory, and reaching a battle outcome; documented extensions include difficulty modes, scores, and a standalone unit editor. The tree excerpt exposes many Unity Editor scripts but no runtime source excerpts, so subsystem paths use existing enclosing directories and edges are limited to relationships stated in the README.

Main entry points: [`source/Assets/OpenZ/Scripts`](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts) (Game Menus), [`source/Assets/OpenZ/Scripts/Editor`](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts/Editor) (Unit Editor)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_play["Player Experience"]
  node_menus["Game Menus"]
  node_general["General Selection"]
  node_difficulty["Difficulty Modes"]
  node_campaign["Campaign Levels"]
  node_scores[("High Scores")]
end

subgraph group_battle["Strategy Battle"]
  node_battlefield["Battlefield"]
  node_army["Robot Armies"]
  node_orders["Player Orders"]
  node_enemy["Computer Opponent"]
  node_territory["Territory Control"]
  node_battleoutcome["Battle Outcome"]
end

subgraph group_world["Game Content"]
  node_units["Units and Vehicles"]
  node_levels["Level Environments"]
  node_scenes["Story Scenes"]
end

subgraph group_tools["Editor Tools"]
  node_uniteditor["Unit Editor"]
  node_editorcontent["Editor Setup Tools"]
end

node_player(("Player"))

node_player -->|"starts game"| node_menus
node_menus -->|"offers selection"| node_general
node_menus -->|"sets difficulty"| node_difficulty
node_menus -->|"opens levels"| node_campaign
node_general -->|"fields army"| node_army
node_campaign -->|"loads battlefield"| node_battlefield
node_player -->|"commands units"| node_orders
node_orders -->|"directs units"| node_army
node_enemy -->|"deploys forces"| node_army
node_army -->|"contests control"| node_territory
node_territory -.->|"determines outcome"| node_battleoutcome
node_battleoutcome -->|"records scores"| node_scores
node_campaign -->|"includes scenes"| node_scenes
node_battlefield -->|"presents environments"| node_levels
node_player -->|"edits units"| node_uniteditor
node_uniteditor -->|"tunes unit stats"| node_units
node_editorcontent -.->|"configures content"| node_levels

click node_menus "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_general "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_difficulty "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_campaign "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_battlefield "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_army "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_orders "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_enemy "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_territory "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_battleoutcome "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_scores "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_units "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_levels "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_scenes "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts"
click node_uniteditor "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts/Editor"
click node_editorcontent "https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts/Editor"

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_menus,node_general,node_difficulty,node_campaign,node_scores toneBlue
class node_battlefield,node_army,node_orders,node_enemy,node_territory,node_battleoutcome toneAmber
class node_units,node_levels,node_scenes toneMint
class node_uniteditor,node_editorcontent toneRose
class node_player toneIndigo
```

## Components

### Player Experience

- [Game Menus](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`
- [General Selection](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`
- [Difficulty Modes](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`
- [Campaign Levels](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`
- [High Scores](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`

### Strategy Battle

- [Battlefield](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`
- [Robot Armies](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`
- [Player Orders](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`
- [Computer Opponent](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`
- [Territory Control](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`
- [Battle Outcome](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`

### Game Content

- [Units and Vehicles](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`
- [Level Environments](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`
- [Story Scenes](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts): `source/Assets/OpenZ/Scripts`

### Editor Tools

- [Unit Editor](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts/Editor): `source/Assets/OpenZ/Scripts/Editor`
- [Editor Setup Tools](https://github.com/playopenz/openz/tree/main/source/Assets/OpenZ/Scripts/Editor): `source/Assets/OpenZ/Scripts/Editor`

### Other components

- **Player**

## Connections

- Player → Game Menus: starts game (evidence: `README.md`)
- Game Menus → General Selection: offers selection (evidence: `README.md`)
- Game Menus → Difficulty Modes: sets difficulty (evidence: `README.md`)
- Game Menus → Campaign Levels: opens levels (evidence: `README.md`)
- General Selection → Robot Armies: fields army (evidence: `README.md`)
- Campaign Levels → Battlefield: loads battlefield (evidence: `README.md`)
- Player → Player Orders: commands units (evidence: `README.md`)
- Player Orders → Robot Armies: directs units (evidence: `README.md`)
- Computer Opponent → Robot Armies: deploys forces (evidence: `README.md`)
- Robot Armies → Territory Control: contests control (evidence: `README.md`)
- Territory Control → Battle Outcome: determines outcome
- Battle Outcome → High Scores: records scores (evidence: `README.md`)
- Campaign Levels → Story Scenes: includes scenes (evidence: `README.md`)
- Battlefield → Level Environments: presents environments (evidence: `README.md`)
- Player → Unit Editor: edits units (evidence: `README.md`)
- Unit Editor → Units and Vehicles: tunes unit stats (evidence: `README.md`)
- Editor Setup Tools → Level Environments: configures content
