Tuesday, 3 May 2011
ROVE 99% COMPLETE
After multiple play tests, lightmap bakes, audio adjustments and collider positioning ROVE is now 99% complete. Just a few more play tests and it will be complete. Now it is time to begin creating my show reel, which I will be animating a camera in Unity to film in-game footage and creating a new website which will comunicate the direction I wish to go in the future in games.
Monday, 18 April 2011
Update - Rove
Now that most of the environments are complete and taking note from the play tests by partipants I have been able to adjust the position of the environment assets in my levels to create a more aesthetically interesting environment. Now I will begin lightmapping each scene.
Friday, 8 April 2011
Bump Map and Lightmapping Problem
I found that when I had finished lightmapping my environments the bump maps applied to my geometry was not showing even though I also had dynamic lights in place. After research and asking a few questions on Unity forums I found out that Unity does not support lightmaps and bump maps on the same UV channel. To overcome this I saved copies of the UVs of each of my models and then loaded them into a second UV channel in 3Ds MAX. Now with two UV channels my models could now have lightmaps and bumpmaps.
Saturday, 2 April 2011
Update - ROVE
Now that all the tests are complete my work flow is now very steady. I have relatively little trouble achieving what I want to complete. Now that the main production phase begins all I have to do is make the vast amount of environment geometry and environment assets I have planned followed by play test after play test.
Tuesday, 22 March 2011
Play Testing
I have play tested ten participants on Rove. Through these play tests I have managed to learn the average route the player will take through my environments. Which areas they find interesting and which they pay little attention too. Badly placed colliders which were missed and hindered progress through the environments. Through this play testing phase I have managed to fix a multitude of bugs which will allow for a smoother play and greater immersion to ROVE.
Sunday, 20 March 2011
Collider Placement / Play Testing
This is something that I barely thought about when beginning this project. I thought that it would be a quick and easy process but after extensive play tests I found out I was very wrong. I learnt that colliders have to be placed in strategic areas and that you have to second guess what a player will do when they interact with a 3D environment. Luckily because I had complete some development phases before deadline I believe I will have time to run play tests with people.
Wednesday, 16 March 2011
Lightmapping
Lightmapping in Unity is a relatively easy process. To light map my scenes I marked all the objects within my scenes that I wanted to lightmap as 'Static', this tells Unity's lightmapping system that these objects do not move within the scenes and can be lightmapped. I then set up my lighting. To make my lighting look realistic I placed lights within areas where light would be seen naturally, for example; inside lampshades, on light bulbs and through windows. I then slightly adjusted the colour of the lights to add ambience, using an orange glow for lamps creating a warm scene and blue for a cold night time atmosphere.
Sunday, 6 March 2011
Test - Main Menu
This test has taken some time to get round to creating because I have been working on creating some of the 3D environment assets for Rove. The upside to this is I have been able to use the assets within this test.
Below is an example of the main menu test from the players perspective in Unity.
I have created a simple script to the 'Enter' text to load Rove once it has been clicked on by the mouse.
Here is an example of the script called loadLevelBedScene:
function OnMouseDown()
{
Application.LoadLevel ("BedScene");
}
Once the 'Enter' button has been clicked the first level of Rove loads which is the bedroom seen in the menu.
Here is an example of the first level of Rove from the players perspective.
Below is an example of the main menu test from the players perspective in Unity.
I have created a simple script to the 'Enter' text to load Rove once it has been clicked on by the mouse.
Here is an example of the script called loadLevelBedScene:
function OnMouseDown()
{
Application.LoadLevel ("BedScene");
}
Once the 'Enter' button has been clicked the first level of Rove loads which is the bedroom seen in the menu.
Here is an example of the first level of Rove from the players perspective.
Monday, 21 February 2011
Game Audio
Audio is not only essential for bringing life to a game but also for creating atmosphere. This I feel would be a great addition to Rove. I have already started recording my own audio for door and wind sounds. But I feel to add a subtly eerie soundtrack to Rove would give it a more polished ambiance. I play a lot of instruments and have been writing and recording music for a long time now. I am also an avid user of Reason 4 which is a music hardware emulator that can be used as a virtual studio to create music. Using Reason 4 I have begun to create a minimal soundtrack for Rove.
Saturday, 19 February 2011
Team Meeting 3 - Main Menu Disscussion
We had decided from the early stages of creating our game documents that we would like to incorporate a main menu to Rove and that it would feature some sort of subtle narrative element.
As Rove begins with the protagonist waking up in her hallucination we thought it would be interesting to communicate this in the main menu. The design of the main menu will be a 3D scene modeled by myself of the protagonist's bedroom and the protagonist model by Andrew. The scene will show a view of looking down upon the protagonist as she is sleep on her bed with the Rove title above her head whilst the 'Play/Enter' and 'Credits/Contact' buttons are under her feet. Another idea is to have audio playing sounds of the inside of a average suburban house. For example, birds singing, a gentle breeze and the occasional car. This will give the player an impression of the a normal bedroom where someone is sleeping. Once the enter button is activated, the game begins and the 'Eyes Opening' sequence is activated. The player will then be aware that they are in the bedroom from the main menu and will have the impression that they are playing as the protagonist. Also the audio from the main menu will have cut out and as the player explores the room they will be aware that they are not in a house. Hopefully this progression between the main menu and the game will give the player an impression of the protagonists progression from reality to hallucination.
As Rove begins with the protagonist waking up in her hallucination we thought it would be interesting to communicate this in the main menu. The design of the main menu will be a 3D scene modeled by myself of the protagonist's bedroom and the protagonist model by Andrew. The scene will show a view of looking down upon the protagonist as she is sleep on her bed with the Rove title above her head whilst the 'Play/Enter' and 'Credits/Contact' buttons are under her feet. Another idea is to have audio playing sounds of the inside of a average suburban house. For example, birds singing, a gentle breeze and the occasional car. This will give the player an impression of the a normal bedroom where someone is sleeping. Once the enter button is activated, the game begins and the 'Eyes Opening' sequence is activated. The player will then be aware that they are in the bedroom from the main menu and will have the impression that they are playing as the protagonist. Also the audio from the main menu will have cut out and as the player explores the room they will be aware that they are not in a house. Hopefully this progression between the main menu and the game will give the player an impression of the protagonists progression from reality to hallucination.
Sunday, 13 February 2011
Test - Eyes Opening and Triggered Events
Triggered Events
To begin this test I created a simple environment of two platforms (one raised higher than the other) with stairs connecting them. I also created several coloured boxes on the first platform which I would later use as buttons.
Using the triggerAnimtion script from the last test I created a simple staircase puzzle. By attaching the script to colliders placed above the coloured boxes they would act as buttons so that when the player walked on a button, animations for the steps of the staircase would be triggered. To do this I created a large button which can not be avoided by the player, so when they walk on it the steps to the staircase move and it becomes no longer accessible. The player then has to walk on the other buttons to activate other step animations which bring the steps back to their original position allowing the player to progress onto the second platform.
Above is an example of the staircase from the players perspective after the first button is activated.
Secondly I created a new script which I also attached to the button colliders so that when the steps move an audio clip is played with a sound of stones grinding. Here is an example of the script which I have called audioTrigger:
function OnTriggerEnter (other : Collider)
{
audio.Play();
}
function OnTriggerExit (other : Collider)
{
audio.Stop();
}
Eyes Opening
To achieve this effect I simply placed two black planes in front of the main camera (this is camera that the player sees through in game). I then animated both planes to open and then flicker and set the animation to 'Play on awake' so that when the test begins the two planes flicker to give the impression of eyelids. So that the planes follow the camera (this is incase the player moves the mouse while the animation is playing) I attach them to the main camera. I then found a free to use script on unifycommunity.com called FadeInOut, I attached this script to the main camera and applied a plane black texture to it. What this script does is fade from the texture to full transparency in a certain time, which you can manipulate using the scripts GUI. So now as well as the eyelids flickering the screen fades from black to give a good impression of a first-person perspective of waking up.
To begin this test I created a simple environment of two platforms (one raised higher than the other) with stairs connecting them. I also created several coloured boxes on the first platform which I would later use as buttons.
Using the triggerAnimtion script from the last test I created a simple staircase puzzle. By attaching the script to colliders placed above the coloured boxes they would act as buttons so that when the player walked on a button, animations for the steps of the staircase would be triggered. To do this I created a large button which can not be avoided by the player, so when they walk on it the steps to the staircase move and it becomes no longer accessible. The player then has to walk on the other buttons to activate other step animations which bring the steps back to their original position allowing the player to progress onto the second platform.
Above is an example of the staircase from the players perspective after the first button is activated.
Secondly I created a new script which I also attached to the button colliders so that when the steps move an audio clip is played with a sound of stones grinding. Here is an example of the script which I have called audioTrigger:
function OnTriggerEnter (other : Collider)
{
audio.Play();
}
function OnTriggerExit (other : Collider)
{
audio.Stop();
}
Eyes Opening
To achieve this effect I simply placed two black planes in front of the main camera (this is camera that the player sees through in game). I then animated both planes to open and then flicker and set the animation to 'Play on awake' so that when the test begins the two planes flicker to give the impression of eyelids. So that the planes follow the camera (this is incase the player moves the mouse while the animation is playing) I attach them to the main camera. I then found a free to use script on unifycommunity.com called FadeInOut, I attached this script to the main camera and applied a plane black texture to it. What this script does is fade from the texture to full transparency in a certain time, which you can manipulate using the scripts GUI. So now as well as the eyelids flickering the screen fades from black to give a good impression of a first-person perspective of waking up.
Saturday, 5 February 2011
Test - Lure Mechanic
To begin this test I created a very simple environment of three corridors.
The player begins at the bottom left horizontal corridor. From there they are able to see a particle system which represents the Lure for this test. Below is an example of the players perspective at the beginning of the test as well as the particle system which represents the Lure.
I created a simple Javascript which activates an animation that is attached to the particle system. This script which I call triggerAnimation is attached to a invisible collider which is placed just before where the particle system can be scene in the image above. Here is an example of the triggerAnimation:
var myBox : Animation;
function OnTriggerEnter( other : Collider){
if(other.gameObject.name == "Player"){
myBox.Play();
}
}
Unity then runs the script above when the player walks into the invisible collider just before they reach the particle system, this then activates the animation attached to the particle system which animates it disappearing around the corridor.
This worked perfectly but I had hit a problem, the particle system was now sitting around the next corner waiting for the player and due to the lack of my scripting knowledge I was unable to write a script which would then animate the particle system disappearing around the next corner upon the player walking through a second collider.
To get by this problem I created a second script which would delete the particle system from the game once it was out of view from the player. That way I could have a second particle system waiting around the second corner with its own animation, corresponding collider and triggerAnimation script. To delete the first particle system I had to place a collider just before the corner of the first corridor so that when the player walks into this collider my script which I have called destroyLure is activated and deletes the first particle system from the game. Here is an example of the destroyLure script:
function OnTriggerEnter (other : Collider)
{
Destroy(gameObject.Find("lure"));
}
I continued the process above until I had three particle systems each with their own corresponding triggerAnimation and destroyLure scripts.
The image above shows the placement of the triggerAnimation scripts which are attached to three colliders (green boxes). The sun symbols represent the position of each particle system.
The image above shows the position of the destroyLure scripts which are attached to three colliders (green boxes).
Now that all the colliders, scripts and animations are in place when the player approaches the particle system it disappears around the corner encouraging the player to follow it. Just before the player walks around the corner of the corridor the first particle system is deleted from the game and only the second particle system can be seen. This gives an illusion that to the player that they are following only the one particle system around the corridors when in fact there are three placed in the scene.
The player begins at the bottom left horizontal corridor. From there they are able to see a particle system which represents the Lure for this test. Below is an example of the players perspective at the beginning of the test as well as the particle system which represents the Lure.
I created a simple Javascript which activates an animation that is attached to the particle system. This script which I call triggerAnimation is attached to a invisible collider which is placed just before where the particle system can be scene in the image above. Here is an example of the triggerAnimation:
var myBox : Animation;
function OnTriggerEnter( other : Collider){
if(other.gameObject.name == "Player"){
myBox.Play();
}
}
Unity then runs the script above when the player walks into the invisible collider just before they reach the particle system, this then activates the animation attached to the particle system which animates it disappearing around the corridor.
This worked perfectly but I had hit a problem, the particle system was now sitting around the next corner waiting for the player and due to the lack of my scripting knowledge I was unable to write a script which would then animate the particle system disappearing around the next corner upon the player walking through a second collider.
To get by this problem I created a second script which would delete the particle system from the game once it was out of view from the player. That way I could have a second particle system waiting around the second corner with its own animation, corresponding collider and triggerAnimation script. To delete the first particle system I had to place a collider just before the corner of the first corridor so that when the player walks into this collider my script which I have called destroyLure is activated and deletes the first particle system from the game. Here is an example of the destroyLure script:
function OnTriggerEnter (other : Collider)
{
Destroy(gameObject.Find("lure"));
}
I continued the process above until I had three particle systems each with their own corresponding triggerAnimation and destroyLure scripts.
The image above shows the placement of the triggerAnimation scripts which are attached to three colliders (green boxes). The sun symbols represent the position of each particle system.
The image above shows the position of the destroyLure scripts which are attached to three colliders (green boxes).
Now that all the colliders, scripts and animations are in place when the player approaches the particle system it disappears around the corner encouraging the player to follow it. Just before the player walks around the corner of the corridor the first particle system is deleted from the game and only the second particle system can be seen. This gives an illusion that to the player that they are following only the one particle system around the corridors when in fact there are three placed in the scene.
Saturday, 29 January 2011
Team Meeting 2 - Tests to be conducted
Here is a list of mechanics and concepts which will need to be tested in the pre-development phase:
Lure Mechanic
Based on the Lure character, this mechanic will be used to roughly lead the player to key locations within the environments of Rove.
Concept
To have a character which is always seen in the distance but never reachable. This will be used in such a way that the character will be a point of interest to the player and they will be compelled to follow it through a linear path.
I will undertake creating the core mechanic of this concept and will be working on the scripting and placement of the Lure within Rove's environment. Andrew will work on the aesthetic appeal and animations of the Lure, making it a character that the player will want to follow.
Triggered Events
This test will ensure that I will be able to place colliders within Rove's environment which will trigger animations and sounds. A collider is basically an invisible box which can be placed in an environment scene. Scripts can be attached to colliders so that when a player walks into the collider the script is activated which will trigger an animation to play as well as audio or even other functions such as camera effects and more.
Concept
Triggered events will be used mainly as a narrative device, for example when a player reaches a key location a collider will be triggered which will activate audio dialogue of the protagonist talking and reflecting upon what the player can see. Secondly animations can be triggered to allow movement to the environment, for example an object moving or a door opening as a player approaches it. This will breath some life into an otherwise static environment.
I will undertake the scripting and placement for all the colliders within the environment. Andrew will create any character animations which may correspond with environment colliders.
Triggered event (delayed)
Allow me to delay a triggers function.
Concept
This could be used in situations within Rove such as if a player is locked within a room while a dialogue clip is being played the door to the room will unlock and open once the clip has finished.
I will undertake the scripting and collider placement for this mechanic.
Main Menu
This test will ensure that we will be able to add a main menu to Rove. This will allow us to create a more polished and professional first impression to the quality of our work.
Concept
The main menu will feature a PLAY/ENTER button and a CREDITS/CONTACT button. The credits button will allow the player to see which elements of the game were created by who and also our contact information. We hope to incorporate small narrative elements to the design of the main menu, this will be discussed further in more detail in another meeting.
I will undertake the scripting and design of the menu. Andrew will work on Rove's title and our team logo.
Eyes Opening
Concept
An early concept within the game document was to have the protagonists eyes opening to give the impression of waking up within Rove. I will undertake this test myself.
Lure Mechanic
Based on the Lure character, this mechanic will be used to roughly lead the player to key locations within the environments of Rove.
Concept
To have a character which is always seen in the distance but never reachable. This will be used in such a way that the character will be a point of interest to the player and they will be compelled to follow it through a linear path.
I will undertake creating the core mechanic of this concept and will be working on the scripting and placement of the Lure within Rove's environment. Andrew will work on the aesthetic appeal and animations of the Lure, making it a character that the player will want to follow.
Triggered Events
This test will ensure that I will be able to place colliders within Rove's environment which will trigger animations and sounds. A collider is basically an invisible box which can be placed in an environment scene. Scripts can be attached to colliders so that when a player walks into the collider the script is activated which will trigger an animation to play as well as audio or even other functions such as camera effects and more.
Concept
Triggered events will be used mainly as a narrative device, for example when a player reaches a key location a collider will be triggered which will activate audio dialogue of the protagonist talking and reflecting upon what the player can see. Secondly animations can be triggered to allow movement to the environment, for example an object moving or a door opening as a player approaches it. This will breath some life into an otherwise static environment.
I will undertake the scripting and placement for all the colliders within the environment. Andrew will create any character animations which may correspond with environment colliders.
Triggered event (delayed)
Allow me to delay a triggers function.
Concept
This could be used in situations within Rove such as if a player is locked within a room while a dialogue clip is being played the door to the room will unlock and open once the clip has finished.
I will undertake the scripting and collider placement for this mechanic.
Main Menu
This test will ensure that we will be able to add a main menu to Rove. This will allow us to create a more polished and professional first impression to the quality of our work.
Concept
The main menu will feature a PLAY/ENTER button and a CREDITS/CONTACT button. The credits button will allow the player to see which elements of the game were created by who and also our contact information. We hope to incorporate small narrative elements to the design of the main menu, this will be discussed further in more detail in another meeting.
I will undertake the scripting and design of the menu. Andrew will work on Rove's title and our team logo.
Eyes Opening
Concept
An early concept within the game document was to have the protagonists eyes opening to give the impression of waking up within Rove. I will undertake this test myself.
Thursday, 27 January 2011
Team Meeting 1
Team Roles:
Bryn Morrison-Elliott: Environment artist/level designer
Andrew Thomas: Character artist/character animation
Discussion:
Ba7 is over and both of our game documents are complete, both of us have a clear understanding of how we want to begin developing Rove. Our initial concern is that we are both very new to Unity and game engines as a whole so this could create a problem later on within the development stage. Another concern is that we would create Rove in a chronological order and when it came to creating certain mechanics we would possibly hit a stone wall and not be able to create them. This would have a direct effect on the creation of the rest of Rove and would result in an unorganized and messy workflow. To overcome this we have decided to have a pre-development testing phase. During the next month I will create tiny separate parts of our game ideas within unity in order to ensure that when we reach the development stage of this project we will be able to create everything that is planned. Anything that does not pass the testing phase can be then be removed from the development stage. This allows us time to make alternatives to mechanics rather than having an uneven project.
Friday, 21 January 2011
Introduction
Rove is an interactive 3D art piece created in the Unity game engine to immerse a player within surreal imagery and 3D design. The player is able to control the protagonist through a first person control system and perspective who suffers from schizophrenia. I am the environment artist/level designer for this project. The environment of Rove is set inside the protagonist's hallucination. Rove aims to challenge the conventions of storytelling in games through innovative exploration, interaction and 3D design.
This blog will follow my progress through my Ba8 project at University which is my part in the development and creation of Rove as well as creating a my own website and portfolio preparing me for when I become a postgraduate.
Subscribe to:
Posts (Atom)
