Print Page | Close Window

Terrain Types

Printed From: Illyriad
Category: Miscellaneous
Forum Name: Technology & data
Forum Description: Discussions on data dumps, downloads, and third party applications.
URL: http://forum.illyriad.co.uk/forum_posts.asp?TID=1803
Printed Date: 16 Apr 2024 at 17:25
Software Version: Web Wiz Forums 12.03 - http://www.webwizforums.com


Topic: Terrain Types
Posted By: HonoredMule
Subject: Terrain Types
Date Posted: 16 Apr 2011 at 19:59
One of my wiki's editors has started documenting map tiles (plains, dolmen, ruined tower, etc.) and this has opened a huge and chaotic can of worms.  The old data files define two levels of classification: terraintype and terrainoveralltype.  But I know there have to be at least 3 levels.  For example, Ruined Tower is a specific tile type, with a combat type of Buildings and a Terrain Type of NPC Structure.

What is the relationship between combat type and terrain type?  Is a specific tile the combination of those two, or is there a parent-child relationship (i.e. all Buildings tiles are NPC Structure tiles)?  I'm calling the classifications "terrain type" and "combat type" but that carries assumptions about where behavior-specifying attributes come from.
Does the "combat type" only define attack and defense modifiers per unit class?
Does "terrain type" define everything else at a functional level? (whether players can occupy/settle, whether NPCs will spawn, etc.
Does the specific tile type exclusively define a name, graphic, and combination of combat type+terrain type, or is it something else?

On top of all that, where are the sovereignty details and resource distribution specified?  Is there a third sub-class for that or have I misunderstood the primary significance of the first two?  Maybe these go with what I'm calling "combat type?"

I appreciate any light the devs can shed on this, because what I have on the wiki now is a spider's nest of bad terminology and confused relationships.



Replies:
Posted By: GM Stormcrow
Date Posted: 16 Apr 2011 at 22:34
Hm.

As you mention, the whole thing is not 100% straightforward.

Starting at the beginning, I guess.

Every square has:
  • An internal, unique identifier (that we call GeoID)

  • A pair of X & Y coordinates that, when paired, make a unique key (like the GeoID)

  • BiomeID

    This number references the underlying biome of the square. On the map this is visible by the background underlay colour (eg mottled white for Arctic, dark green for jungle etc).

  • TerrainTypeID

    This represents the "Primary" terrain type to *graphically* display on the map. 

    This could be (eg "4") meaning Player Town - which then breaks down in 152 sub-types representing the 19 levels of upgrade by race by whether they have walls or not (19x4x2).  Or it is a specific terrain type such as "9" (Clay Seam) graphic.

  • OriginalTerrainTypeID
    This is actually the meat of what I think you're looking for, and describes what the TerrainTypeID of the square is for non-display purposes (ie combat resolution etc).  This - in almost all circumstances - matches the TerrainType, but not always - the primary example being towns (above) where TerrainTypeID - display purposes - might be "4" (meaning Town) but the OriginalTerrainTypeID is "9" (meaning "Clay Seam")

  • UnderlyingTerrainTypeID
    Not of particular application to this question - this is a further attribute to the square that describes "what the terrain type on this squre is in an ideal world, based on the fractal generation of the terrain".  As the old hands in Illyriad are aware, we generated the fractal terrain (clumps of mountains, forest, oceans etc) at a later stage after the game had gone live.  We're therefore left with (especially in the center of the map) a mish-mash of terrain types that don't follow a particularly naturalistic "seeding".  When towns are abandoned by players, they revert to this "UnderlyingTerrainTypeID", so that - over time - these "non-fractal" parts of the world will tend to revert back to type.
Each OriginalTerrainTypeID links to a TerrainOverallTypeID, which essentially describes how the square functions in terms of combat resolution.

At some point in the future, combat resolution will also take attributes not only from the TerrainOverallTypeID but also from certain BiomeIDs, in order to represent variances in (eg) Jungle Warfare, Arctic Warfare & Desert Warfare.

Finally, there are a set of exception tables that explain certain OriginalTerrainTypeID attributes such as "Is this type an NPC square? Is it settlable? Is it impassable?" etc -  as well as future attributes such as "Would this square require a bridge to cross? Would it require a boat to cross?".

Some squares match across all types.  For example, a "Tidal Water" Square might have a TerrainTypeID of "Tidal Water", an UnderlyingTerrainTypeID of  "Tidal Water", and OriginalTerrainTypeID of "Tidal Water", and even a BiomeID of  "Tidal Water", with a record in the exception table with attributes such as "Cannot be Settled, Impassable by land, Requires Boat" etc

I hope that explains things more usefully.

For your purposes, OriginalTerrainTypeID and the join to TerrainOverallTypeID are probably the only important ones, with exceptions for "Special Squares" such as NPC squares and impassable squares.

We should probably publish this information somewhere in an 'Illyriopedia'.

Regards,

SC


Posted By: HonoredMule
Date Posted: 17 Apr 2011 at 19:23
Thanks for the feedback, but I'm still struggling with understanding the material in the way it needs to be represented for usefulness to readers.  According to a parsing of the most recently-available xml data dumps, the following underlying terrain types are identifiable:
   [6] => Small Forest
   [2] => Small Mountain
   [7] => Plains
   [10] => Large Forest
   [1] => Large Mountain
   [3] => Large Hill
   [4] => Small Hill
   [9] => NPC Structure
And others can be projected:
 Impassable (Volcano, Swamp)
 Water (Ocean, River, Shoal, etc.)


Are there somewhere on the order of 10 underlying types?  And organizing it for human minds, it seems like NPC Structure does not belong in this list, while "Buildings" does--instead, NPC structure should be more of a yes/no thing.  The following is an attempt to make that work.

There are 4 distinct bodies of information a player would be interested in understanding and following:
 - resource plot distribution
 - terrain as it pertains to combat
 - special sovereignty boosts
 - behavioral flags (settlable, passable, occupiable, needs bridge, needs boat, NPC activity, etc.)

It seems that the handling of NPC and non-NPC squares diverges totally, making NPC Square much more appropriate as a yes/no flag, so that it does not replace what appears to be a still-necessary mapping to one of the other items on the same list.

NON-NPC SQUARES:
Each item in the list above (excluding NPC Structure), uniquely defines combat type and any behavioral flags that are currently in use.

Said items have a mutually-exclusive list of subtypes (not necessarily with names different from the parent type) that define specific sovereignty boost and resource distribution, and may in future define more behavioral flags such as whether water is deep enough for seafaring vessels.

NPC SQUARES:
They are all of type 9 (NPC Structure) and thus have to get their combat type from one of the other items on the list (please, please say it's the same list or at least the separate list of subtypes doesn't collide).  But the behavioral flags are static to NPC Structure (NPCs spawn, monsters spawn, resources spawn, can occupy, can't settle, is land).  In other words, NPC Structure is actually one of the other terrain types, but with a single consistent set of behavioral flags overriding that of the terrain type.

There is a much larger set of subtypes just for this one, but it does not define anything but name, graphics, and which parent type this tile really is.  There is no sovereignty boost, random resource distribution, and spawn types allowed--something I'm leaving alone for the moment--are defined by some combination of biome, terrain type, and region.

----

If at all possible, I'd like to keep the reader-facing representation simplified to two levels of classification: one that is ultra-specific to the names actually shown in the UI and describes only what is exclusively unique to that name, and one underneath that carries as much of the remaining gameplay-related data as possible while remaining as small a list as possible.  In other words, let players map the diverse world down to an easy-to-follow shortlist of classes that filters down the bombardment of raw data into digestible format--and makes wiki-page maintenance more feasible too.  The behavioral divergence of NPC squares creates a third level with just two options, but that could be abstracted away both by wiki templates and in the reader's mind.

If I follow the pattern described above, would I find contradictions?  I.e. would I find one Dolmen square with a combat terrain type of large hill while another is small hill?  Would a Dolmen on small hill be the same for combat as a Clay Seam on Small Hill (making up combinations, recognizing they may not be correct).  Or can NPC Squares never actually be Small Hill, but rather take from another separate pool of underlying types?  Are there missing details that cannot fit into this pattern?

Also, I'm assuming at this point that modifiers taken from biomes and regions would essentially be additive (or multiplicative) such that their introduction wouldn't be relevant when strictly discussing the behavior of a generalized piece of terrain.

----

As a tiny aside, I do find it very strange that parsing a data dump of town data yields underlying terrain id 9 (NPC Structure).  Is this a bug in the data perhaps, or does someone have a city on land that would be NPC Structure if they left?


Posted By: GM Stormcrow
Date Posted: 17 Apr 2011 at 23:25
Please note, I've just edited my original post here as apparently (ty TC for pointing this out) I had actualy mixed up Underlying and Original...

And I'll post a more comprehensive answer to the questions shortly!

SC


Posted By: GM Stormcrow
Date Posted: 17 Apr 2011 at 23:49
For the wiki purposes atm, I think http://elgea.illyriad.co.uk/data_downloads/terrain_types.txt" rel="nofollow - this describes most everything you need, notwithstanding a few legacy issues (ie towns on NPC squares - don't worry, they don't get any benefits!) that still need to be sorted.

SC

Edit - reissue file to correct



-------------
GM Stormcrow | http://bit.ly/rLKfoT" rel="nofollow - Twitter | http://on.fb.me/uvfajA" rel="nofollow - Facebook | http://bit.ly/rBzlzf" rel="nofollow - G+


Posted By: HonoredMule
Date Posted: 18 Apr 2011 at 03:30
Awesome, thank you very much, SC.  With this we will be able to thoroughly and clearly document the world in as straightforward a manner as possible.  They may not realize it, but I'm sure Arcanum Illyria's readers will reap the benefit of your assistance.



Print Page | Close Window

Forum Software by Web Wiz Forums® version 12.03 - http://www.webwizforums.com
Copyright ©2001-2019 Web Wiz Ltd. - https://www.webwiz.net