Thursday, 26 March 2015

Project Flyer Shooter: Ewan Armstrong Game Group Project


For the Spring submission in the Games Encounters unit we have been tasked with creating a video game within the Unity engine. We set about getting into groups of 3-4 people and were given the specifics of the game.
Our game MUST include:

        1. High Score 
             2. Splash Screen 
   3. Enemies
4. Flying 
   5. Shooting

Before we set-up the jobs of each member we all began making our now concepts for each piece, I mainly did concepts for the player ship and environment.


This was just a series of quick sketches for the ship and I asked the others for their opinions on which model I should develop on.




In the end I came up with this preliminary sketch of the player ship, although this wasn't used once Jason took the job of designing the ship the final model has some aspects of this design in it, namely the "hover" jets protruding from the side.




These sketches were preliminary sketches of what the environment could be like complete with obstacles. In the beginning we had intended to make the map circular and the player would loop all around as the Infinite Runner but when it came to coding it we realised it was beyond our level to make so we had to scale it back.

My job for the project was the lead Environment artist and for this I created a few concepts for our game using Mudbox and Photoshop. We new we wanted the environment to be based off a valley/canyon, so to get a clear view for concepts I created my own mood board. 


I then set about creating concept pieces for the environment and having been taught how to use Mudbox recently I decided that to better present my concepts I would model them in Mudbox.

Model 1.

Model 2.

Model 3.

I really like how these came out for the environment and so did the others but we all decided that the art direction we wanted to go towards for the final model was with the first model. I then decided to make a concept piece in Photoshop.


At this point the one sheet was put together by Jason that featured art from all of us and a brief description of our game co-written by myself, Jason and Alex.




We then got started on the modelling stage of our project, being the lead environment artist I created all the models for the environment. The initial plan was to have a game where 3 or 4 models would be instantiated in the scene randomly and this would repeat to create the infinite runner aspect whilst changing the environment so that it isn't constantly repeating the same models in the same pattern. So for this I created 3 separate models for the environment, asking for the opinions of the other members of my group before modelling the next. Each are at the same dimensions and start and end at the same point so that they could transition from one to the other without noticing any breaks in the models.

Figure 1:
 Figure 2:

In the end we decided on focusing on one environment model for the final piece and we all decided on Figure 2.

Figure 3:

We decided that to make the world space a little less dull and as a game mechanic we would include obstacles for the player to avoid that once collided with would either damage you or completely destroy you. For this I looked at references of plateau's and rock stacks but decided to model our obstacles after this image:


and so we had our obstacles a pair of rock stacks. To make the models flow more naturally and feel a little less man made I imported the Maya file into Mudbox and played around with the sculpt tools to round out the edges and make them a bit more random in design as well. I like how they came out and I also like the design of them thinning out towards the top where they have eroded by the wind and other sources.


Jason created an animation that would be played once the player starts the game and would lead directly into the game itself. He asked me to create some scenery based around boulders and so (with Jason's input) I made this pile of rocks and boulders. They were not textured in Mudbox like the other models I made but instead had a simple material attached to them inside Unity.


With my models finished I went into Mudbox with the rock stack model's and and the chosen environment model and began texturing them. 


First off were the rock stack's, I like the outcome of these textures they have the rock feel I was going for and their coloration is spent on to what we were going for in tees of our game's aesthetics. One downside of these textures however is that the models are fairly low poly, which in some respects is good as they have smaller file sizes making it easier for the game to spawn them in however it also means that I had fewer vertices to play with when texturing in Mudbox.
In Mudbox the level of detail one could apply to a model is influenced by the vertices count and thus when I tried to paint with stamps and stencils very little actually came out of them, regardless I still feel these models came out well.


Secondly I textured the environment model, but before that I used the sculpt tools of Mudbox to make the model feel more natural and look less man-made than it had appeared to be when I modelled it in Maya. One way I did this was by using the sculpt tool to lower the centre of the canyon bed, this made it appear as though the canyon was carved out not only by glacier (as is most likely) but also that a river once flowed through the canyon and has since dried up. Because of this aspect I also textured the canyon bed with some green to make it appear as though foliage is growing there due to the fertile soil, but the rest of the model was textured to be dry and barren hence the darker shades of brown. 
I think this came out really well, again like with the rock stacks I had a little issue with the low number of vertices to play with whilst sculpting and texturing but I like it and so did the others.


And here is the model put together with the rock stacks in place in relation to the environment model. All there was left to do know was to export the models as an FBX file for use in Unity.


With the model stage complete I could move onto scripting and the most important script I contributed to this game was the Infinite Runner script. A script where my environment models would be instantiated in the scene and translated behind the player, creating the illusion of the player moving forward. 
This script in particular creates a private list of the instantiated prefab's the first being called "first road" and the last being called "last road" when "first road" is translate to a certain position behind the player (in this case: if(first Road.position.z <- 50f) ) first road is taken out of the private list,  is destroyed, the next prefab along becomes the new first road and a new "road" is instantiated where last road was initially instantiated and this repeats.


With the Infinite Runner complete I moved on to creating the script for the player. This script includes a boundary that prevents the player from going to far up, down, left and right, includes code that allows the player to move on the X-axis and Y-axis and instantiate and shoot a bullet prefab.


Another script I made was a simple script, it was simply On trigger enter destroy game object. This was attached to a cube without a mesh collider which was a child of the player model, this meant it stayed with the player. The function of the script is to destroy any and all game objects which pass through it, namely the enemy clones that aren't killed and the enemy bullet clones.


This was my final script for the game which had some use in the final game, it instantiates an explosion prefab upon collision with the player and was designed to destroy both the player and enemy that collided with the player. It was not used but the enemy explosion prefab instantiate was used in a separate script, final script for the enemy prefab.

No comments:

Post a Comment