[crossfire] A funny thing happened on the way to the new maps

Robert Brockway robert at timetraveller.org
Sat Apr 2 23:49:10 CDT 2016


On Sat, 2 Apr 2016, Mark Wedel wrote:

>
> I presume the 1000x1000 maps are 50 (or some other size) spaces/side?  Or is 
> each map 1000x1000, but you have some smaller set of maps being tiled 
> together?

Yes I'm using 1000x1000 maps, with each map being 50x50.  While I'd been 
reading C and Python code I'd come to suspect there were implicit 
assumptions that the world tile maps would be 50x50.  Yes this could be 
fixed but I found it easier just to stick to the existing standard.

It's worth noting that the name of the new world is Quadra and I've layed 
the tiles out in a directory tree to avoid the issues of having too many 
files in a single directory.  So the map tile for maps 117,117 on my new 
world is:

/worlds/quadra/117/117/tile

I've written a script which take the tiles generated by 'land' or 
'bigland' and sets the tile paths correctly.  I have special plans for the 
edge maps which are worth their own post some other time.

> With map tiling, things can move to adjacent maps even if players don't move 
> to them.  The game doesn't really distinguish between objects, and just as 
> you wouldn't want an arrow to stop at a map edge, same goes true for 
> monsters.

That's great.  I think that has some potential to make really interesting 
tiled maps.

> What should eventually happen is that maps with no players on them will get 
> swapped out.  However, what probably also happens is that maps that are still 
> in memory are touching the other maps, keeping them active, so this never 
> happens (at least in the case of mice which keep multiplying).  One could 
> have a monster that just wanders and moves to a new map, but it would 
> eventually get swapped out if nothing else is keeping the map it is on 
> active.

Great thanks.

> As far as compression goes, at one time, the server did support map (or 
> really, all file) compression.  However, the typical size of an entire

Any chance it could be put it back in, even as an optional component 
enabled in the config?

> installation was small enough on current hard drives, there really wasn't 
> much point to it (even 100 GB isn't that big for modern systems).  Also, some

I am looking at hosting my server in Linode or a similar service but I 
find the cost of 100GB hosted is more than I want to pay on going to run a 
game server.

I could cut the world down to 500x500 maps and add the rest back when the 
cost of storage drops but I'm hoping not to have to do that.

> newer filesystems (ZFS for example) support compression, eg:
>
> NAME                    USED  RATIO
> export/home/crossfire  18.0G  2.09x

FreeBSD?  Few will be using ZFS on Linux I think and I'm not trusting my 
data to Btrfs just yet :)  There seems to be a FUSE option for on-the-fly 
compression but there are concenrs about stability.  Other than that I 
think Linux users have few options for on-the-fly compression but happy to 
hear about options I may have missed.

If we applied the map compression in the application it would work on any 
OS that the game runs on.

I compressed a few random tiles from my new world and got compression 
rations ranging from 6:1 to 10:1.

Cheers,

Rob

-- 
Email: robert at timetraveller.org		Linux counter ID #16440
IRC: Solver (OFTC, Freenode and Snoonet)
Web: http://www.pracops.com
I tried to change the world but they had a no-return policy


More information about the crossfire mailing list