At any given point in any given map, movement is constrained to a 2D axis and things (movements, bounds, attacks) only take X/Y into account. These axes is generally either the land plane itself (usually representing dirt/grass/ground), and/or constructed terrain pieces (usually representing constructions in cities and such).
Why would Devcat do this? Well, It's much simpler, faster, and easier to make a 2D game than a 3D game (a third axis immensely complicates a large number of things such as AI). But the tradeoff is seen in multiple systems and Devcat has to do multiple tricks to make it seems like the game is 3D. This sort of thing causes a whole list of oddities and limitations, but I'll focus on three main things here.
1 - Everything snaps down to the ground and there's only one ground level, so there's no actual way a player or piece of land can be above or below another. This limits various area construction designs.
[spoiler="Explanation And Examples"]
- Walls in Dunbarton? They have areas you can walk over the entrances, right?
[Image: http://i.imgur.com/qwI84zC.png]
Nope, it's fake and you can't actually go across it.
[Image: http://i.imgur.com/OK4vMtS.png]
- The Dunbarton school has multiple floors, right?
[Image: http://i.imgur.com/bfnahm6.png]
Nope, trying to actually walk under the overhang fails.
[Image: http://i.imgur.com/fO45Ny0.gif]
In fact if you look carefully you can see the "shockwave" from my click actually phase onto the upper floor.
- Beacon mounds in Taillteann? It appears you can go up/down, but... the "up" platform is fake. Since you can go below it...
[Image: http://i.imgur.com/vdnmzDg.png]
That means you cannot actually stand on it, because the solid ground is at the bottom. The "extension" is a visual fake, you can't walk onto it.
[Image: http://i.imgur.com/Wu2S7O0.gif]
- In instances where the land is chopped up (generally out of sight areas) and/or disconnected, your character doesn't care and will instantly travel "up" or "down" instead of falling to the void... 'cause you always snap to the ground! There's no such thing as gravity or holes.
[Image: http://i.imgur.com/Lgtnhvv.gif]
2 - To help convince the player that the world is 3D, Devcat sometimes makes the ground visible or invisible in certain places or adds contructed collision boxes (one form of fake terrain) to give the illusion of things like rivers, water, and gorges.
[spoiler="Explanation And Examples"]
- Sometimes the ground is right beneath some river graphics (constructed terrain for the rafting minigame), so if you can get on a river you can walk on top of it (you can find some old vids of people doing this for rafting on youtube).
[Image: http://i.imgur.com/2OkUWjr.png]
- Other times the ground under the river is deeper, and there's no solid platform to catch you, so you can do things like this.
[Image: http://i.imgur.com/PeH0CUM.gif]
You can see how the ground slopes back up to a walkable height for the bed up there.
- There's other places you're not intended to reach that have invisible land where you can float overtop of things.
[Image: http://i.imgur.com/lPiTFyy.png]
- Raspa Volcano is one great example of illusions. It's a hollow fake. The game just has barriers in place to prevent you from walking into it from the front accessible half. However if you go in from the side or back, you can literally walk right into it and sink down to the ground at the base level.
[Image: http://i.imgur.com/vnTh8OZ.png]
The giant lava-colored spike there is the cone you'd see into if you looked from above.
In fact, you can actually go through the volcano by flying close enough to the front of it in some spots.
[Image: http://i.imgur.com/90joBfz.gif]
3 - Flying is just walking with style. They use a lot of tricks to fake flight, but at the end of the day you're still attached to the ground plane, running along it. Pretty much everybody here should understand the basics of this by now (if not from in-game experience alone).
[spoiler="Explanation And Examples"]
- Flying keeps you attached to the ground and tries to maintain at least a certain amount of visual space from the ground. This can easily be seen when flying over bumpy terrain and trying to keep low.
[Image: http://i.imgur.com/sMvCbu9.gif]
- When flying, normal walkable/blocking land areas are ignored. This actually means that things like Lake Neagh become passable when you're in "flight mode" which is why you can "fly over" them. And yes, the lake isn't actually part of the landmass, it's one giant fake... uh... thing. I don't even know the proper term for it.
[Image: http://i.imgur.com/OgQPhLy.png]
- Instead of paying attention to the walkable/passable/blocking areas of the landmass, when in flight mode the game pulls up a "flight map" and uses that to determine where you can and cannot fly and takeoff/land. It's actually overlayed on top of the minimap so you can see it normally (more or less)...
[Image: http://i.imgur.com/uVYYrRg.png]
But if you want specifics, minimapinfo.xml in the client shows info on the flight maps. For Abb Neagh, we see...
[code]FieldMapName="data/db/FieldMap/Taillteann_Abb_Neagh_aviation.raw" FieldMapWidth="413" FieldMapHeight="311"[/code]
And checking out that file and viewing it with that info (at 8bpp), we indeed see the flight map...
[Image: http://i.imgur.com/vGmc5HM.png]
The flight map is a simple 2D image. Black is no-fly, white is flyable, grey (0x69) is flyable but no takeoff/landing.
"Well it's not like editing that image would actually allow you to fly out of bounds or anything." - It actually does, but nowadays the server tracks it as well and resets your position if there's any issues to prevent people from getting out of bounds like this nowadays.
[Image: http://i.imgur.com/dQCEjZ8.gif]
You could also attempt to land in the middle of the lake... and your client will attempt to, but the server will reject your attempt to get out of flight mode since the server still has a functioning copy of the flightmap that it checks.
- The game does attempt to respect some of the existing additional map collision boxes to keep up the illusion, but there's a couple of problems.
1 - It does it via a simple height check relative to a value of the collision box. This is not an automatic/inherent measurement of the height/size of the collision box! For example this box that's shorter than me needs 16 meters of "height" to "fly over".
[Image: http://i.imgur.com/pul9yu0.png]
However this box that's the same type and even taller can be passed at 10 meters of "height".
[Image: http://i.imgur.com/zQ9YrLK.png]
And as for this one, I can almost touch it!
[Image: http://i.imgur.com/3KofaJt.png]
2 - The height it checks seems to be your relative height from normal flight height to the ground you're coming from. Thus you can get annoying results on slopes, flying over an object and suddenly you're stuck halfway through passing it.
3 - It's inconsistent as hell. Only one type of collision box is checked, and this type of box has to have the additional "height to pass" added to it as well. In fact it seems like the recent devs couldn't even figure it out, as seen with this one pillar in the new Muyu...
[Image: http://i.imgur.com/c6AHcMv.png]
They tried two types of collision boxes on it... both the wrong type for flight checks.
[Image: http://i.imgur.com/t3M72oo.png]
[Image: http://i.imgur.com/3vjiT3I.png]
So what did they end up doing? Marking the towers areas as no-fly on the flightmap!
[Image: http://i.imgur.com/qbESp50.png]
Not to mention how many things in the server and client only bother to specify X and Y coordinates, but I figured that screenshots would be more amusing than XML examples. Seriously there's so many limitations in this game caused by this that it'd take forever to list them.