Enviro-Torque 2.0 is a complete dynamic weather, and day/night environmental engine for the Torque Game Engine by Garage Games. It systamtically manages all of the (otherwise) static environmental effects built into Torque, creating a more immersive and realistic simulation.
This is an add-on resource for the Torque Game Engine. It is a ground-up re-design/rewrite of an earlier concept, and will be implemented primarily in C++.
The system is implemented on a modular framework. This allows modules to be easily added, removed, or re-implemented as desired without affecting other modules. More impressively, modules can conditionally interact with other present modules without being directly coupled to or dependent on them. Modules can also publish data to a common bulletin-board for others to read with out making function calls to each other directly.
The calendar is a rather simple module that adds a sense of date and time to the simulation. The calendar can be completely customized including day/month names, months in a year, days in a month, etc.
Currently it only prints messages to the chat-console, however, one could add a clock GUI without haveing to write the calendar math. It could also be used for triggering special-events or in-game sequences only at certain times of day. The WeatherZones module already uses the calendar for seasonal weather patterns (eg. snow in winter). Later the calendar will be refferenced by the celestial module so the two are in sync with each other.
The Weather Engine dynamically manages numerous weather effects to create a realistic environment. Over time it randomly adjusts an "air-pressure" variable. As it drops, clouds will fade in, the wind may pickup and rain or even snow will start to fall. If the pressure goes up, the reverse will happen.
The first draft of the weather engine is already complete. It is a rather large finite-state-machine, but is very customizeable and it gets the job done. Future revisions will likely include some kind of text configuration file.