Proposals/Map Definitions Options

From UFO:AI
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Improvements to the maps definition to allow for improvements to the UI in the future. Main changes:

  • Have a top-level theme definition that takes an unlimited number of children map definitions. Then the player would be able to click on a theme and after that select a particular map in that theme if there are several available for the game type they have chosen.
  • Add settings for specifying map usage for campaign, skirmish and multiplayer, with gametype options for skirmish and multiplayer. (See discussion page for possible revision to this aspect)
  • New parameter for map title, and layout (fixed or random)
  • Support for comma-separated list of assemblies supplied to param


Example maps.ufo definition:

# /*
 * Theme definition on a per-RMA basis
 * This would be the first thing the user selects
 */
themedef forest
{
	title			"_Forest"
	description		"_A sparsely populated forest region"
	
	
	/*
	 * Map definition for large, single-player map using forest theme
	 */
	mapdef forest_large
	{
		map		"+forest"
		size		"large"
		maxaliens	15
		
		/*
		 * A proper title to help players select the appropriate mapdef.
		 */
 		title		"_Large (Random)"
 		
		/*
		 * Optional screenshot prefix so that different
		 * mapdefs could use different screenshots.
		 * This example would look for screenshots named:
		 * forest_large, forest_large_1, etc.
		 * If no screenshots are found, it should fall
		 * back to the themedef. Same will be true for 
		 * loading shot.
		 */
		mapshots	"forest_large"
		
		/*
		 * Whether or not the assembly will result in
		 * random map configurations or a fixed map.
		 * Fixed should be used even in cases where the
		 * user can change the UFO or Dropship, as long
		 * as the rest of the map doesn't change.
		 * Options: fixed,random
		 */
		layout		random
		
		/* 
		 * Comma-separated list of assemblies supported.
		 * Useful for fixed assembly maps like alien base 
		 * or in cases where we create a multiplayer-specific
		 * assembly that we don't want to be used.
		 */
		param		"large,large2"
		
		/* 
		 * Which game types it supports. The game will then
		 * look in the definition for (gametype)_modes. (See
		 * below). Campaign could be read as a special entry.
		 */
		gametypes	"campaign,skirmish"

		/*
		 * Skirmish game types supported.
		 * For now there is only deathmatch but in the future
		 * there could be things like capturing a zone, blowing
		 * something up, survival, defend, etc. The alienrush option
		 * should probably be an option on several game modes
		 * rather than a separate game type.
		 * Could be replicated for any custom gametype.
		 */
		skirmish_modes
		{
			deathmatch
		}
		
		/* 
		 * None of the following details need to be changed
		 */
		aircraft { }
		ufos { }
		terrains { }
		cultures { }
		populations { }
	}
	
	/*
	 * Map definition for MP-map using forest theme
	 */
	mapdef forest_mp
	{
		map		"+forest"
		size		"large"
		maxaliens	15
		mapshots	"forest_mp"
		layout		fixed
		param		"mp"
		gametypes	"multiplayer"
		
		/*
		 * If there are multiple mp maps, a 
		 * unique name will help players remember
		 * preferred assemblies.
		 */
 		title		"_The Black Forest"
		
		/*
		 * Multiplayer game types supported.
		 * The asterisk (*) or some other character could be used
		 * to indicate that this map is ideal for this gametype.
		 * Eventually it could be useful to be able to view recommended
		 * maps for a gametype
		 */
		multiplayer_gametypes
		{
			1on1
			1on1on1
			2on2
			2on2on2
			coop2
			coop3
			coop4
			*kingofthehill1on1
			kingofthehill1on1on1
			kingofthehill2on2
			*domination1on1
			domination2on2
		}
	}
}