[CF-Devel] speculations about the floor

crossfire-devel-admin at archives.real-time.com crossfire-devel-admin at archives.real-time.com
Fri Jun 27 00:22:59 CDT 2003


OK, here are some recent thoughts about maps and elevation and weather and
local effects and what have you.

First about the weather.  The issues I have with using the existing weather
code which requires an elevaiton value in every ground tile on the world
maps are:

1. it is not maintainable in a meaningful way - meaning that possibly you
can keep the original values the map was generated with but this isn't
valuble if you make changes to the context (like if you add a swamp or a
river it will not be reflected accuratly by the elevation information in the
weather system. The other options are editing the elevations by hand (never
happen) or scripting an intelligent elevation generator.

2. it requires all other possible map sets to have meaningful elevation
generated before the weather can work.

3. The bigworld maps were generated with a simple elevation:arch assignment
which means most arches fall into simplistic elevation ranges where
landscape only occurs in one range - there aren't deserts or lakes in the
mountians or forests below sea level or swamps in highland areas at or the
like.

So what about it?  Well I think it could be better with not a huge amount of
change.  a I would suggest that the elevation actually be generated from the
maps on demand when there are significant changes (something like running
'./crossfire  -E' perhaps?) , and this be stored in a set of elevation maps
(just a set of 'maps' which store x,y coords and the elevation).  Each world
map would be assigned an average elevation (so if you created your own
worldmaps you would only have to plot the base elevation each map) and a
script would generate sensible elevation for each map tile based on the arch
information.  Fixing the map editor to generate intelligent elevation would
require an approach like this anyway, but this way you could generate
elevation for any set of maps given the map base elevations.

Then when the weather system actually runs the elevation for that tile can
point to the elevation maps, to find the elevation rather than reading it
out of the arch directly.  It seems indirect, but this would totally solve
all three issues (I don't know what type of issues you would have with
elevation pointing to a different file but the elevation would be easy to
reference since it uses the same coordinate system, but it seems reasonable-
is this a linked list?).  You could even possibly go further and have
weather operate on a larger map than the play map by generating more
elevation.

On a side note, it would be neat if the client could automatically run the
weather command every so often to let people know the temperature and stuff
is like - perhaps only when the player is outside and with a setting to turn
it off of course...

My second more speculative thought comes from my goofing around with making
objects for housing and points raised by David Seikel about having local
area effects on mana and hp and stuff.  I really didn't like the idea of
haveing more things in the arches like the elevation hardcoded in the arches
to manage, but I was thinking of having a way to indicate that a tile
'belonged' to something else (a local entity, a city, an area effect).  I
also needed to be able to make a subclass of exit that was unique (not in
the apartment way, but in the item way) and that belonged to someone (or a
guild or a religion).  Well the race field comes to mind here, it would be
neat to use race for ground (and for other arches possibly) to indicated it
belongs to *something*, this something would be of course an other object
with it's own arch.  An example would ge a forest where many or all the
ground tiles belonged to a "Dark FOrest" arch and these arches would inherit
some properties form the dark forest arch (like slower movement, or damage
or faster mana renegeration...) This could be an atlernative way (less
cluttered) to do no_magic and cursed ground as well, define then as an
property of the parent arch to be inherited.  It could be used to define the
area of a town by setting a 'town' object as the race of it's land (the town
object could also be put into NPC inventory...)
This belongingness concept doesn't necessarily have to be confined to ground
tiles, it would be a neat way to actually do player races (the races would
become arches in this case), but this would be a larger type of change than
I should be advocating at this time...

Fire away.



_______________________________________________
crossfire-devel mailing list
     
     crossfire-devel at lists.real-time.com
     
     
     https://mailman.real-time.com/mailman/listinfo/crossfire-devel
     
     
    


More information about the crossfire mailing list