Heaven Above Hell (Final)
Updated a year ago
Heaven Above Hell - Unity Neon Challenge (Final Submission)

Final Submission


I am a student of Master in Computer Science - Artificial Intelligence at University Malaya, Malaysia. I develop games, animations and graphics as a hobbyist . I participated in this competition out of my own passion and also to learn the new tools provided in unity 2017.


The theme is set far in the future when all the earth's resources are depleted, the eco-system is destroyed and the earth itself has become unfit to live. The humanity moved towards skies on floating cities as new home.

Screen Shots


After some rough ideas and brain storming with my friend. I created a quick matt concept scene.
The initial concept design was to show a barren desert landscape with destroyed building, dried riverbanks e.t.c. to indicate the existence of abandoned civilization. The desert landscape will be filled with intense sand storm to add more drama to scene.

The concept of floating city was inspired by different artworks found on internet. To give a more futuristic and calm look and feel I proceeded with the Hemispherical shaped city designs

The inner of the city was initially designed to give a very clean, futuristic and peaceful effect. i decided to design an Island based city with fresh clean water and very green city.

Production Process

1) Production Process - City Structure Modeling Process

Once the concept was finalized, I decided to use as much pre-built assets from unity store as possible. As it would save me a lot of time. However some model i had to do myself to match with the concept design.
The first thing in the production process was to come up with some good design of the floating city so that it look more futuristic. I got suggestion from my friend to keep the Dome covering based on voronoi design to give more organic feel. I first created design in 3D max.This design idea was not very practical, it ended up with over 200,000 polygon in order to keep a good enough details for different closeup shots.
Later I changed the dome design to cellular design structure, which was both less in polygon count and look better it was it covering less of the inner city details.
Next created the model for thrusters which will keep the city floating in skies, the initial idea was to add a lot details on the thursters of flowing liquid through the pipes but later due to lack of time, this part was skipping but the pipes were still kept in model. The power generation plant was modeled at bottom comprising of four pylons revolving around the central generator coil .

2) Production Process - Terrain Creation

Once the city structure was finished, I decided not to go with any other modeling as it takes a lot of time. For the desert Terrain creation I used Unity Terrain Engine. I searched for seamless desert texture from online search engines, then generated the normal map using Nvidia Normal mapping filter for photoshop .
I used a script called heightmap from texture from unity community to generate a desert landscape using an simple generated desert like height map and the applied the desert texture with normal map on top. I adjusted the height level of the terrain and did some clean-up of the terrain using to Unity terrain engine.
To show the vastness of the scene I added an infinite plane just under the terrain to give the effect of vast expanse. I used the same texture as the desert to make it look seamless.

3) Production Process - Terrain Details

the initial idea for terrain was to fill with many debris and old broken structure to give the feel of an old lost civilization, but due to lack to resources and time I was not able to add enough details so I decided to start with large boulders and rock spread across desert and if found more time will add further details. (which I couldnot :) ... ).
I used the Rock and Boulders package from Unity store. To match with theme of the scene I changed some texture tint more towards desert color.

4) Production Process - Post Processing

I used the post processing stack from the unity assets store add more dynamics to scene and give it a more dramatic effect. I tried and tested with a number of combinations of different effects until I was able achieve the desired effect.

4) Production Process - Desert Storm

To create the desert storm particle effect, I used Unity essential package. I used the pre-build dust storm particle system and tweaked different parameters to match-up with the scene. The adjustment of right density of the storm took a lot of time, and still need improvement. Because my computer is quite old and cannot support much heavy graphics I had to reduce the number of particles.

5) Production Process - City Structure Import in Unity

I imported the city model into Unity without any materials applied. All the materials applied here are using Unity standard materials and shades. I also adjusted the level of ambient occlusion to best adjust with the city structure.
I kept the city structure just above the sand storm in clean air. To match with the theme of story.

6) Production Process - Creating Thursters

The Particle effects for thrust was created from Unity standard assets pack. The after burner particle system was modified by reducing number of particles and changing the color over life time.
Besides Smoke prefab from the Unity standard assets pack was also used to give a better feel of thrust. Again some parameters were modified to suit the scene and number of particles were reduced

6) Production Process - Creating Electric Sparks & Currents

The electric sparks were created by following an amazing tutorial on Youtube. Some changes were made from the original tutorial to give the feel of electrical orbs.The Electric lines from the Rods to generator cores were also created by following the same tutorial set.

7) Production Process - Spinning pylons around the generator

I wrote a small script to rotate the electric pylons around the generators.
using System.Collections; using System.Collections.Generic; using UnityEngine; public class cityController : MonoBehaviour { public GameObject power1; public GameObject power2; public GameObject power3; public GameObject power4; public GameObject generator; public float spinSpeed = 30; public float rotationSpeed = 20; public float genSpeed = 500; // Use this for initialization void Start () { } // Update is called once per frame void Update () { power1.transform.Rotate (Vector3.back * Time.deltaTime * spinSpeed); power2.transform.Rotate (Vector3.back * Time.deltaTime * spinSpeed); power3.transform.Rotate (Vector3.back * Time.deltaTime * spinSpeed); power4.transform.Rotate (Vector3.back * Time.deltaTime * spinSpeed); generator.transform.Rotate (Vector3.back * Time.deltaTime * genSpeed); power1.transform.RotateAround(generator.transform.position, Vector3.up, Time.deltaTime* rotationSpeed); power2.transform.RotateAround(generator.transform.position, Vector3.up, Time.deltaTime* rotationSpeed); power3.transform.RotateAround(generator.transform.position, Vector3.up, Time.deltaTime* rotationSpeed); power4.transform.RotateAround(generator.transform.position, Vector3.up, Time.deltaTime* rotationSpeed); } }

8) Production Process - Inner City Creation

Following the concept designed earlier, the city was created as in island in the middle of fresh water lake. The water was created using unity standard assets - Water pro day time prefab. For the island another terrain was created and this time i just paint burst tool to elevate the regions to create a small island in the middle.
I used unity standard tree assets to create the dense tree forest around the city. The City building was quickly build in the 3D max using the extrusion tool. Materials were assigned on the unity and kept reflective. Reflection probe was used have better reflection. Soft fog was also added to create a better feel of depth.

9) Production Process - Space Craft

I used a low-poly starship (free model) from the unity assets store. I had to use light weight and low-poly model because my computer is quite old and cannot handle high detail models. I added two after burner particle prefab from the unity standard assets package.

Unity Cinemachine - Animation

Learning Cinemachine

This the main part of the whole project, After setting up every thing in the scene I started working on the cinemachine. It was the first time for me to use cinemachine, and first time for creating any cinematics inside of unity. So very first thing I did is I took tutorial from an online video on youtube and unity tutorials for beginners.
I spend one whole day in understanding the process and different features available in cinemachine.

Cinemachine transition - Fading into Black

One of a very cool trick the tutorial above showed is to used the UI image as the transition and fade effect by controlling the opacity of the image in the animation track. In most of the transitions between multiple virtual cameras I used this effects which fits well with my theme.

Cinemachine Overlayed Text

I created overlayed text using the same canvas. The text helps narrate the story and the theme of the animation. I adjusted the opacity of the text over different instances in the scene similar to that of image.

1) Setting-up First Dolly Camera

my first Camera in cinemachine was setup to pan along the surface of the desert. I kept the rock at the front as the look-at object for the dolly camera and pan (video at the top). I set the depth of field to focus on the target object this create a very cool effect of blurred foreground.

2) Setting Up Second Dolly Camera

The second dolly camera was setup to have a view of the complete desert view to get the look and feel of the harsh conditions on the land. I increased the opacity of sand storm particles for this scene to create a more dramatic effect. The Cine machine camera for this scene was not set to target any object rather set to follow a static rock which gave me much more freedom to move, rotate and pan camera along the dolly trail. I give more cinematic effect I adjusted the FOV of the camera in the animation timeline as the camera sweep across the desert.

3) Loot At Camera -SpaceCraft

The third camera was set to look-mode for spacecraft. The motion of spacecraft was defined in the animation time. The Spacecraft was setup to fly just above the boulders and fade away in the dust storm.

4) Follow Camera - Space Craft

The next camera is set to follow the space craft as it flies above the desert. the Dead zone and the soft zone for this camera was kept a bit more tight compared to other cameras to keep a more strict follow of the aircraft.
this Camera is overlapped in time with the next camera to give a smooth transition as soon as the city comes into view for the first time.

5) City External view Camera

This camera to locked at the city center from top view so that desert can be seen in the background. In this scene I reduced the intensity of the sand storm particles so that desert profile become more visible from the distance. The transition between this camera and previous camera is done by overlapping over about 20 second to keep the transition smooth and dramatic.

6) City Internal - Dolly Camera

This is the last camera setup. The Camera is set to look-at the city center and offset is adjusted at different position over the time line. The Camera starts with a very closeup view of the city through the green forest show a contrast with the dead world outside. The camera dolly along the circular track moving away from the city touches the water surface to show the big lake and then move away from the city for external view which end the cinematic.


I used the more classical sound track for this video and the animation frames are adjusted with the rise and fall of the music. Its a pretty old song by Junoon band.

Assets, Tools & Plugins

Unity tools, assets from assets stores and plugins saved me a lot of time, without all this it was impossible to even finish the whole scene on-time , apart from cinematic effects which itself is a completely different story. Following is the list of all the unity assets, plugin or tools used while designing the scene. I have also mentioned some external software and tool used in the project .

Unity Assets

  1. Unity Terrain Engine
  2. HeightMap from Texture
  3. Rock and Boulder
  4. Unity Post Processing Stack
  5. Unity Standard Assets - Particle System
  6. Reflection Probes
  7. Particle Systems
  8. Unity Standard Materials and Shaders
  9. Unity Cinemachine
  10. Low Poly Starship

Other Assets

  1. 3D Max
  2. Photoshop
  3. InkScape
  4. Nvidia Normal mapping filter

WIP -Log

January 16th, 2018 - Submission

  • Start final documentation
  • Finalizing the Cinematics
  • Adding Text effects and final logo.

January 12th, 2018 - Sounds and animation

  • Selection of Sound and matching animation with sound

January 3rd, 2018 - Cinemachine

  • Tutorials on cinemachine
  • Testing with dolly Camera
  • Animation tracks for different objects
  • Camera setup
  • Post Production finalization

January 2nd, 2018 - SpaceCraft & City

  • SpaceCraft model setup
  • After Burners
  • Inner City modeling in 3D Max
  • Inner Terrain Design
  • Trees
  • Lake setup

December 27th, 2017 - Particle Effects

  • Addition of different particle effects in Scene
  • Sand Storm
  • After Burner
  • Electric Sparks
  • Scripting for Electric Pylon movements

December 23rd, 2017 - Desert and Landscape

  • Creation of Desert landscape
  • Rocks and Boulders setups

December 20th City Structure

  • Modeling of City Structure in 3D max

December 17th , 2017 - Started Project

  • Concept Design
  • Reference art work
  • brain stroming
  • searching for assets and tools


I really enjoyed my time in creating the scene it was a great opportunity to try new tools and build new skill sets. I would like to thanks all my friends for their support , their help and all encouragement they gave me in finishing this project. :)...

Atif Ahmed
Software Engineer - Programmer