Digital Prototype of Simple Game
Update - 9th November 2022
Our group was given our first assignment, which was to create a simple digital game prototype. The theme for the game was Personal hygiene.
We had a group meeting to talk about the ideas of what type of game should we design.
Some of the ideas which were discussed were
Creating a learning game which focuses on basic hygiene such as brushing teeth, washing your hands.
Create an open world game, where the player travels around the map defeating monsters which were based on the diseases and viruses usually affecting one's personal hygiene. The core mechanic for the game was that the character was in third person collecting collectibles or power ups lying around in the map which would help them defeat specific monsters.
For example:
If the player sees a bacteria, the player can walk to the can of disinfectant collectible pick it up and start sparying at the bacteria in order to defeat it.
But this idea lacked win/lose conditions and the implementation of these concepts in the prototype would be complex.
Update - 13th November 2022
After presenting our ideas we decided on creating a game which had a map like CS:GO but have a simple mechanics where the player plays the role of a white blood cell defending the red blood cells from getting destroyed by the bacteria.
Game Concept based on WBC attacking a Bacteria
The design of the game mechanics was done by me and the implementation was done by my teammate Omer Sari in Unity.
The game elements are as follows:
- White Blood Cell - Player
- Bacteria - Enemy AI
- The player can walk, jump and run.
- The player must stand close to the bacteria in order to kill it.
- The bacteria will try to navigate through the map and try to find and destroy red blood cells
- Kill all Bacterias
- Theme - Open World Game
Update - 20th November 2022
During this week I looked for the assets needed for the prototype so that we could start with the implementation part. Majority of the assets were taken from Unity assets store or Sketchfab.
For the player character a simple capsule used in Unity was used with a white material to represent it as a White blood cell.
For the enemy AI, I looked at some of the 3d models for bacteria and found a covid-19 model.
For the cells that the player has to protect, this is the model that was chosen.
For the game world we thought of doing 2 maps one map for the kids to play and the other map for kids who are into shooting game.
The first map is a low poly map of a village
The second map is a bit of a fantasy map
For the second map, we designed the game to have a shooting mechanic as its core game mechanic in this map the goal is to protect the cells from a swarm of bacteria. To implement the core game mechanic we used a sample gun mechanic from unity asset store.
Update - 27th November 2022
Implementation of the prototype
The core mechanic of the game which is the enemy AI trying to destroy the cells was done by my team mate Omer Sari. The first person which is the player character was implemented by me.
The implementation of the character movement was done using some of the tutorials from yotube.
The code for the first person movement is as follows:
using UnityEngine;
void Start()
{
Cursor.lockState = CursorLockMode.Locked;
}
// Update is called once per frame
void Update()
{
PlayerMovementInput = new Vector3(Input.GetAxis("Horizontal"), 0f, Input.GetAxis("Vertical"));
PlayerMouseInput = new Vector2(Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"));
MovePlayer();
MoveCamera();
if (Input.GetKey(KeyCode.RightShift) && Sneak)
{
Player.localScale = new Vector3(1f, 0.5f, 1f);
Sneaking = true;
}
if (Input.GetKeyUp(KeyCode.RightShift))
{
Player.localScale = new Vector3(1f, 1f, 1f);
Sneaking = false;
}
}
private void MovePlayer()
{
Vector3 MoveVector = transform.TransformDirection(PlayerMovementInput);
if (Controller.isGrounded)
{
Velocity.y = -1f;
if (Input.GetKeyDown(KeyCode.Space) && Sneaking == false)
{
Velocity.y = JumpForce;
}
}
else
{
Velocity.y -= Gravity * -2f * Time.deltaTime;
}
if (Sneaking)
{
Controller.Move(MoveVector * SneakSpeed * Time.deltaTime);
}
else
{
Controller.Move(MoveVector * Speed * Time.deltaTime);
}
Controller.Move(Velocity * Time.deltaTime);
}
private void MoveCamera()
{
xRotation -= PlayerMouseInput.y * Sensetivity;
xRotation = Mathf.Clamp(xRotation, -90f, 90f);
transform.Rotate(0f, PlayerMouseInput.x * Sensetivity, 0f);
PlayerCamera.transform.localRotation = Quaternion.Euler(xRotation, 0f, 0f);
}
}
Update - 4th November 2022
Importing of the assets from unity assets store to the game project was done. Some of the issues I found out when after importing was that when the scene was played the character would go out of bounds from the map, a lot of time was spent to see what the problem was and I got to know that the collision detection for the objects were not specified so I had to put collision detection to each and every object.
Using github this project was then transferred to Omer so that he could implement the Enemy AI mechanics.
Update - 12th November 2022
Though we had problems with Teams, our prototype was ready to be presented in the class. The introduction of the game was given by Tanishka and the gameplay mechanics of the first level was explained by Omer and I explained the game mechanics of the second level.
Feedback on the Presentation
Jarek and Hope loved the theme of the game, but they were a bit confused as to why there were 2 mechanics for 2 levels and how the level 2 map was a bit realistic as to level 1 which was a low poly map. Jarek commented on the game design being too ambitious and the theme was to see a design of a simple prototype.
Gameplay
Reflection
I think that the design for this prototype was sloppy and no real motivation was shown when designing the game concepts. I think that more work on the design should have been done and that we focused too much on the development of the prototype.
Comments
Post a Comment