|
|
1 month ago | |
|---|---|---|
| .. | ||
| audio | 3 months ago | |
| campaign_map | 1 month ago | |
| campaigns | 2 months ago | |
| data | 2 months ago | |
| maps | 1 month ago | |
| meshes | 5 months ago | |
| missions | 1 month ago | |
| shaders | 2 months ago | |
| textures | 5 months ago | |
| visuals | 2 months ago | |
| README.md | 2 months ago | |
This directory contains all game assets organized by type.
assets/
├── audio/ # Sound effects and music
├── campaigns/ # Campaign definitions
│ └── *.json # Campaign files linking missions
├── data/ # Game data and configurations
│ ├── nations/ # Nation-specific data
│ └── troops/ # Troop definitions
├── maps/ # Playable level files
│ └── *.json # Map geometry and terrain
├── meshes/ # 3D models
├── missions/ # Mission definitions
│ └── *.json # Mission objectives and setup
├── shaders/ # GLSL shaders
├── textures/ # Image files
└── visuals/ # Visual configurations
├── emblems/ # Nation emblems
└── icons/ # Unit icons
Located in maps/, these files contain:
Maps are reusable and should not contain mission-specific logic.
Located in missions/, these files define:
Missions reference exactly one map and can customize the gameplay experience.
Located in campaigns/, these files contain:
Campaigns provide narrative structure and progression.
.json){
"id": "unique_mission_id",
"title": "Display Name",
"summary": "Brief description",
"map_path": ":/assets/maps/map_name.json",
"player_setup": { ... },
"ai_setups": [ ... ],
"victory_conditions": [ ... ],
"defeat_conditions": [ ... ],
"events": [ ... ]
}
.json){
"id": "unique_campaign_id",
"title": "Campaign Name",
"description": "Campaign description",
"missions": [
{
"mission_id": "mission_file_name",
"order_index": 0,
"intro_text": "Optional mission intro",
"outro_text": "Optional mission outro"
}
]
}
.json)Standard map format with:
Validate all mission and campaign files:
# Using Makefile
make validate-content
# Using CMake
cmake --build build --target validate-content
# Direct execution
./build/bin/content_validator assets
The validator checks:
assets/missions/my_mission.jsonmake validate-contentassets/campaigns/my_campaign.jsonmake validate-contentassets/maps/my_map.jsonAssets are embedded in the application using Qt Resource System:
:/assets/:/assets/maps/map_forest.json:/assets/missions/defend_outpost.jsonWhen adding new assets, update assets.qrc to include them in the build.
See MISSION_FRAMEWORK.md for detailed documentation on:
Example mission and campaign files are provided:
missions/defend_outpost.json - Survival missionmissions/forest_ambush.json - Elimination missioncampaigns/second_punic_war.json - Multi-mission campaignUse these as templates for creating new content.