Synthetic genetics

Quick info

Engine: Unity3D,
Programming language: C#,
Platform: Pc with Xbox controller,
Role: Developer,
Team size: 2 Devs, 2 Artists,
Date: 20th April 2018, duration 10 weeks.

Group

Mark Delput
Dirk Kok
Mirthe Groters
Kevin Rommes

About the game

This game was a school project and our tasks were:
‘Create a Twin Stick Shooter game with your project group based on the project description(the story)’.

The main goal of our game is to find secret in the lab and kill all the disrupted AI but there are some robots in your way.

our game contains only 2 levels and is not completed with the story.

The story

Something is terribly wrong happend in the highly secured Synthetic Genetics building.
The security AI is disrupted and there are secret experiments in the laboratory that was mutated and eating employees.
You are hired to restore order to the company before the media finds out about the disaster and the company incurs huge reputation damage.

My tasks

The robot AI
-Navmesh movement
-Adjustable field of view
-hearing range(to prevent walking past the robot without seeing the player)
-Different states for the animation controller(sadly the robot doens’t have animations)

Inventory
-Item pickup and dropping
-Item selecting
-Item usage like keycards and pickups(armor and bullets)

Player controller
-Xbox controller support
-Different player states for the animator(sadly not animated ingame)

Current bugs
Sadly there are some missing art and some bugs existing in the game.
-The footstep audio is to fast.
-Characters animations are missing

Gameplay video

Code snippet: Inventory manager

This function handles the item pickup.
It drops the item too when the inv is full.

		/// <summary>
		/// Add an item to the inventory
		/// </summary>
		/// <param name="_item">InventoryItem, the item to add</param>
		public void AddItem(InventoryItem _item)
		{
			if (_item == null)
				return;

			//check if inv is full, if not add item else drop
			if (m_inventoryItems.Count != m_inventoryLimit)
			{
				m_inventoryItems.Add(_item);
				_item.m_ItemEnabled = false;
			}
			else
			{
				//gets currently holded item
				InventoryItem _droppedGm = m_inventoryItems[m_activeSlot];
				//enables pickup script
				StartCoroutine(EnableDroppedItemScript(_droppedGm));
				SetDroppedItemPosition();
				//replace item with new item
				SwitchInvItems(_item);
			}
			ShowSelectedWeapon();
		}