Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

eharper256's Dynamic Time System VERSION 5.1!!

Dynamic Time System
UPDATED TO VERSION 5.1!!
By eharper256


Hello all, this is a EVENT Based Dynamic Time System that I created. It was created to meet my needs for an adaptable time system which weren't catered for by the currently available systems, scripting based or otherwise. I wanted the ability to alter the speed of times flow, like Calderons time, the adaptive weather of punkids system, and, most importantly, the ability to fiddle with the time of day at will without screwups and have it tell other events via a simple switch whether it was Night, or bad weather, or suchlike.

Features
  • Keeps track of minutes, hours, days, weeks and years through easily alterable variables. As a result of this, you can easily implement things like Inns that add 8 hours to the clock, and such...
  • Automatically checks if its night-time; and if it is, pulls a switch. You can have things like shops closing at night and such through this.
  • Set up default values for the time, like the AMS; and reset them to this value at will by a simple switch pull (hey I can do a Majoras Mask with this and return to the beginning, LOL).
  • Change the speed of times flow by altering a variable. This achieves an effect similar to Calderons Time; you can have time speed by quicker when on the World Map, for instance, or go slower in the Snowfield of Death. There are 5 settings for time flow by default (Normal, Fast, Faster, Uber-Fast and Slow).
  • Changes screen tone according to the hour; and changes it differently whenever one is inside, or when the weather is bad.
  • But there is the easy option to Switch the screen tone change off whenever you need to, whilst keeping time flowing in the background. Useful for cutscenes and places with unusual light conditions.
  • Support for Ccoa's Weather. Checks the weather every hour of game time based on Seasonal evaluation.
  • Much, Much, Much better weather support in version 2! The weather change is no longer quite so random; but more reliant on seasons and their individual likelihood of generating high/low pressure fronts. The system can be turned off at will.
  • Additionally, the weather now works in the same fashion as the tone changer; running then turning itself off every game hour. This has required an additional switch to be added to the line-up, but as a result the whole affair is much more stable and is also less laggy.
  • A final weather based addition: automatic application of appropriate BGS; which stays on (though lessens in volume) when you go inside. This feature is also easy to disable if you want your own BGS.
  • Also, a stupid bug in the demo was quashed. It continued to rain inside because of my lazy event programming before.
  • Much like the night-time check, theres a check for bad weather that pulls a switch. You can have people react differently to bad weather.
  • No big daft clock hangin' around onscreen all the time. I figure that most fantasy characters don't really have digital watches, in any case. ':| As of 5.1, still no big daft clock, HOWEVER, there is a toggle-able time & date window. See below.
  • However, you can tell the time at any time (tongue twister!) by simply calling a common event. This way, your characters can still look at the town clock or use a personal sundial, or something. This clock calling event has support for Dubealex's AMS by default, so the time shows up in a clear text box rather than a message; but if you don't have that, you can remove dependancy on it easily by a quick event modification. (I'm sure its easily changable to Ccoa's UMS as well, but I don't have that)
  • Finally, because of the separated events and conditionals, it does not lag at all. (At least it doesn't on my old laptop, which is a 1.6 GHz Athlon)

Version 3 Adds alot of cool new features!
  • Due to popular demand, I added a feature called FastTone. People didn't seem to like the fact that the tone change was slow when switching between inside and outside. This feature addresses that; it should detect when it is needed, and then make the tone alter considerably quicker.
  • SpecialLight was added. Previously, when you wanted to use a special kind of light not conductive with the typical day/night effect, you would have to apply the Tint Fixer switch and do it manually. SpecialLight addresses this problem by offering a standard library of unique lighting conditions, defined from within the Tint Changing Common Event. Therefore, you can define your special light type there, assigning it a variable value. Then, whenever you need to use that light type, you call upon it in a snap by simply setting the variable to your desired value, flipping a switch and then raising the Tint changing FLAG as normal. The Tint changer will then recognise the need for your Special Light; and it will usurp the typical Day/Night Tint whilst still letting time run and recognising the difference between day and night.
  • Special Light currently has the following default conditions programmed into it: Dark Cave, Sewer, Crystal Caverns (Blue and Purple), Icy Cavern, Fiery Cavern and Forested Canopy. You can add additional types if you have a reasonable proficiency with event programming.
  • Time Based Lighting was added. This basically allows the system to utilise the unique symbiosis of Time and Tint in ways besides the standard day/night cycle. As a result, you can add considerable amounts of atmosphere to your game with very little effort! For example, you can have a eerie dungeon with a pulsating light effect, or have the effects of thunderclaps with lightning flashes without the rain for that mad professors hideout.
  • Time Based Light currently supports the following unique conditions: Slow Strobe Light, Pulsating Light, Intermittant (Flickering) Light, Disco Lights :D , Battlefield effect with explosions, Underwater effect with bubbles, and Lightning Flashes for interiors. If you can think of other effects you'd like, post 'em here and I'll see what I can do.

Version 4 Adds some pretty funky new stuff also!
  • Now using Ccoa's Tileset swap script, the Dynamic Time system can automatically adjust the tileset for you depending on the season! This allows a switch to new tilesets to show the effects of winter, autumn and such more dramatically. In order to utilise this feature, simply adjust the tileset values for seasons in the configuration event. By default, Spring will use the default selected tileset, Summer will add +50 to this number, Autumn will add +100, and Winter will add +150. Hence, if you wanted versions of the RTP grasslands to change season, the spring version would be Database Tileset ID 1, Summer 51, Autumn 101, Winter 151 etc.
  • As mentioned, better customisation was my main goal for this version. To achieve this, the system now makes use of Script Arrays which are fully customisable in the setup event. For example, previous versions didn't recognise the difference between weekdays, and all months were always 30 days long. But no longer! The arrays allow the system to store both important numerical and string related data like the names of weekdays, the lengths of months, etc. without having to use further variables and switches. In a nutshell, this means the system now fully recognises the Date, the Day of the week and the month, and these things are fully changeable to the game-makers needs.
  • By fully customisable, I mean it! You can decide for yourself how many days are in a week, what those days are named in your world, how many weeks are in a month, how many months are in a year, how long each of those months are, and what each of those months is called!
  • As a result of the above change, the Time-Telling common event from before is a little bit more advanced; incorporating a calendar. Hence now when you call the common event that tells you the time, you not only recieve precise information on the time, but also learn what the date, day of the week and month are. Example: "Its 12:31pm! And its Tuesday the 15th of February, 2009!"
  • Another slight change: I've supplied a couple of fogs for this release, which are utilised by The Weather Generator to create further atmosphere. Like all of the other, similar, features, you can choose to deactivate this at will.
  • And finally, this version incorporates the mod I did a while back for Grimreaper; more extensive day period decision. The system automatically pulls switches when its Early Morning, Late Morning, Afternoon, Evening and Night. While this neccesitates a chunk of extra switches; you can use these switches as a comprehensive basis for creating fully scheduled NPC's (i.e. they go shopping in the morning, then go to work in the afternoon, then to the pub for the evening, then into bed for night)
Version 5 Adds THIS Stuff!
  • Stupid Bugfix Sorry guys, version 4 caused stupid errors with savegames due to '[]' not being defined. I didn't notice this until about 3 months after I released since I was using an outdated version 3.5 in my game until then. Then again, no-one gave me any feedback on the issue either...
  • Its gone partly Script-a-licious Partly in order to more easily quash the above bug, and partly to tidy things up a bit, the global settings of the DTS now have their own script class, $JT_DTS.
  • Phased Lighting. The main new feature. Technically an upgrade for the ol' Special Light thats been with the system since V3. Are all caves universally dark throughout? Do you see the glow from lava even on the next floor? Do rooms stay dark even with the lights on? No, of course not. Whilst it is not truly possible to model the advanced lighting of modern games in base RMXP, I thought of Phased Lighting to be a buffer of sorts. Basically, whilst Special Light may provide a 'library' of effects, Phased Light takes this a step beyond and offers the user controlled change of circumstances.
    Change a variable, raise the usual flag, and the properties of the area's light change to match your predefined options. Got closer to that lava? Then make the red saturation of the screen go up! Close to a caves exit? Then it should be brighter, right? Phased Light should be able to do this to create even better atmosphere.
    The DEMO only includes the Fire Cavern Phases. Since I can't anticipate how everyone is gonna want to use various phases, its up to you to actually make them and place them into the Tonal Change event. So this is an intermediate feature; you'll need a small modicum of event programming skill to make it happen.
  • World-Map-Time An additional setting for the time flow module thats been around since the beginning. This changes how the time flow operates from the usual frame based operation to a X-Y co-ordinate operation. In a nutshell, this means every time you move a square on a map, X amount of minutes instantly pass; but time is frozen when you're standing still. This is obviously meant for maps like world maps, where simulating the time it takes to travel large distances is beyond the capabilities of the normal time flow engine: crossing a country should take days, not minutes, after all.
  • Torches that deplete over time. I've had this one on the back burner for a while. Its still not up to my expectations, however, since it has a tendancy to lag behind the player. Lazy light, if you like, lol. Still, irregardless, I'll probably include it in this release. Its now much better since I made it based upon SephirothSpawns Torches, and changed some of the settings, fogs and graphics. It also supports flashlights at a remove, but you'll have to enable those manually.
  • Pre-defined days (holidays, holy days etc.) A Calender addition. Though we've had days of the week already, what if you wanted special stuff to happen in your game on certain days? So it happens to be a festival day in the game, and you want a market to be in town on this day only, etc.
    That said, its up to you actually take a special day and use it so, making this also an intermediate feature.
Version 5.1 Just adds the watch feature!
  • Watch/Dynamic Time Window Initially created by robot79796, this allows a clock and calender to displayed as a window at the top left hand part of the screen, which dynamically updates itself, and like many parts of the system, can be turned on and off at will with a switch.

The Watch & Calender window
Withthewatch.jpg


Worldmaptime in action
Worldmap1.jpg

Notice the fairly short (map-wise) distance to the junction.
Worldmap2.jpg

A fair while has passed getting there, as travelling a world map should do.
Worldmap3.jpg


Phased Light in action
PhaseLight1.jpg

PhaseLight2.jpg

PhaseLight3.jpg

PhaseLight4.jpg


More seasonal stuff
Seasonal1.jpg

Seasonal2.jpg

Seasons
Spring
DTSSpring.jpg

Autumn
DTSAutumn.jpg

Winter
DTSWinter.jpg

Night
DTSNight.jpg

Disco! (looks better in motion)
DTSDisco.jpg

Underwater
DTSUnderwater.jpg

Get the !Updated! Version 5.1 Demo from RAPIDSHARE here:
http://rapidshare.com/files/119548714/DTS-V5-1.exe
Or Get the !Updated! Version 5.1 Demo from MEDIAFIRE here:
http://www.mediafire.com/?fue1fzmjify

Want more mirrors? Just ask!

Get the !Updated! Version 5 Demo from RAPIDSHARE here:
http://rapidshare.com/files/118540685/DTS-V5.exe

---------------------------------------------------------
--------Using Version 4 is not recommended: It has an issue with Savegames...---------
Get the !Updated! Version 4 Demo from RAPIDSHARE here:
http://rapidshare.com/files/38525076/DynamicTime4.exe
Or get the !Updated! Version 4 Demo from MEGAUPLOAD here:
http://www.megaupload.com/?d=AWO9KRTM
--------Using Version 4 is not recommended: It has an issue with Savegames...---------

---------------------------------------------------------
Get the !Updated! Version 3 Demo from RAPIDSHARE here:
http://rapidshare.com/files/26498482/DynamicTime.exe
Or get the !Updated! Version 3 Demo from MEGAUPLOAD here:
http://www.megaupload.com/?d=ZYNSY6ZX[/SIZE]
Or get the !Updated! Version 3 Demo from the RMXP download manager here:
http://www.rmxp.org/forums/downloads.php?do=file&id=832

---------------------------------------------------------
The Old Version (Version 2) is also still available on Rapidshare Here:
http://rapidshare.com/files/16561109/DynamicTime.exe
OR here from the RMXP.org Download Manager:
http://www.rmxp.org/forums/downloads.php?do=file&id=481
---------------------------------------------------------

Enjoy; and feel free to use it in your games with credit.:thumb:

NEED HELP?? Here's a F.A.Q.
Q: How do actually go about adding this to my RMXP project?
A: Check out the Addition Guide I wrote:
viewtopic.php?f=7&t=14739&p=457573#p457573

Q: What the hell do all the switches and variables do?!?
A: Lots of stuff! Studying the comments I made will typically tell you all you need to know.
But, if you want a quick summary of what each component does, check this below post:
viewtopic.php?f=7&t=14739&p=514866#p514866

Q: Does it work with VX?
A: No, sorry, it probably doesn't. But I can't check since I've not had the moolah to buy VX.

Q: Does it work with the SDK/MACL etc.?
A: Yes. It hardly involves any scripting at all, so it'll co-operate with these scripting devkit things without any issues, as far as I'm aware.

Q: I have another question not listed here!
A: Fire away. I'll probably answer. But I'm a lazy & busy git, so don't expect an awesomely quick reply. Sorry.
 
Since you are asking for requests can you make different switches for when you go inside different places instead of using the same one? Example:

Instead of a "I'm inside" switch there could be different like;
"I'm indoors, 24 hours open"
"I'm indoors, closed at 1am"
"I'm inside a cave/ruin"
"I'm inside a dark cave/ruin"
"I'm inside a mystical place" (no weather, same light 24 hours)

You know, a switch for any occasion that would rule. (P.S. Phoenix Wright FTW)
 
grimreaper1357;176358 said:
Since you are asking for requests can you make different switches for when you go inside different places instead of using the same one? Example:

Instead of a "I'm inside" switch there could be different like;
"I'm indoors, 24 hours open"
"I'm indoors, closed at 1am"
"I'm inside a cave/ruin"
"I'm inside a dark cave/ruin"
"I'm inside a mystical place" (no weather, same light 24 hours)

You know, a switch for any occasion that would rule. (P.S. Phoenix Wright FTW)

In a way, I've already implemented this as part of the new special light system. It doesn't work exactly as you've described, but nearly.

How it works: For starters, it uses a single variable. Having a crapload of extra switches will needlessly complicate things. It needs just one switch: 'special light is on?'. When it is on, the special light you've chosen (via the value inputted into the 'special light value' variable) will usurp the typical daynight system. The old 'Is inside' switch is left alone. This way, since the weather easily works off of it, you can prevent weather, but use a totally different light effect, by simply turning on these two switches and setting a variable.

Similarily, this also presents a solution to those who want some insides to be 24 hours, and others to be closed at night; as the new special light types you can define can potentially include further conditions much in the same way that the current daynight system looks at the hour of the day.

(P.S. I have no objections to this statement; Isn't that right, Wright? XD )
 
eharper256;176641 said:
In a way, I've already implemented this as part of the new special light system. It doesn't work exactly as you've described, but nearly.

How it works: For starters, it uses a single variable. Having a crapload of extra switches will needlessly complicate things. It needs just one switch: 'special light is on?'. When it is on, the special light you've chosen (via the value inputted into the 'special light value' variable) will usurp the typical daynight system. The old 'Is inside' switch is left alone. This way, since the weather easily works off of it, you can prevent weather, but use a totally different light effect, by simply turning on these two switches and setting a variable.

Similarily, this also presents a solution to those who want some insides to be 24 hours, and others to be closed at night; as the new special light types you can define can potentially include further conditions much in the same way that the current daynight system looks at the hour of the day.

(P.S. I have no objections to this statement; Isn't that right, Wright? XD )

That sounds awesome, when you post a demo with the new "special light"
system can you upload it to a server other that megauploader as well?
The slots assigned to Puerto Rico (and most country for that matter)
are ALWAYS full and it would make it a lot easier on some off us (including me)
if we had an alternate server:thumb:
 
Hmm, the DTS has always been uploaded to Rapidshare before, rather than megaupload since I have an account with them [rapidshare]. The only reason that I used Megalupload on the game demo is because Rapidshare wouldn't accept the upload for some reason (I believe they may have a 100mb limit..)
 
I can't say, I haven't tested its compatability with anti-lag systems; since I don't use 'em.

But seeing as how such scripts work by preventing excess event processing (which my system relies on), at least in my understanding, I guess it wouldn't be impossible.

Try copying Lampchops script into my demo, which is relatively clean of clutter. If it goes belly up on testing, theres your answer; if its fine, then its something else.
 
Right, well, I haven't had much in the way of requests, now have I?

Oh well... as it stands, these are my ideas for additions to Version 3:
- Special Light system to cater for strange light circumstances whilst still registering potential weather and day/night recognition effects.
- Automatic Strobe and Disco Lighting as part of the above.
- Ability to switch certain weather types off (inspired by swiftdeathsk's system). At the moment; this will be just 'no storms', 'no precipitation', 'no frozens', 'only snow', and 'only sandstorm'. Thats quite a bit of versatility, but if more is wanted, it can be done.

So, anything else? If not, I'll have a work frenzy in the next couple of days and just get this stuff done.
 
Hey eharper256 how do I make it so my NCP recognize what day of the year it is? I want a girl to send you on a quest during valentine's day but I don't know how to make a event know what day it is.
 
You could do this with three conditional branches, checking the variables for the day, week and the month. My system kinda assumes each month is always exactly 4 weeks, so just count the number of weeks and days in.

For the 14th of the 2nd month:
Is Variable [Months] == 2?
Is Variable [Weeks] == 1?
Is Variable [Days] == 7?

Obviously its the 2nd month. Then since weeks is actually a value of 0-3, its therefore 1, for the second week. Then it'll be the last day of that week, the 7th one.
 

Bogus

Member

Very nice idea. I tried the demo and found it to add quite a bit of ambiance to everything. I may need to speed things up a bit, as going in and out of buildings causes the lighting effects to slow down. This is terribly helpful though, I've been trying to develop a day/night time system using events, and you just taught me how to do it better. = )
 
To speed things up, just go into the time control common event and alter the number of frames in the 'Wait' commands. Remember that there are 5 different time speeds, and you'll have to alter each one.

The whole instant inside <-> outside tonechange thing will likely be in the next version, as it has been requested before. Sorry for the delay, people, been busy with RealLife TM.
 
!UPDATED TO VERSION 3!

Huzzah! Its finally done! Theres a pantsload of new stuff, so check the first post for updates. It caters to the comments I've so far recieved; adding Three extensive new features: SpecialLight, FastTone and Time Based Lighting. Ever wanted a library of tonal changes on hand to save you effort? Done. Wanted funky effects, like Strobe, Flicker and Underwater? Done. Wanted to have a proper Disco in your game? Yeah baby!

Check it out!
 
LOL I just saw the demo man, I LOVE the disco theme and music XD
Thanks for the demo and keep up the good work.

EDIT: I was so busy laughing I forgot to ask, to implement your system into my game all I have to do is copy the common events and the switches right?
 
Well, this project is still stayin' alive, if you know what I mean, ROFL. :D

Two ways to implement:
A) Copy the common events across. You'll need to reserve switches 387-400, Variables 140-150, and common events 20-26 (and expand your array if neccessary). You'll also need to name the switches and variables manually. Calling them something actually related to what they do would be helpful to you in the future. :D Easier if you already have a detailed database.
B) Just use the demo as a base, change the directory name, and copy over the rest of your project to this. Probably easier if you're starting afresh.
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top