Thursday, 12 December 2013

Time to rethink our idea... (09.12.13)

Due to recent events it was decided that we should reconsider our game to a different play style. We have techniqually restarted our project but bringing forth our previous concepts and designs.We are going to incoporate some of the  previous ideas into our new game but with a different gameplay.


This is our brief:


Puzzle Game:

The main gameplay idea we have is to teach the player not to jump to conclusions about the first way they can tackle the puzzles. Although it may seem simple at first, it turns about to be a little bit more complicated; a process of finding leavers and moving obstacles may have to be discovered first before they can complete the puzzle.


Playing with the players mind:

We still want to work with the idea of the girl trapped in an alien industrial farming complex, however the story starts out with the girl falling asleep, and the game starts in a ‘dream world’ but the player doesn’t know this is a dream. You have to complete certain tasks/ puzzle in order to escape. However when you do finally escape it turns out that she has awoken from this dream, and she is in fact still stuck in the cage.
 
Our design is to be very clean and to create simple puzzles for the player to complete.
 
 
This is the kind of style we want to go for, a clean a crisp style although we shall consider adding in dirty and broken down areas to create different effects and to tackle emotion.
 
 

 
This is a simple map layout with very simple structures that we could incorporate such as alternate rooms to collect objects to allow you to pass current rooms.
 
 
 
 A few level designs and strategies; the top image shows the need to move the box to get out the facility and that the lever is on the other side. The second image then shows an obsticle in the way i.e. need to be another platform to help you cross, and the last image shows the solution to get to the other side.
 
 
This is a concept of an alternate style we could persue with an old styled wooden shafts and dirty floors, with crates and containers.
 
 
Script:
 
Girl: (could be echo distorted)
 
''Where am I?''
''AHHHHHHHHHHH!!!'' - Scream
''What is this place?''
''Huh?'' - shock
''Maybe the lever on the other side of the room might do something...'' - monotone (hint)
''What does that orb do?'' - monotone (hint)
''Get me out of this place!'' - panic
''We are trapped in here like animals...'' - monotone (hidden meaning)
''I might have to try a different approach...'' - Questioning
''Maybe there is another way?...'' - Questioning
''(Grunts and moans)''
 
Story/scenes (monotone - talking to self): ''I have been trapped here since I can remember... What does the sun look like? I can't remember it... That man has tried to escape before. Many of us have, many have failed...They keep us in these cages, and when someone leaves, they don't come back. This is what they mark us with, this strange symbol. What does it mean?... Oh thank god its gone... It left the cage open! Nows my chance...''
 
 
 
Other prisoner:
 
''What do you want from me?'' - Anger
''HELP ME!'' - scream of terror
''AHHHHHHHH!!'' scream
''Get off me you overgrown chicken!'' - anger and scared
''Wake up'' - mono
''Over here'' - wisper
''(Grunts and moans)''
 
 
 
Other sounds/noises:
 
Predator cracking noises
Platapus noise
Chicken noise
Footsteps/Stomps
Chains
Bars rattle
Snapping
Machinery
Creepy laugh (prisoner)
Whispers (prisoners)

Tuesday, 10 December 2013

Pick up and Throw test.

I have recently been working on getting a pick up object script and a throw script to work for our light orbs. To test out the necessary scripts and such I created a new Unity Project, just incase I ran in to any major problems, I did not want it to mess up our main Unity file. I also wanted to go in depth with this test to prove to myself that I am capable of doing things such as this! so that I will not have to rely on Playmaker.



In the first screen shot, I have done it so you can see the basic test scene that I have created. Over on the right hand side you can see the three scripts that I have used, the first one is the Object Properties script, which is in C#, this script is attached to the object that you want to pick up. For this script to work, the object needed a collider so that the character controller could be able to pick it up, it also needed a rigid body component added to it. The next script is another C# script, this is attached to the character controller which enables it to be able to pick up the object when the player presses the 'f' key, as well as being able to throw the object when the player clicks the left mouse button. The final script is Javascript, this is also on the character controller, and this controls the power in which the object is thrown by the character. I still need to tweak the power in which the object is being thrown, because at the moment it is too powerful.

The bottom screenshot shows the character controller holding the object (I could not print screen the throw action because it disappeared before I could!!).

Tuesday, 3 December 2013

Human Modelling




03.12.13

Today I have worked on creating human typology starting from a basic mesh. I have been refering back to Autodesk's human mesh so as to help me with typology. I had a bit of trouble trying to figure out how to get the arm's typology trying to get the edge loops to match up with the rest of the muscle movement and anatomy.




04.12.13

Further typology has been added to the model to enhance the muscular structure to the body. I have added extra-edge loops to keep the model fairly even with the polys but also keeping in mind to keep it low on the polys. I now need to work on the final touches to the arms such as muscle and hands. I also need to create the head and improve typology around the neck and chest.




05.12.13

Today I finished off the legs by retopolgizing the knee caps and the formation around it. I then tightened up the rest of the torso by adding in more polys to give it a smoother shape. I added extra edge loops around the neck to help the movement to the neck muscle and shoulder as well as adding form to the face. I found great difficultied in trying to reconstruct the face in the way that typology will effect the the muscle movement and figure of the characters face.

06.01.14

As the new year starts I continue to model my human, I managed to complete the hand and attach it to the body, as well as producing an ear. The ear was very tricky, notheless I managed to get the shape in and attached to the head. I then spent a while re-typologising around the ears so that they fit on the body well, with very few triangles.







Processing Room - Few Assets Added

Today I started putting the assets that have already been made by Toop and Joe in to the Unity project to see how things looked, and to scale them if needed. Below is a print screen of the conveyor belt and the meat hooks, along with the cooker. This isn't how it will look for the final thing, but it's just to give us a quick idea of how things will look and if we want to change bits, or add anything further.

 
 
When the player walks around the processing room, it will not be as lit as this. It will be much much darker, which is why they will have the light orb as a source of light to navigate their way around. 

Cage models

The plane in the background is a test to check the texture on it is seamless, its getting there but isn't quite right. This cage is based on the style of cage used for battery hens which would be wall mounted and stacked up on the wall which would give an imposing feeling.


As we aren't 100% if this type of cage will be included I've quickly done a basic texture over it and more detail can be added into it later. As the other idea is to have more box like cages for the AI to patrol around I will make one of these as well and we can decide which we will use


Here is a cage model, again I've used the unfinished texture from before. When said texture is finished with proper tiling, added decals and specular maps I will update this and the other model which will improve their appearance. For now this will do for checking it works in Unity.

Wednesday, 27 November 2013

Texturing 25th - 30th


Today I have managed to texture the conveyor belts and hook. They are exported out seperately as 3 different object so they can be re-adjusted in unity. I will next add bump and specular maps to the assets, and continue to texture the other asset for the room.

 
This is a shot of both the conveyor belts with a bump and specular maps. The bump highlights detail whilst the specular highlights light. They have been used together to give off a metal shine but also to show that they have a little wear and tear in them. The bottom shows a dried blood that has been left at the bottom and rust in the metal where is has started to decay.
 
 
This is the turbine fully textured and ready to be put into the game, it has a diffuse, bump, and specular map. I have used rust textures to make it look a little out and outdated whilst a complicated piping texture to exaggerate the high-tech style in which it is built. This is used to power machines around the facility and possibly to grind bodies.
 
 

Monday, 25 November 2013

Assets for the Processing Room


 
These are both assets for the processing room, that were created last week. This week however I shall be texturing and adding more assets to put together for the processing room. Here I have modelled a turbine that powers the machine and the processing machine. I have also created a conveyor belt with the hook that holds humans and pulls them across the room.
 

Wednesday, 20 November 2013

Basic Layout

So we've decided to scale down the map. By doing so we're going to focus on three main rooms that will be accessible to the player (Cage Room, Larbratory and the Processing Room) and one room that the player will be able to look in to (the Disposal Room).


This way, we feel we will not be taking on too much work and we will be able to do these rooms to a high standard that gets the message of our game across sufficiently. This is just a basic graybox view of what it will look like, we shall start adding assests from now on.

Tuesday, 19 November 2013

This week

Concept Art:


Paintover of battery egg cages to show a possible cage room concept. I added the rough figures based on the amount of space chickens get to show the cages as cramped and unpleasant and to reflect reality better. I included the escaped figure to give a sense of how tall this would be in engine.  





Assets:

Maya model of the cooker from Joe's processing room concept.Since posting this I have sorted out the issue with the 12 sided face using connect components.

What I'll be doing...

My job for up coming few days is to refine the graybox we have, adjust the layout of where we want things, ultimately scale it down to only a few rooms, so that we can just focus on specific areas, and move forward from there. I will be carrying on with implementing sounds, some will only play in specific zones, and then I can see if I need to make any amendments here and there.

Look at:

flickering lights - code.

ambient sounds

screams

To do

To Do:

Concepts for processing and cage room (Toop)
Assets needed:
Humans - High poly and low poly models - Edit default mudbox human
Arm holding orb (High poly)
Cages
Conveyor belt
Preparation machinery (processing room)
 Tables
 Tanks
 Lab equipment
Meat hooks 
Textures for all assets, ideally two for humans though a lot of farm animals are clones so if they all look the same it might actually be more accurate to what we are trying to portray.

Monday, 18 November 2013

Processing Room

 
This is a concept of some of the items to be used in the processing room such as; gears, cogs, pistons etc. I have also included images of animals such as cooked pigs and raw cows, to help me to design the colour and texture of the human bodies. I also included some war images of burnt bodies as part of the research. I chose pigs because they are the same colour flesh and meat as human so this will closely help me to design it. I like the cow image because it shows a very interesting way to hang up heavy pieces of meat, very raw colours and just hung there on hooks.



This is the environment concept that I produced for the processing room. I decided to go with a very simple layout showing a convayer belt that pulls humans around the room, into the cooker and then away to be eaten. The layout of the room isn't very accesable although viewing the process of what happens to humans should be horrific for the player to witness. Ive also included some concepts of the vents and machinery as well as some close ups of a pully system and a burnt human.

Item Concepts

So my task for over the weekend was to look at specific items that you would maybe find within a slaughter house, that we could use for our processing room. I started off with drawing three types of hooks that you would hang the bodies up on. I then moved on to hands restrained by cuffs, hung up in the air. I thought that maybe we could combine the two elements.




I was thinking of also looking at the pulley systems/ conveyor belts that would be used to move the bodies along. As well as this I was thinking of also studying the clothing worn by the people who work within those sorts of environments, for example wellies and gloves. Furthermore I will try and produce studies of instruments they may use within the slaughter process (which is going to be terribly gruesome to research!). 


Saturday, 16 November 2013

Weekend Plan

We need to have a proper discussion before we can move forward (Monday 11.30). Untill then tasks for the weekend are:


Toop: I will be sketching environment concepts for the cage area and processing plant.


Joe: Research factory farming, look through the research already posted on the blog and do some independent research and make a post on the blog. Its extremely vital that you do this, will make things a lot easier on yourself once you get this done.


Alice: Concepts for objects in the environment

Tuesday, 12 November 2013

Possible Idea



We looked at a interactive virtual scene of a battery hen farm and came up with an alternative idea. Instead of having the cages arranged in a maze like pattern we could have them arranged in a way more typical of factory farms which would draw more parallels to factory farms.


Link to interative scene:
http://www.animalvisuals.org/projects/empathy/virtualbatterycage/#reference

Sunday, 10 November 2013

What I have done this weekend.....




I think this design would suit us if it was focused on showing how the aliens are more advanced and high-tech. This can be used if we decided to base the aliens around the futuristic style. The design shows how they use very simple methods but are very effective i.e. the braces being used to hold humans against walls whilst only being a piece of metal.





I quite like this design I think it suits the style of our game a lot better than the Sci-Fi one because it could look a lot creepier due to it looking old styled and that its made with very simple materials. This would work well especially when it comes to the re-creation of the doors locking and how it can help you to escape. 



This design is the most simplistic for a cage and would be used to store humans in large quantities in tight and cramped conditions. The cage will be made from simple materials put together and used over and over throughout the whole facility. The style is very medieval to symbolise old and simple methods to in-prison people.



I managed to create a quick design of the alien in a possible suit he might wear considering the style in which it might head towards. Underneath are development sheets of how the enemy is designed through the development of the start to up to date.




Wednesday, 6 November 2013

What I have produced this week...


 
This week I attempted to make a loading screen in unity using a white silhouette of our logo using a texture sprite sheet technique. I found this to be very difficult because you have to line up each of the parts exactly the same as before. I have to look more into this process as I've had a few problems with the animation lagg.

 
I also worked partly on our start up screen where it introduces the character and the story into the game I managed to complete these three sceens.
 

 
A character concept/pose I designed today, it is using more of an action styled pose where it has just jumped down.

AI_Patrol script

using UnityEngine;
using System.Collections;
public class AI_Patrol : MonoBehaviour
{
 //-----------------------------------------------------------------------------
 #region public_vars
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------

 public enum AIState { none, idle, walking, run }

 public float patrolSpeed = 2F;       // The nav mesh agent's speed when patrolling.
 public float patrolWaitTime = 1F;      // The amount of time to wait when the patrol way point is reached.

 public float patrolSpeedDamper = 5F;     // Patrol at 1/5th of animation speed

 public AIState currentAIState = AIState.none;

 public float speed = 0.5f;

 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 #endregion
 //-----------------------------------------------------------------------------

 //-----------------------------------------------------------------------------
 #region private_vars
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 // constants

 private const float MIN_NAVAGENT_SPEED = 0.1F;
 private const float MAX_NAVAGENT_SPEED = 1.25F;
 private const float m_SpeedDampTime = .25f;
 private const float m_DirectionDampTime = .25f;

 private int   m_WayPointIndex = 0;

 private int maxWaypointIndex = 0;

 private NavMeshAgent nmaAI = null;
 private Animator animatorAI = null;

 private const float MIN_IDLE_TIME = 2;
 private const float MAX_IDLE_TIME = 8;


 private int currentWaypointIndex = 0;

 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 #endregion
 //-----------------------------------------------------------------------------

 //-----------------------------------------------------------------------------
 #region public_methods
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 #endregion
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 #region private_methods
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------

 void Awake()
 {
  nmaAI = GetComponent<NavMeshAgent>();
 }

 //-----------------------------------------------------------------------------
 // Use this for initialization
 void Start ()
 {
  animatorAI = GetComponent<Animator>();

  StartCoroutine( Idle() );

 }

 void OnTriggerEnter( Collider hit)
 {
  Debug.Log("AI_Patrol: OnTriggerStay hit: "+hit.gameObject.tag);

  if( hit.gameObject.tag == "Enemy" )
  {
   Throw ( hit.gameObject );
  }
 }


 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 IEnumerator Idle()
 {
  currentAIState = AIState.idle;

  float randomIdleTime = Random.Range( MIN_IDLE_TIME, MAX_IDLE_TIME ) + Time.time;

  while( randomIdleTime > Time.time )
  {
   animatorAI.SetFloat("Speed",0 );
   nmaAI.speed = 0 ;
 
   yield return null;
  }
  
  StartCoroutine( Patrolling() );
 }

 //-----------------------------------------------------------------------------
 IEnumerator Patrolling ()
 {
  currentAIState = AIState.walking;

  // Set an appropriate speed for the NavMeshAgent.
  nmaAI.speed = Mathf.Clamp( animatorAI.GetFloat( "Speed" ) / patrolSpeedDamper, MIN_NAVAGENT_SPEED, MAX_NAVAGENT_SPEED );

  // Set the destination to a random patrolWayPoint.
  //nmaAI.destination = Waypoints.GetRandomWaypoint();

  nmaAI.destination = Waypoints.GetWaypoint(currentWaypointIndex);
  currentWaypointIndex++;

  bool endPatrol = false;
  
  // While not near the next waypoint or while there is a destination...
  while( !endPatrol )
  {
   if( Vector3.Distance( nmaAI.destination, animatorAI.rootPosition ) > nmaAI.stoppingDistance )
   {
    animatorAI.SetFloat( "Speed", MAX_NAVAGENT_SPEED,m_SpeedDampTime, Time.deltaTime );
  
    Vector3 curentDir = animatorAI.rootRotation * Vector3.forward;
    Vector3 wantedDir = ( nmaAI.destination - animatorAI.rootPosition ).normalized;

    if( Vector3.Dot( curentDir, wantedDir ) > 0 )
    {
     animatorAI.SetFloat( "Direction", Vector3.Cross(curentDir, wantedDir ).y, m_DirectionDampTime, Time.deltaTime );
    }
    else
    {
              animatorAI.SetFloat( "Direction", Vector3.Cross(curentDir, wantedDir ).y > 0 ? 1 : -1, m_DirectionDampTime, Time.deltaTime);
    }
    nmaAI.speed = Mathf.Clamp( animatorAI.GetFloat( "Speed" ) / patrolSpeedDamper, MIN_NAVAGENT_SPEED, MAX_NAVAGENT_SPEED );
   }
   else
   {
     endPatrol = true;
   }
 
 
   yield return null;
  }

  StartCoroutine( Idle() );
 }
 //-----------------------------------------------------------------------------
private bool throwing = false;

 public void Throw( GameObject hitObject )
 {
  if( !throwing )
  {
   StartCoroutine( AnimateThrow( hitObject ) );
  }
 }

 public float rotationDelta;

 IEnumerator AnimateThrow( GameObject hitObject )
 {
  if( !throwing )
  {
   throwing = true;
 
   animatorAI.SetBool( "Throw", true);
   yield return new WaitForEndOfFrame();
 
   AnimatorStateInfo stateInfo = animatorAI.GetCurrentAnimatorStateInfo( 0 );
 
   animatorAI.SetBool( "Throw", false);
    
      // transform.LookAt( hitObject.transform.position );
   bool rotating = true;
 
   float endOfThrowTime = stateInfo.length + Time.time;
   float step = speed * Time.deltaTime;
 
   while( rotating)
   {
  
    Vector3 targetDir = hitObject.transform.position - transform.position;
  
    Vector3 newDir = Vector3.RotateTowards(transform.forward, targetDir, step, 0.0F);
  
    Debug.DrawRay(transform.position, newDir, Color.red);
  
    transform.rotation = Quaternion.LookRotation(newDir);
    
   
//    if(Mathf.Abs( (int) rotationDelta ) > 179 )
    if( endOfThrowTime < Time.time )
    {
     rotating = false;
    }
  
    yield return null;
  
   }
  
   transform.LookAt( hitObject.transform.position );
 
//   yield return new WaitForSeconds( stateInfo.length );
 
   throwing = false;
  }
 }


 //-----------------------------------------------------------------------------
 #endregion
 //-----------------------------------------------------------------------------




}

Update

Rescaled the unity file fixing the issue where the AI was moving extremely slowly.




Map
Drew a map of the building showing where the different rooms will be. At the present moment we haven't decided the path the player will go down.

Slaughterhouse concept
Painted over a Maya render to get the basic concept of the slaughterhouse done. The poster is meant to be an advertisement showing the humans having better quality of life than what they are living in which is often done with advertisements for animal products.  This didn't turn out well as a concept piece, I should of painted more into it and I'm not happy with the the shadows.

Tuesday, 5 November 2013

Tasks for the week

Check the trello board !!! (should be checking and updating  your progress on tasks everyday) and ticking off tasks once they've been done

Joe: Finish the concept art for the alien. The versions wearing suits and the versions with stomachs can be paintovers of previous concept pieces or sketches.


Toop: Complete weekly schedule and update presentation


Alice: Getting placeholder sounds to use in the graybox and finishing processing sketch


All three of us also need to write a personal statement (300 words)

Wednesday, 30 October 2013

Graybox

Early graybox test from start of the project


Changed the room layout and added placeholder objects, obstacles and lighting
Added in teddy bears as placeholder AI and added waypoints for them to patrol to
 I also changed the ambient light in the render settings to black to allow pitch darkness in the game.

Added a sphere with a point light inside it. Initially we had the issue of the sphere not illuminating despite being transparent and adding the halo effect to the point light though importing the image effects package and applying bloom to the main camera fixed this issue.
 
We had an issue with the bear running very slowly, this appears to be due to scaling issues because everything is scaled up. To fix this we will need to rescale the entire level, because this can't be done in one go this may take a while as objects will need to be reorganised.