Sunday 23 November 2008

Games Scripting 2 - Overgrown City Assignment

For this assignment I was told to create an 'overgrown city' style environment in the Unreal Editor, use the matinee tool to film trailer Esq camera sequences and script bot AI, enabling them to walk around the map and interact with each other. I was told at the beginning of the assignment to use 'I Am Legend' as inspiration for the environment, with a desolate looking city scape for characters to move around in. The idea of this assignment was to use the tools at hand, create my own 'First Person Shooter' style PC game and pitch it in the form of a short movie.

At the beginning of the assignment I decided not to attempt at creating something out of my reach, only having two weeks to finish the task, not knowing much about scripting within Unreal and having many other assignments in parallel to this one. Using skills previously learnt in the last assignment, I decided to create my level and camera paths first before moving on to the area I was most reluctant about, the AI Scripting. Before creating my level however, I decided to plan out the map on paper, outlining were I wished to take my scene and how to build the stage.


I tried hard to add detail to my level, attempting to make it as professional looking as possible. As an example, I gave certain lights a different 'tint' of colour, which helped make my level seem more realistic. By adding a light and changing the 'LightColour' properties, I edited certain lights to have a blue tint helping areas of my level seem colder, while one or two lights placed behind fire emitters had red tints, making that area of the level seem much warmer than the rest.
Fire emitters and Spark emitters are also present, helping make my environment more interesting.

I used the fire emitters by placing them on the map from the 'Actor Browser', editing the settings to add in how much smoke particles I wished to rise from the flames, etc. The fire and spark emitters helped give my city an overall 'run down' feel, with some objects in the stage broken, such as street lights and cars.
To give my level an 'overgrown' look, I added in certain textures from 'Arboa Architecture' and 'Humanoid Architecture' giving buildings vine covered walls and placing static meshes, such as grass, around the environment were I saw fit. I wanted to give my level a dark and eerie feel, and I felt I did this well by using the lighting to my advantage and adding a spooky sounding audio track.


Whilst filming in my level, I decided to try and use as many dynamic, professional looking camera shots as I could. I did this by varying my shots, having low, high, panning shots and so forth. I also made sure to include Bezier Curve paths for cameras to move around, allowing me to curve the camera as it moved around the environment. To focus on actors running around my environment I assigned cameras the 'Look At Actor' sub action. This focused all of their attention on the character moving around the screen.


At the end of the filming I also added in a overlay effect for my credits, of which I saved a custom texture as a .TGA file in Photoshop and added a 'Camera Effect' as a sub action to the final camera of the footage. Overall, I very much enjoyed adding cameras in to my level, having a good variety of different shots making use of 'Look at Interlope', 'Look at Actors' and 'Fade In, Fade Out' sub actions to name a few. The problem however, is I felt I focused too much time with my camera work than performing scripting for my AI.


When performing my scripting, I came across a large amount of problems. Many times, I would end up confused over a problem within my script, only to find the issue was with something that didn't make sense. For example, when allowing my AI to fire, I had to implement 'Shoot Target' then 'Wait for Animend' and finally 'Shoot Target' again rather than 'Stop Shooting', a command that has been given to us to use by both the Unreal Editor book and previously used Tutorials. This caused hours of problems, with my AI bots not stopping shooting, despite me using the 'Stop Shooting' command.


I now feel that in my level I should have implemented many more bots, however not having previously touched the editor before, let alone scripting within it, I wished to play it safe, creating something I felt that I could still achieve. Unfortunately, compared to many other students footage in class I felt that mine proved extremely lacking, despite it taking hours to only get two AI bots moving. I felt that, if I would have had more experience using scripting inside the editor before I could have used my time on this assignment much more wisely, and improved my overall product, which I felt was disappointing.
However, despite this I made sure to include everything asked in the assignment brief, with scripted AI Bots moving around and interacting with each other in my overgrown city environment.

I did encounter some issues however, such as characters walking through floors, which I now know was caused by re-sizing the AI characters height and widths. Another problem I had was the 'taunt' actions. My AI Script was programmed for characters to taunt, however when the footage was played in the level they would do nothing but stand in a static position. I could not find a reason for why this was happening, and still do not know as of now.


Overall, I wasn't as satisfied with my finished product as I had hoped to be. I felt that the main problem with my piece was the fact I concentrated more on camera work than scripting itself, and that I struggled in getting AI to work. I think my level itself could have been larger, however I decided to not spend so much time working on the creation of the environment and use the most part on scripting the AI, which was good as the scripting gave me the most problems.

If I were to do the assignment again, I would now be much more confident in adding more NPC characters than in my final piece. I now know the basics in how to script and a good deal of problems that occur and how to overcome them, such as the 'Shoot at Target' command issues. I felt my trailer was taken down the wrong direction, not having much action included at all when compared to other students animations shown in class.