Thomas Doukinitsas
INTERACTIVITY: Further Developing the Game

INTERACTIVITY: Further Developing the Game

The first thing i decided to implement was a 360 degree sky, this would allow me to use a perspective camera, and implement a few cinematics. The first thing i did was make a texture matte painting in photoshop.

Because i wanted to have a 3D scene with a free moving camera, i had to create a skydome.
However, since all surfaces are one sided in unity, i had to invert the normals. Then i just exported the model as an FBX.


The mesh was then imported and a unlit textured material was added

Also, the lights were changed to reflect the new background:




Animations were added to the camera, and animation changes were called through the script using the CrossFade function (found through the Unity API website)




After this i decided to create an introductory cinematic. I created a new scene, added my objects and then added individual animations to each object. I also created a "Start Game" 3d object in Cinema4D, and baked the textures on to it to make it easier to import.


When i imported it i attached a script to it so that when it was clicked on or touched it triggered the animations.

Also, to load the main level i created a script that used two gameobjects and their colliders, so that when they hit eachother, the level stored in the script's variable would be loaded. These two objects would collide at the right time using an animation.

I further went on to add some image effects imported from Unity's built in libraries. The main ones i used was Depth of Field, Chromatic Abheration, Vigniette and Lens Flares

In the main level i also added a highscore script. This was done by comparing the Score to a HighScore variable, and then if the score was bigger, it would be assigned to the highscore. The key to making this work properly was to make the HighScore variable a static variable, so that it wouldn't reset when the game restarted.

After testing out the early versions of the game, i found it quite abrupt when a cinematic would finish and the game would start. Therefore i decided to add a screen that would state some controls, objectives and a rough storyline. This was done using a simple quad in a new scene. A script was added to this quad to load the correct level when the mouse was clicked


Another cinematic was created to introduce the boss fight, and it was made in a similar way to the previous one. I changed the sky to a darker red color to indicate a scene/difficulty change. Also during the cinematic a transition texture is used to help transition between levels.

The boss fight level uses a MathF.MoveTowards function so that the enemy follows the player on the x axis, but with a delay.

Further modificatons were made to a copy of the GameController scripts, and some other custom scripts to make the enemy bolts kill the player, make them shoot in intervals, make the player bolts cause damage to the enemy ship, a health variable for the enemy and another text object to display the enemy ship.

Lastly an Ending level was added with an explosion to indicate that the enemy ship had been destroyed. However the builds may have a bug that causes that level not to load (whilst in the editor it works fine)

I also added some basic touch controls for the Android build, however they are sill buggy and need improvement.

This is what the final game looks like:


And this is what the mobile version for Android looks like:

SELF-EVALUATION
Overall it was an interesting experience and extremely valuable learning how to script in C# as i previously felt uncomfortable with it, and it has put me off using game engines such as Unity or UDK. Now i feel a bit more confident with this area and feel like i will be experimenting with game engines allot more in my spare time. The shooter game i created still has a few bugs that need to be worked out, but for the amount of time we had considering we have other projects running in parallel i'm happy with the result.

Unknown

Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.

0 comments: