About the Game

About the Game


'Steam Punk Robots' will be an immersive 3D game designed to run on Mac/PC platforms. It will be compiled in Unity and coded using C# and a Plugin called Playmaker.

The theme of the game is steam punk; it features a playable character called 'Rusty', who is a Foreman in charge of the worker robots working on the space station. While working one day, small objects start to land on the station. They turn out to be transmitters transmitting a signal that turns the workers against Rusty so they can take over station. The only chance Rusty has of saving the space station and himself is to find and decommission the various transmitters controlling the worker robots, and find out who is sending the transmitters and stop them.
As the player, you take control of 'Rusty' and must work your way through a multitude of engaging levels and tasks whilst avoiding various obstacles, and the worker robots. Each level will feature three different routes of difficulty and levels can be completed by finishing any one of the routes. This gives players of all abilities the chance to play through and complete the game, whilst not impacting on their enjoyment.
Each level will have items to pick up that will aid you on your mission to complete the game. Some of these will give the player a performance boost, whilst others will be crucial to completing the level.
All the characters within the game will be created to be appealing to players of all ages. Our aim for the game is to be able to get children and adults to play it and enjoy it equally. Great care will be taken in designing characters and levels that are complicated enough to engage adults whilst simple enough to encourage children to play.

Sunday, 24 March 2013

New blog/new tasks!

This week, I had a meeting with my dissertation tutor to discuss where the project is heading. It was recommended to me that I start up a new blog and transfer over all of my work on the project thus far. This is just to make it clearer for everyone to read.

Also, I've set myself 3 essay tasks to write on the module. Again, this was recommended to me by my tutor to complete. They will be theory into the work i have completed on the module so far and will form part of my final submission.

A draft copy of some essay research is a few posts below and over the coming weeks I will be working on the other essays, uploading updates as I go. For now, I'll be transferring everything over and I will post a link to the new blog on here when it's complete.

Written by Phil

Sunday, 17 March 2013

Research into game music/next weeks task


My reading for this dissertation has mostly been on A.I. behaviours, and how important it is to get right within a game. Because of this, I thought I would research another subject that I have completed, Music and effects in games.

This has been a topic that I have recently completed on both my dissertation and group game. It was clear in both games that there was a lack of atmosphere, part of which was caused my a lack of music and sounds.

'Music not only gives you something good to listen to while playing, but when done right creates an emotional connection to the game that can’t be replicated any other way.' (1)

Like the purpose of all great music, it's supposed to change your heart rate — to move you and make you feel.  (2)

The quote above emphasises what I feel is important with music in games. While it is something, which isn't necessarily appreciated by a majority of players, without it a gaming experience would be empty of any character and substance. Music, when done correctly, engages players without them even realising.

Firstly, I looked into a range of games. Some where similar to this dissertation project and others were completely different. I wanted to get a feel of what sort of music fitted in with what style of game.

Below is a video showing a users top 10 best songs from the video game, 'Zelda: Ocarina of Time'. This music is some of the best I have ever heard when playing through a game. It fits in perfectly with the surroundings the players find themselves in. 



The first song is taken from a carnival section of the game. The player automatically gets drawn into the atmosphere of the fun bonus area within the game by the up tempo, chirpy music.

The second song comes from an area of the game that is mysterious and quite challenging. Puzzles need to be solved and enemies defeated in the temple, set in the middle of a large desert. The music gives the feel of an Arabian desert with plenty of intrigue. Fantastic!

The third song is from the beginning stage of the game. At this point, the game world is a happy place and everyone around you is friendly. You can tell this by the quick, lively, lighthearted tune.

The fourth song is taken from where the player first learns to ride a horse. It's a ranch where everything happens at a slow moving pace. It's a friendly place with farmers going about their business in their own time. Again, this is perfectly reflected in the music. It's a lot slower than the previous tunes and captures the atmosphere to perfection. The melody also has significance within the game, with the player having to play it on their ocarina it in order for their horse to return to them.

The forest temple is one of the most mysterious places within the game. It's home to ghosts and phantoms. The music follows the pattern of some of the other levels but has a tone of mystery and intrigue about it that immerses the player into the environment.

The sixth song is taken from a happy time in the game. It's where the player gets reunited with Zelda. The tone is similar to when the player first sees Zelda but this time, it has a sense of sadness about it, reflecting what has gone on but overall the tone is a happy one.

The seventh song in this video is taken from a level within the game that is full of witchcraft. It's quite a fast paced environment and this is reflected in the quick tempo music. It also has a sense of wizardry and madness, which is cemented by the speedy, high ocarina main notes.

The eighth song, taken from the Lost Woods, is another happy area within the game, at least initially. Fairies populate it and I think the lighthearted tone identifies this very well.

The market is another area filled with friends and not foes. It has many palace guards patrolling it, however, and I think the uniform sounds within the music represent this. It just has the perfect feel of a lighthearted area within the music

Number one on this list is also my personal favourite. It fits the area of the game to perfection. It has a sense of the Arabic desert about it with the notes on the harp. Also, the area has a palace and I think this, along with the guards and trained swordsmen are represented when the harp stops playing. A fantastic background tune for a terrific section of the game.

Below is another good example of platform game music. This time, from the game Spyro: A Hero's Tail


Spyro was what originally got us into making, 'Rusty and the Cogbots'. The game plays in a similar style to ours by having very cartoon oriented graphics and many tasks to undertake along with various enemies. While this music wouldn't necessarily fit our game, the idea of high tempo, lively music would definitely work.

Below is another example of game music. This time, taken from Goldeneye 007 on the Nintendo 64.


This music is absolutely tremendous when playing the game. Taken directly from the film of the same name, this music plays when you are at the last section of the game, getting ready to try and kill the final boss. Being a realistic environment where killing everything around you is the general objective, the music does a fantastic job of getting the player pumped up and ready for the action to come. It's an example that wouldn't work within our game. The two are completely different and this style of music would have a negative effect on the user experience.

So, it's clear to me that while music can sound fantastic and engage players into a gaming environment it can also, if used incorrectly, ruin the feel of a game entirely. Below is a link to various videos, which show some the worst game music ever.... enjoy!

http://www.vgchartz.com/article/7610/vgc-top-ten-worst-instances-of-videogame-music/

This link is also a very good listen. It explores popular game music and how it's evolved with technology. It also tells how much recognition is now being given to video game scores.
 http://www.bbc.co.uk/programmes/b00yj887


(1) Mulkin, Shane; May 19 2012; http://www.thextremepulse.com/the-importance-of-music-in-gaming/

(2) April 13 2008; http://www.npr.org/templates/story/story.php?storyId=89565567


Next week, I plan to have a main menu screen ready for the game. Doing the artwork for this should be really enjoyable.

Written by Phil

Saturday, 16 March 2013

Weekly update

Just to let everyone know, my update for this week will be posted this afternoon/evening. I'm at work all day and therefore will update this post once I'm home.

Written by Phil

Sunday, 10 March 2013

Sounds

Just a quick update from me this week, although I've done quite a lot on making the sounds for the game.

Using the site 'beatlab' that I mentioned last week, I have been able to create lots of sounds for the game. We can now start taking out the placeholder sounds and adding these in. I've also done a vast amount of research on the subject.

I will do a full update on my progress including links to articles and games i've used for research and i'll also post some of the sounds (if possible) on this blog. This update will come before next weekends update.

Written by Phil


Sunday, 3 March 2013

Sounds and Textures

Over the course of the last week, I have been looking into how to make sounds for our game. Sounds and music are something I haven't worked with in any detail before so this will be another steep learning curve for me. We worked on creating music in our first year on the course but this wasn't particularly involved. I will, however, be able to draw on this experience to help me complete this task.

I have been looking at various sites but have been pointed in the direction of 'beatlab', an online sound mixing program. This site allows the user to mix their own sounds and music and I have already made a number of short sounds and tunes that can be used in game.

I have also been looking into using Abode Illustrator. It's a program that hasn't been used on the course but it's something I would very much like to learn. I have already got to grips with it quite quickly although there is a lot still to be looked at. I plan on using my new skills on this program to make textures for the levels over the coming weeks.

Here is the link to beatlab,
http://www.beatlab.com/

Written by Phil

Sunday, 24 February 2013

Weekly update

I've been away this past week so have been unable to work on the project. Next week, however, will return to normal.

Written by Phil

Sunday, 17 February 2013

Project Update

After having a formal, marked presentation on this project just over a week ago, I thought it best to evaluate the current state of the project and see where it needs to be heading. During my presentation feedback, it was concluded by the tutors that the game is still at a 'development stage' and that polishing the current elements and mechanics was going to be the important focus point for the rest of the project.

That being said, we want to create a further two routes in the coming weeks before we start to polish all of the game elements. This will bring the game to a playable point, leaving us with a few months to refine all of the mechanics.

As an individual, the tasks I have completed up to this point have met with my initial timeline and have been as challenging and time consuming as first expected. It has, however, been a good learning curve and I can now look to bring the game up to a polished standard.

There won't be an update from me for next week as I am away for family reasons. I will, however, blog upon my return.

Written by Phil

Friday, 8 February 2013

A.I. Indicator Video

Following up from my blog post earlier this week, here is a video with the A.I. indicator working. Please note that the arrow is only a placeholder. It works really well, although it will be more useful when the levels become trickier to navigate.

Written by Phil

Written by Phil

Monday, 4 February 2013

AI Indicator


This is an early update for me this week as work on the AI indicator has progressed well today. I am now at the stage where there is an arrow drawn to the worker robot when he is off-screen and the arrow moves to show the enemies position. I have also managed to get the arrow to disappear when the worker robot is within view of the player.

Completing this is really pleasing as it has been the most in depth part of code I have undertaken on the project. I have had some advice from my dissertation tutor during a meeting with him today. This has really helped me understand the more in depth parts to this coding process.

The arrow is still only a placeholder asset at the moment as I thought it more important to get the code sorted before making final artwork. Later this week I will upload a video showing the arrow fully operational.

Posted by Phil

Sunday, 3 February 2013

Update / Next Task

I have not been able to make much progress on the project this week as I have had an issue with my laptop and it has had to be sent in for repair. I'll be working on the university computers next week in order to continue work on the game.

I have however looked at some menu ideas and drawn up a few concepts. We, as a team, have decided to got with a 2D cartoony menu to suit the game and I have been tasked with designing this. The menu ideas I have drawn up will be a good base from which I'll be able to make some full artwork.

I plan on completing work on the enemy AI tomorrow, after a dissertation meeting with my designated lecturer. Once this is complete I will move straight onto the menu design and start adding code for it to be used within the game. I'm excited to undertake this task, not only because I enjoy making 2D artwork but also because it will be giving me more coding tasks to undertake which will further increase my knowledge in this area.

Written by Phil


Saturday, 26 January 2013

Weekly update

As well as  updating the blog with Tom so that there is a welcome picture and more information, I have also been working on the project.

I have improved the design of the signs (posted in a previous post) so that they now how a rusty, dirty look to them. I have also been editing and testing the code for the enemy indicator. It has been a tricky process to understand but with the assistance of George, my dissertation tutor, I have learnt a lot. I have made an indicator which can be used and now I need to apply the code.

This should be fully complete by the middle of the week and I will blog about it once it's been fully tested.

I'm currently very happy with how the project is going. I'm able to use my existing knowledge of making art assets,  challenge myself to learn new coding skills and design levels based on players feedback. It is all very rewarding and enjoyable.

Written by Phil

Friday, 11 January 2013

Warning Signs


I have been making some signs that can be used in the game. Some will be useful, such as telling the player which direction to go, whilst others will be comical. As we are in the process of making the first couple of levels complete, I thought these will be aesthetically pleasing to the player. 

Below are a few early concepts that I have come up with. Not all of these will be used within the game and the ones that do get used will have more shading and mixed colour. I also plan on making some pieces of paper with pictures of our other games and funny phrases. 

Written by Phil









Written by Phil


Sunday, 6 January 2013

Holiday Task

Over the Christmas period I have been focusing on understanding the concept of making an AI indicator within the game. In a previous blog post I have mentioned why I feel the game needs this feature and how important it is to the game play.

After looking at some You Tube videos and forum posts I have come to the conclusion that the arrow needs to point along the +Z axis. A transform.lookat action will then be applied to make it point towards a vertor3 position which will be the enemy. Understanding this process should allow me to complete this work.

Over the next week, I will be focusing on trying to implement this mechanic into the game. I also plan on meeting my personal tutor to discuss this work and the next stages of development.

Posted by Phil

Sunday, 23 December 2012

AI indicator

Over the past couple of weeks, the game has gone through numerous play tests. While it was clear that the game has potential and many positive areas, there were a few issues that kept becoming apparent.

One of the main ones was the location of the AI character. As described in previous posts, I have the AI following and looking at the player. However, as the camera is set on a side viewpoint, it makes it impossible for the player to see the enemy if they are travelling towards the screen. With the AI automatically damaging the player if they get too close, this was a real problem.

To combat this, a number of solutions were discussed. These included a mini map showing the enemies position at all times as well as a warning sign above the players head when they were close to an enemy. It was finally decided upon that there would be an enemy indicator within the scene. This would be a small arrow that is placed at the edge of the screen which moves to show you the direction the enemy is coming from.

As I had completed previous work on the AI I decided that I would like to undertake this task. This week I looked at other games which use an enemy indicator to see how best to implement one. Jet Fighters, an iPhone game, stood out as an important one. It was clear in that game, you had a single viewpoint camera and without the indicator it would have made the game frustrating and too difficult to play. I've since looked into some tutorials and theory behind the code needed for the indicator and hope to implement it over the coming weeks. With these new coding challenges, I really feel that my skills are progressing.

Written by Phil

Saturday, 15 December 2012

Weekly Update


This week, Tom and myself have been working on the game together as most of the tasks we have undertaken have been based on level design.

For my part of this project over the last week I have worked alongside Tom in creating the easy route for the first level of the game. The route has been designed after finishing off the layout of the base level.

One of the main parts of the week for me was applying the Navigation Mesh to the level after Tom had finished modeling it so that the enemy could navigate all of the obstacles. After completing this work for the base level, I found it quite straightforward to apply the same techniques to this level. It did, however, need some tweaking in order for the enemy to roll along the floor at the perfect height. This issue was quickly resolved though. I also found that special consideration had to be given to some of the corners as enough space had to be left for the enemy to comfortably navigate his way through.

The level itself went through some alterations with numerous playtests revealing a few errors. One of the big changes we made mid-way through creating the level was the start point for the main character. It was decided early on that it was important that the player could see the entire level upon starting the game so they had a rough idea of where they needed to travel. With the starting area positioned where it was, it made it difficult for the player to see the necessary objects they needed to collect. After some altering of the start base position, it was decided the start the player from a position where they could see all the collectable and the enemy.

The enemy starting position and speed was also changed. It was felt that the enemy was initially too fast and that it was difficult for the player, especially on an easy route. This was a change that I applied quickly and slowed the enemy down. The starting position for the enemy was altered too, with it being decided to start the enemy where the player could see him. We felt that having the enemy start moving towards the player straight away added a sense of urgency to the game making it more exciting. Because of this, we made the enemy start the opposite side of the level so the player could always watch the enemy moving towards him.

Next week, I plan on rectifying the issue of having the player unable to see the enemy when travelling towards the screen. I will try and implement a detector arrow, which will show the position of the enemy relative to the player.

Written by Phil

Thursday, 6 December 2012

AI and Navigation Routes - Complete!

This week has been a breakthrough week for me on this project. After finding out how to add the menu code into the game, I have now managed to code in the Navigation routes for the enemies to walk along.

I did this using Unity's in built navigation tool. It allows the user to set out paths that the enemy can walk along and follow the player. I had spent a long time researching the topic and finding out the best way to go about completing this task. Having never undertaken a task like this before, I dedicated a lot of hours into learning how to code this set up and it has now paid off. Some basic code that i have written for the enemy movement is below.


#pragma strict

var agent: NavMeshAgent;
function Start ()
{
agent.destination = transform.position;
}

function Update ()
{
CheckLocation();
}

function CheckLocation()
{
agent.destination = transform.position;
}

What this does is check where the navigation agent is (the enemy) and transform his position to the agents destination (the player). This allows the enemy to follow the player, although only on the highlighted routes. If the enemy reaches an area they can't get to, they will find an alternate path.


Firstly I tested out the navigation routes in a simple test scene. As you can see below, the blue highlighted areas are where the enemy will walk and follow the player.



Within Unity the user is able to make certain parts of the level not walkable for the enemy. This will be key during gameplay and will mean we can give the player certain safety areas within a level. All the navigation routes are able to be tweaked, meaning each level that we design will need special consideration for the enemy movement.

I then went one step further and tried to get the enemy to jump over gaps and obstacles. I was eventually able to do this after a few hours of testing and trailing.  Below is how the final areas look that I have applied the jump navigation to. Notice the arrows which show where the enemy will start and land.



So, once I had completed all of this work I then went on to add a navigation route onto the game itself. I started with the base of level one, and added a mesh over the scene so that the enemy would follow the player whilst avoiding all of the obstacles. This took a while as it needed to be tweaked multiple times to get it right.

After I had done this, I then went and added a navigation mesh onto the easy route of level one itself. This, again, needed a bit of tweaking but I managed to get it into place. Coding was added to both scenes to make the enemy move. These scenes now need multiple play tests to see what changes, if any, need to be made.

The next stage for me will be to add navigation routes onto the other difficulty routes within level one and then play test them.

Written by Phil

Thursday, 29 November 2012

Main Menu Code


Since writing my last blog post I have been working on the AI and the menu code within our dissertation game as well as another one for this module.

I have been able to get the menu codes working to a level that I am happy with. This is a really helpful piece of code as it allows me to be able to use it across multiple games that I am undertaking on this course.

The basics of it are that when the user is presented with a menu screen, they can click on the play button and be taken straight into the game. Also, if they click on the Quit button, it will quit the application for them. This code will also work for taking the player to an options screen as well as any other screens we decide to implement on the main menu.

I completed this work using the code C#. Unfortunately, I was unable to use my preferred coding method, which is playmaker. This was due to a lack of tutorials that I could find on the subject.

The process of getting the menu buttons to work is quite simple once trail and error has been used. First an empty game object is brought into the Unity scene; next it is resized and shaped to form the play button on the menu. The code is then written and then dragged and dropped onto the button.

It was decided that each level and screen would be in a different scene. This is to make the game less demanding on the machine it is running off. Because of this, each scene that we make must be named correctly in the build settings for the menu code to work. The code is below:

var isQuitBtn = false;

function OnMouseUp()
{
     if(isQuitBtn)
     {
          Application.Quit();
     }
     else
     {
          Application.LoadLevel(1);
     }
}

To summarise this code, it works by sending a message to the scene where when the mouse button is clicked and released, the game will either quit or play depending on which button the player has targeted. The number in brackets after ‘Application.LoadLevel’ relates to level that is started upon the play button being selected. This may look very simple, but as I am still new to coding, this was very pleasing to complete. What is even more rewarding was seeing it work and understanding the processes behind it.

Next, I plan on using the knowledge I have learned whilst working on the AI, to create routes within the game that the enemy can navigate. I hope to progress on this work over the weekend so that next week Tom and myself can start planning out the first level design.

Written by Phil