For a lot of the environmental animations (specifically the foliage), I’m using Speedtree. It’s just a fantastic tool, and it’s extremely affordable. It lets you make trees and bushes using whatever meshes you specify, and then you can really easily animate the whole thing. It’s really powerful and flexible, and UE4 supports it natively. I can’t speak highly enough of this tool – especially for indies.

Lighting

Lighting is probably the biggest way I try to tell the story of an environment. It sets up the feel of a place, and it’s so critical for a game like mine in establishing the volumes and local context of structures – what items are nearby, what is their depth into the screen? I think I’ve nearly spent about as much time coding and setting up the lighting as I have creating the 3D assets for the game!

It’s definitely a benefit to my project that I’ve chosen an isometric camera — that lets me use 100% dynamic lighting, so I don’t need to bake anything in, and it’s always entirely consistent from frame-to-frame. The newer builds of UE4 also have light caching, so it’s even faster than ever. This means I can iterate on lighting so much more quickly, but also that I naturally don’t need to feel hemmed into a set of predetermined lighting configurations. So I’ve been able to add in dynamic lighting and weather systems really easily, and I just make a new set of curves for dynamic, ambient and fog lighting setups over a single day cycle, and I’m good to go!

Car System

This is actually an ongoing issue for me. I’ve had two branches of Dead Static Drive – one with my own hand-coded vehicles, and the other uses the built-in UE4 vehicles, which are based on PhysX. Right now I’m using the PhysX vehicles as the ones I’m demoing, but there are a lot of parameters that need tweaking to get a stable result, and there are some pretty substantial issues that I will need to address myself before release. Issues like how to deal with collisions with pedestrians and other vehicles, car mass issues when impacting each other, and responding to overlaps with non-simulated objects: right now UE4 tends to fire vehicles off at high-speed after overlaps, which is hilarious once or twice, but demoralising as a dev.