I'm trying to slow down how fast hours go by in my MUD. Talking to someone means a whole day(or two, or three) will pass, which I hardly think is very realistic.
Now correct me if I am wrong but the time is handled in db.c, which around line 500 has this code:
Just wondering, but won't doing that result in longer wait times for anything else that depends on ticks? Might end up with ungodly regeneration times if someone really increases this, no?
I realize the original post was about adding realism, but in context I thinking that one could easily take this too far. It might be nice that people's conversations don't span days, but I doubt anyone wants to wait a real hour or two for their chars to heal up, versus a couple of game hours.
Indeed. Changing pulse_tick just to get calendar advancement to move slower is a bad idea since that variable affects pretty much everything that has to do with the game. Things ranging from regen rates to the lag time for the WAIT_STATE macro to spell affects.
The best option for this situation would be to separate the time updates from the rest of the system and put them in their own pulse timer. Then you can tweak and adjust how fast or slow time moves without affecting everything else.
As to whether or not it slows down how fast you heal I don't mind that. I've played a rp MUCK for a long time and healing wasn't instantaneous there, in fact rather a slow business unless you had healing potions. I'm mixing some of the elements of the MUCK and some from the MUD to create a SLUDGE :)
I haven't explored the database much yet as I'm still pretty new to smaug and even if I could read it I don't have time. Would there be any other major affects of changing the time besides those which affect spells? My game doesn't currently use spells so I'm not too worried about that. I would assume it would affect hunger and thirst, but that's just as well. Folks are always getting hungry too quick.
Now if this changes waaay too much I could try adding another pulse variable, but I'd appreciate it if someone would explain how to go about doing that.
Time update is called from pulse_point, just make a new pulse and adjust the numbers below till you find that your time now updated at a rate that suites your mud.
You could also increase PULSE_TICK a little tho i wouldnt go much over 90 seconds, its just too long a wait for anything to happen.
static int pulse_newTIME;
if ( --pulse_newTIME <= 0 )
{
pulse_newTIME = PULSE_TICK * 3; //Ajust this to suit, Tommi of EldhaMUD
time_update ( );
}