Synoptic Project

Original Pitch

I was nervous before doing my pitch however I think once I got into it wasn’t so bad. I think I managed to put my ideas forward well, and my pitch was easy enough to understand for everyone. I do feel that, particularly in the earlier half of the pitch, my nerves got me a little and this was reflected in my pitch through a slightly shaky voice and use of words such as “uhh” and “like”, however throughout the pitch I would say that I got more comfortable and this improved. I should look into building more confidence for future pitches. I admired how others in their pitches had more detailed plans of how development would go, creating burndown charts and production schedules for the pitch, in retrospect this is something I wish I had done. Overall, however I would say my pitch went okay, I think everyone more or less understood what I was going for in terms of gameplay and visual style, if I can improve the things outlined above then I hope my pitch can be even better.

Pre-Production

Team

I was chosen to be programmer for Roya Taylor‘s physics-based space minigame
collection. Travis Young was selected to be the character designer and Lewis
Appleby
was selected to be the environment artist. Roya would be producer as
well as level designer.

Plan

We that we will have all pre-production complete by the 28th of February and
then have our minimum viable product done by 18th April and finally a finished
game by 9th May. We decided we would first focus on a basketball minigame and
then if we have time we may do others.

Documentation

We created a Trello board showing each person’s individual tasks as well as
overall milestones. We have labels to denote how complete a task is as well as whether it’s a priority or not. We plan to update this as the project goes on.

We all worked together to create an asset list of everything we think we’re going to need to complete out minimum viable product.

We created a burndown chart to show how production should run from the end of February to the start of march. We will also update this as time goes on.

I set up a Unity project and began work on a prototype for the game based on this playboard created by Roya:

First Prototype

Here’s what I’ve produced so far in Unity:

28/01/22 Scrum Meeting

Music

Through a friend I was introduced to a music student called Reiss Cassidy who was interested in making game music for his own project. I reached out to them and showed him Roya’s pitch. Roya also sent him art samples and promised demo’s when available. He said he would be interested in helping out, we plan to have meetings with him to discuss the specifics of what kind of music we need in the near future.

02/02/22 Scrum Meeting

We also updated our burndown chart to reflect current progress:

04/02/22 Scrum Meeting

Updated Camera

We had an issue where the games camera would go behind any objects the player was in front of obscuring the camera’s view of the player. This was fixed by writing code that moved the camera forward whenever detected, here is a video of it in action:

10/02/22 Scrum Meeting

Ball and Throw Function

We added a ball and the functionality for it to be thrown by the player, however this created a bug where the ball would become misshapen and then the player would not be able to throw the ball at all.

While I’m still not sure why the ball is being deformed in the first place with the help of a tutor I was able to find out that the ball was being deformed in such a way that it collided with the player as soon as it was thrown. We fixed this by moving the ball further away from the player model while its being held. We fixed the ball deforming by adding a line of code to the HoldBall script resetting the transforms back to normal every time the ball is thrown.

11/02/22 Scrum Meeting

Long Jump and Hoop

I added a long-jump that can be used by pressing the x key, it allows the player to jump higher in order to shoot.

I created a hoop for the ball to be thrown into, it has an invisible plane inside it that collides with the ball and adds points to the score UI. I also added a border around the map to stop balls from rolling off the edge while testing.

The hoop works by detecting whenever it collides with a ball, teleporting it back to its spawn point (represented by an object called “Ballspawner#”) and changing the score to be one higher.

16/02/22 Scrum Meeting

Coloured Balls

I added coloured balls to represent different point values:

Red = 1 Pink = 3 Yellow = 5 Black = 7

18/02/22 Scrum Meeting

Net

I added a “Net” plane under the map that collides with any balls or player that fall of the map and teleports them back to their spawn points.

Long Jump Cooldown

Added a 7 second cooldown to the long jump, this is shown in a UI element. I also changed the input from x to right click as playtesting showed this would be more ergonomic.

Anti-Gravity

I had a lot of trouble creating the anti-gravity concept shown in Roya’s playboard; I decided to create a separate class (GravityController) that would propel all objects upwards and then have a separate method inside my player controller that would lock the player movement and allow them to use their thrusters to shoot forwards.

I tried using ().AddForce to move all objects upward then RigidbodyConstrints.FreezePositionY to keep them in place for the desired length of time. This didn’t work so instead I directly changed the transforms of the objects. This works however doesn’t look as smooth as I was hoping, a lot of animation work will be needed to make it look good. The constraints get set back to normal after 20 seconds, I also added a UI element to show the 20 second countdown and made it so the gravity switch is deactivated for 90 seconds after use.

The character controller was changed to have a bool called gravityTrue, if true the character will move as normal when the player collides with the gravity switch it will change gravityTrue to false. While gravityTrue is false the player is not able to move except when using the thrusters which will move the character a set distance in the direction they’re facing. After 20 seconds gravityTrue is set back to true.

Pre-Production Reflection

Overall while our pre-production ran a few days over schedule we did plan with flexibility in mind so our overall product should not be affected. As far as my prototype is concerned I’m proud of what I’ve created, it meets the overall specifications of Roya’s playboard and is genuinely fun to play around in at times. My next step will be moving this to Roya’s level and then starting to look into whether online multiplayer will be possible and if so implementing it.

Production

09/03/22 Scrum Meeting

Transfer to Space Station

I imported all gameplay assets from the prototype scene to Roya’s space station scene. This included:

  • Player
  • Balls and their spawners
  • Net
  • Hoop
  • Gravity Switch

I distributed the balls across the map and this created some issues with the scoring and net systems. This is because they previously worked by having each object set as an object in the code and moving them to their spawn point. Since there are now many duplicates of each ball and spawn point I’ve changed the code so that it stores each spawn point in an array and then randomly picks one for the ball to move to when it collides with the hoop or net.

11/03/22 Scrum Meeting and Burndown Chart

As our scrum sheet indicates, our basic player model is taking longer than expected to be completed. This is bad because we will need it to be fully rigged and textured for our MVP, this has created doubts in my mind that it will be done by then.

Furthermore here is our burndown chart for week 6:

While it shows we’re behind schedule, most of the assets are art assets that can be made quickly once the more important tasks are finnished.

Issues with Gravity Switch

There was also an issue with the gravity switch as (like the hoop and net) it previously worked by having a separate object for each player and ball it would lift up, this would not be sustainable in a game with multiple players so I changed it to instead work by adding every ball and player into an array and then lifting up them all up at once. 

However, as you can see this creates an issue where objects previously below the floor end up above after the gravity switch has been pressed. I decided to fix the issue by moving the balls using .AddForce() instead of their transforms (this time with more success). This allows the balls to collide with the environment as they move upwards while looking more natural.

18/03/22 Scrum Sheet

Week 7 Burndown Chart

As shown above we have finally decided on a name for our project, the name “Gravity Guys” was decided by Travis. The scrum sheet shows that progress is steady and indicates that we are generally keeping to schedule. Furthermore our burndown chart still shows us as being behind on tasks completed, however as previously mentioned this is part of the plan.

Gravity Switch Fixed

I’m now also using .AddForce() to propel the player upwards and also along when the thruster is used.

24/03/22 – Scrum sheet

While the exam this week slowed progress slightly we should be ok, its good to know that the model is almost finished and should be done in the next few days.

Week 8 Burndown chart:

Mid Project Reflection

The technical side of the project seems to be running smoothly, all gameplay mechanics seem to be working well and the first map is completed with the second one being in development. The design side of the project however is a different story. We are now half way through this project the and player model has not yet been completed yet alone textured, rigged or animated. Going forward I would say that we need to make sure we communicate better between team members to understand why it’s not being made at the speed we expected and what we would need to do to help it be done soon.

We are having Scrum meetings most days and recording these on our blogs as well as our burndown chart that we also update weekly. My blog has improved quite a lot since the beginning of the project, at the start of the year I would simply post what I was working on I now explain what I’m doing and why as well as any issues I come across.

25/03/22 – Scrum Sheet

As shown above 3D model production, in particular the player model, has slowed down. This is worrying for me as I’m not confident that we will be able to hit our MVP deadline.

Online Multiplayer

I have begun the process of adding online multiplayer to the game. Using Photon I have created a server for the game to run on and have started to write code to make it work.

Skills Reflection

The main skill I’m using in this project is programming, I began learning this skill in GCSE computer science and then adapted those skills in year one for game development in C#. During year two I have further developed these skills to help with the projects I’ve worked on.

06/04/22 – Scrum Sheet

Plastic SCM

Unity Collaborate, the system we are using to co-develop our game, has been switched out in favor of Unity’s new Plastic SCM system. This would be ok however this system is blocked by the college.

I was able to get Plastic SCM up and running at home and countinued work on the project.

Unity Relay and Lobby

I decided against using Photon, instead using Unity Relay and Lobby pluggins. Using a tutorial from MECode on YouTube I have been able to connect two players in a lobby together.

This is a good start, however as you can see there are some issues. Firstly the movement of the players is not being shown across screens, also when the second player spawned in the first player seemed to teleport to their location, also both players seemed to jump at the same time. I don’t know why any of this is happening or how to fix it, however over the next few weeks one of my main priorities will be finding out.

Animations

Travis managed to get his animations finished and sent to me to add into the game. I did this by having each animation playing on loop under the character game object and then using code to enable and disable them as necessary.

Here are all the animations shown in engine:

Gravity Guys Trailer Plan

I’ve been tasked with creating a trailer for Gravity Guys to show at our industry pitch on May 6th, here is my plan for it:

  • (Cutscene)
  • Fade from black
  • 2001 space odyssey theme playing (similar royalty free if copyright is an issue)
  • Space background
  • Slow motion ball flies through air into hoop
  • Player walks onto screen
  • “Gravity Guys” logo
  • (Cut to game play)
  • Game play plays over music
  • Text Splashes onto screen every few seconds
  • “Jump to the stars”, “Zero G Action”, “”Proper mint like! *****” – Owen Bates”
  • Music ends
  • Final screen shows Gravity guys logo and release date
  • Team Credits at bottom of screen

Trailer Storyboards

04/05/22 Scrum Meeting

At present we only have 12 days remaining in this project, I am not confident in my ability to produce an online multiplayer experience in this time while also keeping with my other responsibilities. I raised this issue with Roya and we both agreed that in the interest of having a completed product by the deadline we would cut multiplayer from the game. After consulting the rest of the team we unanimously agreed that this would be the best course of action. Therefore, from this point onward Gravity Guys will be developed as a single player experience.

Also as shown above, deadlines are becoming an issue however the cutting of multiplayer should help make things a lot more manageable. Plastic SCM is also not working as intended, this makes collaboration difficult yet not impossible. Me and Roya will talk in the near future about how to best work together in engine going forward.

Final Trailer

Overall I’m happy with how the trailer came out. The only problem I have is the use of stock music instead of orignal music, however since we didn’t recive music from reiss until after the video was published this was unavoidable.

Industry Pitch

Today we pitched our game to Stephen Hey, an Indie Game and AAA Markerting specialist, as well as the rest of our class. We were about as well prepared as I think we reasonably could have been, we had a powerpoint presentation, trailer and a plan of what each of us was going to say. I talked about music in our game as well as how we would use investment. My trailer was also shown, I believe it was well recieved with lecturer Matthew Hall describing it as “Well organised… with good pacing”. It was mentioned that the trailer could have been better if I had used original music instead of stock music however, as described above, this was out of my control.

Gameplay Music

Reiss managed to get back to us with some music he produced for Gravity Guys, it will be used during gameplay.

Plan for converting game to single player

As previously mentioned, Gravity Guys will now be developed as a single player game. To do this I will follow these steps:

  • Add a timer script and UI element
  • Freeze the player once timer is at zero
  • Add a results screen showing the score
  • Add a leaderboard (Stretch goal)

Following these steps should transform gravity guys into a complete single player experience.

Timer

To create the timer I made a TimeKeeper script, it controls the “Three”, “Two”, “One”, “Go” UI elements before enabling the Audio Source and counting down 90 seconds. The “timeUI” element shows the player how much time is left. After 90 seconds, the script disables the Audio Source and enables the “TimeUp” UI element. The player freezing before and after the timer is handled by the “ThirdPersonCharcterController” script with an if statment covering the movement code. Next I will work on creating a results screen for the player to be sent to after the timer has expired.

Results Screen/Leaderboard

After the game the player is sent to the results screen, here they can see their score and submit it to the leaderboard I created using dreamlo.com. I made this with the help of a tutorial by Royal Skies.

10/05/22 Scrum Sheet

As shown above, progress is running smoothly and we expect to reach our targets by the deadline.

Sound Effects

I added some sound effects to the game, these include ticking noises at the beggining of the game, a whistle at the start and end of the game, a jetpack noise and a sound for when the player scores. Each of these was downloaded from freesound.org.

Updated UI

Using assets made by Roya, the UI has recieved a major overhaul that allows it to better fit the theme of the game.

Synoptic Project Retrospective

1 – My biggest achievment in the project is creating a complete, fun game thats pretty much bug free.

2 – Three things I have learned on this project would be:

  • How to organise my time effectivley
  • How to deal with changes to the original plan
  • How to focus on the important elements of gameplay

3 – Three things I could improve if I did the project again:

  • Facilitating communication between team members
  • Setting realistic goals and expectations
  • Allowing more time for work/life balance

4 – Project managment has overall been good, SCRUM meetings were held every few days. Roya was a good project leader, often checking how work was going and helping out where she could.

5 – Communication was slightly more of an issue for some team members. Communication between myself and Roya and Travis was good, communication with Lewis was more of a challenge however we managed to communicate well despite this.

6 – in terms of technical outcomes, all gameplay features work pretty much exactly as Roya envisioned them and the game also runs smoothly with no bugs interupting gameplay. For these reasons I would say my technical outcomes have been very good.

7 – The biggest challenge for me during development was keeping a work/life balance. Trying to develop the game while also working a part-time job and having a life was hard and there were some times where I overworked myself and burned myself out. In future projects I will attempt to manage this better.

8 – The advice I would give to a year 1 would be to not sacrifice their mental and/or physical health for their projects. This project has overall been a positive experience that i have loved for the most part but I must admit that the work conditions I put myself under caused alot of stress, anxiety, sleep deprivation, sickness, etc. It wasn’t healthy, no game or grade is worth putting your health under that kind of strain, so I would advise year 1s to look after themselves. Take breaks, eat proper meals, sleep when they should, don’t let projects like this take over your life.

Technical Showcase

I recorded a video showing everything I created in the game while also outlining some things we wish could have been added as well:

Game Download

The completed game is now available to download for free below:

https://royatlr.itch.io/gravity-guys

Showcase

For the showcase on June 30th we decided to make posters for the game in the style of famous space movies. Roya chose 2001: A Space Odyssey, Travis chose Star Wars and I Chose Interstellar.

Here is the reference image I used and the poster I produced:

Design a site like this with WordPress.com
Get started