Jump to content

View more

Image of the Day

Boxes as reward for our ranking mode. ヾ(☆▽☆)
#indiedev #gamedev #gameart #screenshotsaturday https://t.co/ALF1InmM7K
IOTD | Top Screenshots

The latest, straight to your Inbox.

Subscribe to GameDev.net Direct to receive the latest updates and exclusive content.

Sign up now

Real-time day-night cycles in Assassins Creed

4: Adsense

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
2 replies to this topic

#1 SmooBG   Members   


Posted 30 January 2014 - 09:57 AM

Hi Guys,

     I'm an animator, and I'm trying to wrap my head around real-time day-night cycles, and how they are executed in games such as Assassin's Creed.  Obviously the day-night cycle changes aren't rendered, animated frames (which is how I do things).  So how is it done?  Some sort of scripting?



#2 TheComet   Members   


Posted 30 January 2014 - 11:13 AM

The more complex ones are definitely scripted. There are many ways to approach this.


Usually, the simplest thing to do is have two skyspheres, one with a night sky texture and the other with a day sky texture. To switch between day and night, you adjust the transparency of the spheres to fade from one to the other. The spheres need to rotate slowly, depending on what time it is, so the sky appears to move. I can imagine this still being achieved using only one animated object, but most of the time the rotation and fading is scripted rather than animated.


This can be combined with a light source positioned at the sun, which also needs to have its colours and brightness adjusted according to what time it is. For example, the sun would be mostly white with a tint of yellow during most of the day, and be bright orange/red during sunset and sun rise. The moon probably also uses a light source, which would be a deep blue colour during most of the night, and transition into white during "moonset" and "moonrise".


Some games combine fog to help with the transition.

Edited by TheComet, 30 January 2014 - 11:15 AM.

"I would try to find halo source code by bungie best fps engine ever created, u see why call of duty loses speed due to its detail." -- GettingNifty

#3 Matias Goldberg   Members   


Posted 30 January 2014 - 12:09 PM

There are a ton of ways render sky and transitions. But basically boil down to different procedural generation techniques vs blending baked skies.


Though blending two skydomes works, like TheComet said; most implementations procedural generate the sky (Google "atmospheric scattering").


Since you come from an art background, I'm just going to say it's a lot of math stuff behind it, having a cool blue sky with a sun in it.

Perhaps of interest to you is that the game will usually have a set of key settings for each time of day (i.e. sun power, sun colour, and optionally different mie & rayleigh scattering parameters although that is cheating/artistic-license since technically those two params should remain unchanged regardless of time of day) and blend (interpolate) the parameters based on the current in-game time.


Atmospheric scattering doesn't cover clouds, so clouds are rendered separately: could be as a extra layer(s) of noise textures, using baked skyboxes, using oriented sprites, or using volumetric techniques.

Often clouds are rendered with a special shader to do some math to be coloured by the sun while still looking real.


In simple words, it's really technical stuff; but there is no one unique way. I was just reading yesterday slides from CryTek (starting page 108) where they were telling they tried 3 different cloud rendering techniques until they were happy (and they didn't end entirely happy).



Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.