
DarkCLOUDS creates a live, real-time sky for your DarkBASIC Professional games. It renders physically-calculated skies and clouds that move, grow and change, from a clear sunny day to turbulent storms, and spectacular sunsets - all of these can be seen in the space of a few minutes as you take full control of your game's weather.
The sky can take up to 50% of your screen-space, or more - so DarkCLOUDS can make a big difference to the visual quality of a game.
DarkCLOUDS is based on the award-winning Simul Weather SDK, the state of the art in game skies and weather. Now you can have realistic skies at a fraction of the cost with a single plug-in for DarkBASIC Professional.
There are no commercial restrictions for any game created with DarkCLOUDS.
- Physically-calculated sky colours
- Real-time volumetric clouds
- Dynamic time-of-day effects
- Dynamic wind and rain
- High-dynamic-range skies
- Dynamic lighting for in-game objects
- Dynamic cube-map reflections
- Small memory footprint
- Fast rendering

A demonstration program is available that showcases DarkCLOUDS. Download the demo.
The following code demonstrates how easy it is to utilise DarkCLOUDS in DarkBASIC Professional.
Rem Project: DarkCLOUDSample
Rem Created: Sunday, June 28, 2009
rem Please wait
set text font "verdana" : s$="generating clouds...please wait"
center text screen width()/2,screen height()/2,s$ : sync
rem init app at 60fps
sync on : sync rate 60
rem half-fill the sky with clouds
dc set cloudy 0.5
rem set sky brightness to 1
dc set brightness 1
rem set wind to 30 mph at 270 degrees (heading west)
dc set wind 300,270
rem init with texture number 1, and number of keyframes per day
dc init 1,10
rem starting at 9am
time#=17.0
rem the update command creates the cloud texture
dc update time#
rem show texture 1 as the backdrop
texture backdrop 1
rem create a 3D object in the scene
load object "pelican.dbo",1
scale object 1,1000,1000,1000
set normalization on
rem place camera for best view
position camera 0,50,-200
rem Main loop
do
rem step through the day
time#=time#+100.0/(60.0*60.0*60.0)
rem update clouds
dc update time#
rem rotate the object
yrotate object 1,a# : inc a#,0.1
rem apply a real-time clouds as a cube map on the object
dc make cubemap 128,2,3,4,5,6,7
set cube mapping on 1,2,3,4,5,6,7
rem update screen
sync
rem end loop
loop















