mirror of
https://github.com/smaugmuds/SmaugFUSS
synced 2026-08-12 12:23:07 -04:00
72 lines
4.9 KiB
Text
72 lines
4.9 KiB
Text
This is a little something I threw together to explain how to make the weather system work.
|
|
Also included are the helpfiles for the different commands and other things needing an
|
|
explanation. - Kayle
|
|
|
|
First off, You're going to need a bit of a plan. The release version of the weather map is
|
|
set up to be a 10 by 10 square map, giving it 100 cells. Modify WEATHER_SIZE_X and
|
|
WEATHER_SIZE_Y in weather.h to accomodate the size you want your map to be.
|
|
|
|
Then, Each Cell that will be assigned an area is going to need to be set up. You do this by
|
|
cycling through each cell (preferrably after you've figured out how you want your worlds
|
|
weather and climates laid out), and assign each cell a climate and a hemisphere. You do this
|
|
with the setweather command.
|
|
|
|
EX: setweather 0 1 climate rainforest --This would assign the rainforest climate controller
|
|
to cell (0,1) which would then have any areas assigned to that cell an abundant amount of rainfall,
|
|
a rather high level of humidity, and normally high temperatures.
|
|
EX2: setweather 0 1 hemisphere southern --This would assign this cell to the southern hemisphere
|
|
which basically causes it's seasons to reverse. Snow would fall in summer rather than winter, and
|
|
winters would be rather hot.
|
|
|
|
Now, the reason I state each cell that will be assigned an area will need to be set, is because
|
|
it's alright to leave cells that will not have anything in them to be set to the default
|
|
climate/hemisphere. The point of the climate controllers and hemispheres is to prevent the cell
|
|
from reaching a state that it should never ever reach. Equilibrium. Equilibrium is a state of
|
|
utmost balance. If the system achieves balance, and that is what it's going to actively try and
|
|
find. There will be no more changes. So if you don't change at least a couple cells, then you
|
|
will have a problem when the system reaches balance, and there is no more changing weather.
|
|
Earth is dynamic like that, the different climates prevent the worlds weather systems from reaching
|
|
balance because deserts always suck all humidity out of the atmosphere, and rainforests always
|
|
produce a lot of extra, its the same in this system. And that's what the climate controllers do.
|
|
A detailed explanation of what each climate is, and does will be included in the helpfiles at the
|
|
end of this document.
|
|
|
|
Once you've assigned climates and hemispheres to each cell, You'll then be able to assign areas to
|
|
cells. This is rather simple, With your plan in hand, begin going through your areas and assigning
|
|
them cells with the aset command. Initial release limits this command to immortals of level 60 or
|
|
higher. This can be adjusted in the aset command located in build.c. It would look something like:
|
|
aset newdark.are weatherx 0
|
|
aset newdark.are weathery 1
|
|
|
|
And you would then proceed to do this for each individual area your mud currently has. Now, you
|
|
are probably thinking, "Wow, this all seems rather tedious." And yes, you wold be correct in
|
|
thinking that it is tedious. It is honestly insanely tedious, and for already established MUDs
|
|
with a playerbase, it might honestly be a nightmare. But to have a fully functioning weather system
|
|
based off of Real weather, and that produces relatively real weather patterns, I think it's worth it.
|
|
When I undertook this project, I figured it would be something real simple, like adding a few things
|
|
here and there to the existing weather code. I was very, very, very wrong. No offense to Fireblade,
|
|
but that system was seriously lacking in a lot of places. There are a lot of things addressed in this
|
|
system, and while it's tedious as hell to install, I will admit, I think most people will find the
|
|
Pros, far outweigh the Cons.
|
|
|
|
PROS
|
|
# Real seasons calculated from the calendar settings.
|
|
# Climate regions which impact other climate regions nearby.
|
|
# Sensible weather events based on season. No snowstorms in summer. No scorching heatwaves in winter.
|
|
Stuff like that. -This one is actually a little bit touchy. It will depend entirely on which hemisphere
|
|
the cell is assigned to as to which will occur in which season.
|
|
# Terrain changes based on season. ex: lakes which freeze in winter, and that sort of thing.
|
|
# Settable number of hours in a day, days in a month, and months in a year.
|
|
# Holidays which can be created and set to the desired date.
|
|
# Allows for Weather to persist over reboots/shutdowns/hotboots.
|
|
# Allow for full influence over all surrounding cells, and surrounding cells influence cell.
|
|
# Dynamic messages that will notify players of changes in weather for example:
|
|
"The pouring rain lessens a bit and changes over to a steady snow."
|
|
# Easily inegrate weather into other systems via the use or prewritten interaction functions. These functions
|
|
are used to prevent corruption of the map, and to emulate encapsulation.
|
|
|
|
CONS
|
|
# Tedious Installation and initial setup.
|
|
# Control Weather still a cheesy spell, just modified to fit the new implementation. Hopefully
|
|
I'll be capable of writing a better version of control weather for a later, updated release.
|
|
|