Game definition jsons - Map lists

Learn the .json format
used to define characteristics of units and other game elements
Post Reply
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Game definition jsons - Map lists

Post by Stratego (dev) »

Campaign and random maps are defined in this json: maps.json

like this, simply listing the maps, defining the random/"campaign" map groups and the "button" reference, and listing the maps into the groups

Code: Select all

{

"holderCategories":[
    {"holderCategoryID":"LC_MAIN", "holderCategoryTxtID":"campaign_menu_tutorial", "ancHolderCategoryID":""},
    {"holderCategoryID":"LC_HIGHLIGHTED", "holderCategoryTxtID":"main_menu_campaigns", "ancHolderCategoryID":"LC_MAIN"},
    {"holderCategoryID":"LC_HISTORICAL", "holderCategoryTxtID":"campaign_intro_story_hist", "ancHolderCategoryID":"LC_HIGHLIGHTED"},
    {"holderCategoryID":"LC_POST_WW2", "holderCategoryTxtID":"campaign_intro_cold_war", "ancHolderCategoryID":"LC_HIGHLIGHTED"},
    {"holderCategoryID":"LC_ALT_OUTCOMES", "holderCategoryTxtID":"campaign_intro_fictional", "ancHolderCategoryID":"LC_HIGHLIGHTED"},
    {"holderCategoryID":"LC_LORDOFALES", "holderCategoryTxtID":"campaign_intro_lord_of_ales", "ancHolderCategoryID":"LC_HIGHLIGHTED"},
    {"holderCategoryID":"LC_OTHERS", "holderCategoryTxtID":"campaign_intro_others", "ancHolderCategoryID":"LC_HIGHLIGHTED"}
], 

"groups": [

	{"c": "Fix, random maps", "buttonName": "-", "listName": "FIX_MAPS", "holderCategoryID": "LC_MAIN", "listNameTxtID": "main_menu_predef", "type": "FIX", "groupID": -100, "items": [
		{"mapFileName": "rnd_the_lake_20_20.map", "publishStatus": "HIDDEN"},
		{"mapFileName": "rnd_island_20_20.map"}, 
		{"mapFileName": "rnd_islands_20_20.map"},
		{"mapFileName": "rnd_france_20_20.map"},
		{"mapFileName": "rnd_iwo_jima_20_20.map"},		
		{"mapFileName": "rnd_map_001_20_20.map"},
		{"mapFileName": "rnd_map_002_20_20.map"}, 
		{"mapFileName": "rnd_the_bridge_20_20.map"},
		{"mapFileName": "rnd_archipelago_20_20.map"},		 
		{"mapFileName": "rnd_mountains_climb_20_20.map"},
		{"mapFileName": "rnd_summer_forest_20_20.map"},
		{"mapFileName": "rnd_crash_landing_20_20.map"},
		{"mapFileName": "rnd_glacier_20_20.map"},
		{"mapFileName": "rnd_amalienborg_palace_mp_25_25.map"},	
		{"mapFileName": "rnd_the_frozen_lands_25_25.map"},
		{"mapFileName": "rnd_east_ward_25_25.map"},
		{"mapFileName": "rnd_italy_25_25.map"},
		{"mapFileName": "rnd_egypt_30_30.map"},
		{"mapFileName": "rnd_stalingrad_30_30.map"},
		{"mapFileName": "rnd_hawaii_30_30.map"},
		{"mapFileName": "rnd_citys__30_30.map"},
		{"mapFileName": "rnd_map_003_50_50.map"},
	]},
			 
			 
	 
	{"c": "FAN maps here", "buttonName": "btCampaignUser", "holderCategoryID": "LC_HIGHLIGHTED", "listNameTxtID": "campaign_menu_user", "type": "CAMPAIGN", "items": [	

		{"mapFileName": "camp_user_operation_barbarossa_southern_assault_50_50.map", "locktype": "PAY"},
		{"mapFileName": "camp_user_operation_typhoon_25_40.map", "locktype": "PAY"},
		{"mapFileName": "camp_user_the_battle_of_stalingrad_20_30.map", "locktype": "PAY"},
		{"mapFileName": "camp_user_the_siege_of_leningrad_40_40.map", "locktype": "PAY"},
	]},

	{"c": "HISTORICAL skirmish maps", "buttonName": "btCampaignFictive", "holderCategoryID": "LC_HIGHLIGHTED", "listNameTxtID": "campaign_menu_scen_historical", "type": "CAMPAIGN", "items": [
  
		{"mapFileName": "camp_user_kursk_30_15.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_operation_cobra_1_20_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_operation_overlord_50_50.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_under_fire_15_15.map", "locktype": "LOCK_PAY"},
	]},


	{"c": "Tutorial maps", "buttonName": "btCampaignTutorial", "holderCategoryID": "LC_MAIN", "listNameTxtID": "campaign_menu_tutorial", "type": "TUTO", "items": [

		{"mapFileName": "camp_user_tutorial_-_production_10_10.map", "locktype": "NONE"},
		{"mapFileName": "camp_user_tutorial__mines_20_20.map", "locktype": "NONE"},
		{"mapFileName": "camp_user_tutorial__submarines_20_10.map", "locktype": "NONE"},
	]},

	{"c": "Multiplayer missions (Hotseat)", "buttonName": "btCampaignMultiplayerMissions", "holderCategoryID": "LC_HIGHLIGHTED", "listNameTxtID": "campaign_menu_multiplayer_missions", "type": "CAMPAIGN", "items": [
	    {"mapFileName": "camp_user_hotseat_battle_of_midway_35_35.map", "locktype": "NONE"},
    {"mapFileName": "camp_user_hotseat_battle_of_imphal_40_35.map", "locktype": "NONE"},
    {"mapFileName": "camp_user_hotseat_first_battle_of_el_alamein_35_35.map", "locktype": "NONE"},
    {"mapFileName": "camp_user_hotseat_battle_of_britain_35_40.map", "locktype": "NONE"},
    {"mapFileName": "camp_user_hotseat_battle_of_stalingrad_40_40.map", "locktype": "NONE"},

	]},

	{"c": "MAP_LIST_STORY_RED_ALERT by HokanPl", "buttonName": "btCampaignRedAlert", "holderCategoryID": "LC_POST_WW2", "listNameTxtID": "campaign_menu_story_redalert", "type": "CAMPAIGN", "items": [
		{"mapFileName": "camp_user_mission_1_20_25.map", "locktype": "LOCK_PAY"}, 
		{"mapFileName": "camp_user_mission_2_25_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_mission_3_25_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_mission_4_30_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_mission_5_25_25.map", "locktype": "LOCK_PAY"},		
		{"mapFileName": "camp_user_mission_1__act_two_20_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_mission_2__act_two_20_20.map", "locktype": "LOCK_PAY"},
		
	]},

	{"c": "MAP_LIST_HISTORICAL_DANISH Northern Campaign by deadshot09", "buttonName": "btCampaignHistoricalDanish", "holderCategoryID": "LC_HISTORICAL", "listNameTxtID": "campaign_menu_story_hist_danish", "type": "CAMPAIGN", "items": [
		{"mapFileName": "camp_user_storstom_bridge_battle_35_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_masdeno_fort_capture_30_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_vaerlose_airfield_25_25.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_amalienborg_palace_30_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_destination_norway_25_25.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_oslofjord_fortress_30_20.map", "locktype": "LOCK_PAY"},
		
	]},

	{"c": "MAP_LIST_STORY_COLD_WARS by deadshot09", "buttonName": "btCampaignColdWar", "holderCategoryID": "LC_POST_WW2", "listNameTxtID": "campaign_menu_story_cold_war", "type": "CAMPAIGN", "items": [

		{"mapFileName": "camp_user_operation_starlite_30_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_opration_rolling_thunder_30_30.map", "locktype": "LOCK_PAY"},
	]},

	
	
	
	

	{"c": "MAP_LIST_STORY_ARBITER by Aleksandar Glumac alias LordOfAles", "listName": "MAP_LIST_STORY_ARBITER", "holderCategoryID": "LC_LORDOFALES", "listNameTxtID": "campaign_menu_story_arbiter", "buttonName": "btCampaignArbiter", "type": "CAMPAIGN", "items": [
		{"mapFileName": "camp_user_passing_thru_enemy_defenses_10_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_forest_ambush_15_15.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_base_outskirts_20_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_the_grand_opening_30_30.map", "locktype": "LOCK_PAY"}, 
	]},
	
	
	{"c": "MAP_LIST_STORY_LIT_MADNESS by Aleksandar Glumac alias LordOfAles",  "requiredListName": "MAP_LIST_STORY_ARBITER", "buttonName": "btCampaignLitMadness", "holderCategoryID": "LC_LORDOFALES", "listNameTxtID": "campaign_menu_story_lit_madness", "type": "CAMPAIGN", "items": [
	
		{"mapFileName": "camp_user_armageddon_25_25.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_the_tour_20_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_tunnels_30_30.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_destroying_maya_15_15.map", "locktype": "LOCK_PAY"},

	]},
	
	{"c": "MAP_LIST_STORY_GARRISON by Aleksandar Glumac alias LordOfAles",  "buttonName": "btCampaignGarrison", "holderCategoryID": "LC_LORDOFALES", "listNameTxtID": "campaign_menu_story_garrison", "type": "CAMPAIGN", "items": [
	
		{"mapFileName": "camp_user_home_garrison_15_15.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_unfriendly_visit_15_15.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_counter_15_15.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_the_diversion_10_10.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_the_clearup_20_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_destroying_the_plague_15_15.map", "locktype": "LOCK_PAY"},		

	]},
	
	
	
	
	{"c": "MAP_LIST_STORY_WAR_PATRIOTISM by Lukas Dear lukasdear23 at gmail.com", "buttonName": "btCampaignWarPatriotism", "holderCategoryID": "LC_OTHERS", "listNameTxtID": "campaign_menu_story_war_patriotism", "type": "CAMPAIGN", "items": [


		{"mapFileName": "camp_user_miami_1_15_15.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_japan_1_20_20.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_pacific_ocean_20_25.map", "locktype": "LOCK_PAY"},
		{"mapFileName": "camp_user_japan_2_15_15.map", "locktype": "LOCK_PAY"},


	]}
	



]
}

Holder categories
(Used in Unity version) This section defines the categrories the campaigns are ordered into (eg. easy campaigns, or Post WW2 campaigns and so on)
"holderCategoryID": the category id (textual id, can be anything)
"holderCategoryTxtID" the appearing text ID for the holder-category (textual id, must be deifnied in string.xml)
"ancHolderCategoryID": referencing an ancestor category (if multilevel structure)

Avaliable lock types:
PAY- gives gems if you win
LOCK_PAY - means the map needs to be locked (so only if you finish prior map wil be able to be opened), also gives gems.
NONE - no locked, and not gives gems.

Publish status: you can inactivate maps using the HIDDEN status, this means running games will be handled but no new game can be created with this map (so considered as DEPRECATED).
Current publish statuses (if you do not specify it then it is considered FULL - like u see in most samples except "the_lake" map)
FULL, // can start new game and existing games will use it
HIDDEN // existing games will use it, but you can not create new map with it - so considered as DEPRECATED
Locked campaigns
You can set a camapign locked until an other campaign is finished, see as a sample above: "MAP_LIST_STORY_LIT_MADNESS" will require "MAP_LIST_STORY_ARBITER" by the "requiredListName" and "listName" settings

Other attributes:
holderCategoryID: the category id referencing the id in holderCategories structure
listNameTxtID: campaign name, so the appearing text ID for the campaign (textual id, must be deifnied in string.xml)
Midonik
Posts: 5325
Joined: Mon Sep 05, 2016 5:27 pm
Location: Poland

Re: Game definition jsons - Map lists

Post by Midonik »

What "locktype" means? Is it mean that you need to pass latest map or what?
Support new AoS variant, Age of Galaxy: http://ageofstrategy.net/viewforum.php? ... 608408ebc8
All help will be welcome.
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Map lists

Post by Stratego (dev) »

good questions, updated the first post with the answer
Midonik
Posts: 5325
Joined: Mon Sep 05, 2016 5:27 pm
Location: Poland

Re: Game definition jsons - Map lists

Post by Midonik »

Thanks.
Support new AoS variant, Age of Galaxy: http://ageofstrategy.net/viewforum.php? ... 608408ebc8
All help will be welcome.
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Map lists

Post by Stratego (dev) »

publish status introduced
User avatar
Sunrise Samurai
Posts: 2678
Joined: Thu Jun 18, 2015 11:21 pm
Location: Florida, U.S.

Re: Game definition jsons - Map lists

Post by Sunrise Samurai »

And that explains why some maps are greyed out and can't be played.
The glorious sun rises again
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Map lists

Post by Stratego (dev) »

no. that is different.
User avatar
Puss_in_Boots
Posts: 3206
Joined: Fri Apr 21, 2017 1:23 am
Location: New Jersey

Re: Game definition jsons - Map lists

Post by Puss_in_Boots »

This will definitely be very important to know for AoUFO.

If some random player makes a map design, should players know Midonik's email since he is the moderator of it?
OLÉ
User avatar
Sunrise Samurai
Posts: 2678
Joined: Thu Jun 18, 2015 11:21 pm
Location: Florida, U.S.

Re: Game definition jsons - Map lists

Post by Sunrise Samurai »

Lol moderator? He practically became the first design leader by default, and has been doing a pretty good job of it too.
The glorious sun rises again
User avatar
Puss_in_Boots
Posts: 3206
Joined: Fri Apr 21, 2017 1:23 am
Location: New Jersey

Re: Game definition jsons - Map lists

Post by Puss_in_Boots »

...He is the moderator of the topic for AoUFO.

But anyways he's not really taken care of his json file studies. I hope he can manage completeing most of it by Christmas Holidays.
OLÉ
Midonik
Posts: 5325
Joined: Mon Sep 05, 2016 5:27 pm
Location: Poland

Re: Game definition jsons - Map lists

Post by Midonik »

Well,its hard. I have mot engoun patience. Anyway,I will try again in xmas probably.
Support new AoS variant, Age of Galaxy: http://ageofstrategy.net/viewforum.php? ... 608408ebc8
All help will be welcome.
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Map lists

Post by Stratego (dev) »

Locked campaigns
You can set a camapign locked until an other campaign is finished, see as a sample above: "MAP_LIST_STORY_LIT_MADNESS" will require "MAP_LIST_STORY_ARBITER" by the "requiredListName" and "listName" settings
Stratego (dev)
Site Admin
Posts: 15734
Joined: Fri Apr 25, 2014 9:28 pm

Re: Game definition jsons - Map lists

Post by Stratego (dev) »

New structure in file:
holder Categories (read in forts post)
also new attributes:
- holderCategoryID: the category id referencing the id in holderCategories structure
- listNameTxtID: campaign name, so the appearing text ID for the campaign (textual id, must be deifnied in string.xml)

i made these change in AOS/AOF/AOW/AOG

please in all other alternatives make these changes, these will be mandatory for the campaigns to appear.
Post Reply

Return to “Game Definition .JSON”