I’ve been learning blueprints in Unreal Engine 4 and they’re fantastic!! It’s amazing how quickly you can get prototypes up and running.
Anyway, I’ve specifically been trying to create a more “full featured” time of day system for an open world game idea I’ve been toying with.
It’s still in early days but the features so far include:
- A fully customization calendar system that keeps track of the current game second, minute, hour, day, month and year. Great for scheduling events to run at certain times of the day, or months of the year etc.
- Fully dynamic sun and moon lighting as well as static ambient lighting (skylight). However the mechanics of the blueprint ensure that only one dynamic light is ever active at a time, for performance reasons. So if both the sun and the moon happen to be visible in the sky at the same time, the sun light trumps the moon light, obviously. When the sunlight fade out, the moon light fades in and the gap between the two is filled solely with the ambient lighting. So far this system seems to work well but I still need to fine tune the curves of all three lights.
- Proper moon phases from full moon to new moon. The moon phase also affect the amount of moon light in the world. Obviously a new moon doesn’t reflect any light into the world.
- User definable latitude and longitude of the world which affects the orbit of the sun, and a separate set of controls for the rotation axis the the moon and the orbit speed of the moon. For example you can set the moon to complete two orbits in a day or whatever you like.
There is still a lot to do such as the sky coloring and of course clouds. I have done some preliminary work on the cloud system but it’s still very early days and the cloud layer was switched off in the video below.
The goal is to make a nice looking “default” time of day system that also allows for a lot of artistic control if needed.
At the moment it’s a bit of a balancing act between curves and algorithm to control everything.
Ideally I’d like to get everything working as defaults purely with algorithms and then just use curves for artistic overrides, but I’m not quite at that stage yet.
Anyway here is a very rushed video showing some of the features so far. Apologies for the quality of the video. I was really rushing it to keep the video size down because I have an absolutely terrible upload speed and didn’t want the video getting too large.