Furcadia Technical Resources
Navigation Menu
 Home
 About
 Files
 Links
 Contacts
 Credits

Documentations
 base95 Numbers
 Commands
 Server Instructions
 Colormap
 Movement/Coordination
 Palette
 Entities
 Badge Hash-signs
 Portrait File Map
 Avatar Frames
 Static Dreams

File Formats
 FSH
 FS2
 FBJ
 MAP
 DSB
 RCH

Protocol Specifications
 Main Server
 File Server

Other Resources
 IceRealm Forums
 Furcadian.net

Subsections


The Isometric Field

The field where we are located is not a usual 2D matrix, as you might have already noticed. It's a 2D matrix, rotated by 45 degrees, making our coordinate grid a little bit different. Here is a typical movement chart of Furcadia:

Coordination Chart

As you can see - our X axis has changed a little bit, the map starts at 0,-1 and so on. Big mess, but you can get used to it, if you see such a chart in front of you whenever you deal with it. If you still look at a row in a straight way, you can notice that it actually goes properly (0, 2, 4,...), but there are places in between of these elements.

The walkable area itself of the map begins at coordinates 8,9 because the Furcadia character is meant to be in the center at all times. Since there's nothing beyond the map boundaries, it wouldn't be as nice to show you black space around the place as you come to the edge. What actually happens when you're stepping on that unwalkable area is that your character moves off the center - the map won't move beyond it's minimum/maximum even if you try to force this.
To summarize this, let's say that in a map of 24x24 (576 tiles) there will only be 14 walkable tiles in the center of the map...


Changes in Coordinates for Each Step

Since our field is not a typical 2D matrix, the movement there won't be as simple as X+1 or Y-1 for each step, we've got to check if Y is even or odd and then take necessary action, depending on where do you move to. Here is a list of X/Y changes for each case we meet (keeping an eye on the graphical field above might help you understand more):

Y is odd Y is even
Direction X/Y Modification X/Y Modification
North-WestX-2 / Y-1Y-1
North-EastY-1 X+2 / Y-1
South-EastY+1 X+2 / Y+1
South-WestX-2 / Y+1Y+1


Finding Direction with Two Pairs of Coordinates

When we move from one point to another, the server gives us two pairs of coordinates - the source and the destination. Personally, I'd prefer the source and a direction - would save 3 bytes, but the guys up there probably did it for a reason, right? Perhaps they plan to compress the movement at some point and specify a far destination point, where the client will already calculate the movement... Probably a valid idea, but I doubt that Furcadia will come up to something like this in the near future. Anyway, back to the subject!

Since the server gives us two points when somebody walks, we can determine the direction the character walks in rather easily - especially since we always walk one step at a time. Here is a list of directions and the if() strings for each direction that can suite many programming/scripting languages (Note: oddY = srcY % 2):

Direction Direction # if() String
North-West7(srcY > dstY) && ((oddY && (srcX > dstX)) || (!oddY && (srcX == dstX)))
North-East9(srcY > dstY) && ((oddY && (srcX == dstX)) || (!oddY && (srcX < dstX)))
South-East3(srcY < dstY) && ((oddY && (srcX == dstX)) || (!oddY && (srcX < dstX)))
South-West1(srcY < dstY) && ((oddY && (srcX > dstX)) || (!oddY && (srcX == dstX)))

In case and the source point equals the destination point, it means that the character tried to walk somewhere, but got blocked. In this case, we can only determine the direction by the character's frame number because he didn't really move anywhere - just walked in one place.


The Range of Sight

The range of sight in Furcadia is approximately 15 tiles wide and 17 tiles high (X: 0 - 14[oddY] / Y: -1 - 15). Beyond this range, the server should, theoretically, prevent you from seeing movement or text. There have been cases where a character was found slightly beyond one's range of sight, but still could communicate with the person, so I believe the range is a little bit more extended than that.

Copyright © 2004-2006 by IceDragon - All rights reserved.