Milestone 10: Project Post-Mortem (Naomi)

Overview

(**Not sure what happened with the text in this section, sorry about that)

Throughout this semester, my team members and I worked on a desktop and VR compatible game. It is inspired by a project we did in Sensor-Based Interaction in 2024, but has a much more in-depth premise. The following is a summary of the game written by Sumaiya on our itch.io page:

"In MagicaLuna: The Sequel, Princess Luna sends you on a mission to fight through her alien infested ship, using your magical wand to defeat enemies and solve puzzles. Master your elemental powers, unlock your full transformation and set Princess Luna free!"

During our final sprint, we mainly focused on aesthetics, such as animations and sounds. However, throughout the term, we have worked on a variety of elements both together and individually

Collaborative Tasks 

In the early development stages of the project, we worked together a lot. Tasks included: 
  • brainstorming ideas
  • coming up with a solid concept once we picked an idea
  • writing the proposal document
  • picking out animations in Mixamo
  • deciding on sound effects and music based on a list made by myself and Sumiaya
  • Alpha, Beta and Final presentation slides
Towards the end of the project, we also met up in-person frequently, spending most of the day together so that it would be easier to communicate and help each other out.

Modelling, UV Mapping and Texturing

I was primarily responsible for the modelling the characters and a few functional and non-functional objects in our game. Sumaiya created character reference sheets for me to refer to while modelling. The characters I modelled where Luna, the three different smaller enemies and the final boss. Modelling took quite a while, especially for Luna. After the characters are modelled, I UV mapped them primarily using the planar projection and then manually cutting and sewing them. I then textured them. For earlier versions, I used temporary materials that looked somewhat like their final versions. I assigned these just using Maya's hypershade, and later created the final versions with Adobe Substance painter. Below is what the final character models looked like: 


Some other models I worked on were the moon and the capsule prison where Luna is stuck. These are non-functional:



And finally, I also worked on the wand and the health restoration capusule. 




Rigging 

I did a bit of rigging for this project as well. Luna would have taken too long to rig manually, hence why I used Mixamo for her. However, for the final boss, I made a simple rig, mainly just a spine and arms so that I could have the model bend and appear as if its breathing. Below is what that rig looks like: 


Animation and Implementation

As mentioned in the previous section, I used Mixamo to rig and animate Luna. She ended up having three different animations applied to her which she enacts in different parts of the game: 


I animated the enemies by just keying their actual geometry, mainly the scale and transform attributes. For the boss I animated it using its rig. Gifs of this animations can be found on slides 12 and 13 of our final presentation.
I also did some very small animations of the wand swinging (for desktop mode) and the glass of the health restoration chamber spinning.
I implemented these into Unity by separating the animation clips, using animation controllers with triggers and then adding some scripts to tell the animations when to play. 

Coding

Some core coding tasks that I worked on include:
  • Regular enemy behaviour such as patrolling, chasing, turning to face the player and attacking with a particle effect I made and attatched to it
  • Enemy spawners
  • Health restoration chamber functionality
  • Boss attacking, moving towards the player, dying and playing specific sound effects at certain times (I also created and implemented all particle effects on the boss). I also enhanced the base code that Sumaiya made for the boss teleportation
  • Base code for attacking enemies with the wand. My team members later enhanced it
  • Head bobbing movement and footstep sounds for the desktop player's point of view
  • Getting Luna to perform different animations depending on what scene she is in
  • Switching scene functionality
  • My code from assignment 2 was used to keep track of whether the VR or Desktop option from the main menu was selected
I also fixed any bugs or unintended behaviour in each of these elements.

Sound Design

Since I have a background in music and sound, I worked a lot on the sound design, both the sound effects and music. Sumaiya and I browsed Pixabay for sounds and compiled a list. All three of us decided on sounds to use together. In the case where we couldn't find what we were looking for, I would edit multiple sounds and effects together in CapCut to give us something more satisfying.


I then implemented these into unity using various scripts. Some where simple, as I just had to call it inside a function when it was supposed to play. Others were more complicated. For example, the final boss stores an array of sounds and while it is alive, it plays these sounds randomly.

Video Editing

Also using CapCut, I edited both the beta and final presentation demo videos, cutting out unnecessary parts, speeding up long parts and adding built in effects and text animations to make the videos more appealing.

Trello Board

Finally, here is what our Trello board looks like:
 

We had to scrap a few things such as the pause/play button and implementing custom VR hands because they were complicated, not working, and were not a priority. I also added the "most urgent" section to keep track of major bugs that we still had when time was running out. In all, we got most tasks done, prioritizing the core ones.

Challenges

We faced a lot of challenges in this project in general. From having a hard time deciding on an idea and scope, to constant strange bugs, we faced many challenges that we eventually overcame by helping each other out and getting help in class. 
One challenge that we had throughout the project was time contraints. We couldn't always get the amount of work we wanted to have done in a sprint due to having other classes which could also sometimes get very heavy. 
In the final sprint, I had a lot of trouble animating Luna in Mixamo. The files kept getting corrupted, or I would make a mistake and have to start over constantly when trying to combine the animations. I also had to keep re auto rigging the model because I wouldn't be happy with where I put a joint marker (it would cause the model to animate strangely). One of the most notable challenges would have to be this absurd bug with the model's eye: 


For some reason, the UV map was getting completely distorted throughout the animation, as if it had an animation applied to it. I tried many things to fix it, but in the end, I had to completely re-import the model into Mixamo and start over.
 

Successes

In all, how the game turned out was a huge success. We are all very happy with what we created. The UI, sound, VR mode, animations and etc are all elements we are proud of. Seeing the game go from our very rough alpha version was  very satisfying. 
It was also a huge success that we rarely had any merge conflicts in GitHub. There were a few here and there, but they were always very small and easy to fix

Total Time Spent

In the final sprint, we spent approximately 66.25 hours on the project:

My Tasks

  • Finalizing wand model: 1 hour
  • Finalizing Textures on Luna and the wand: 2.5 hours
  • Animating Luna with Mixamo and implementation into Unity: 8 hours
  • Fixing Bugs with Final Boss: 6 hours
  • Boss sound effects: 3 hours
  • Main scene music variation implementation: 1.5 hours
  • Implementing boss animations: 2 hours
  • Footstep sound and movement for desktop player: 30 minutes
  • Emission maps for enemy's eyes and implementation: 45 minutes
  • Fixing bug with wand not animating: 15 minutes
  • Regular enemy behaviour enhancements: 3 hours
  • Boss behaviour enhancements: 10 hours.
  • Organizing assets and scene heirarchy: 45 minutes

Sumiaya's Tasks

  • Winning/Losing Cutscenes Setup and UI: 3 hours
  • Losing cut scene implementation: 1 hour
  • Desktop/VR instructions tabs and UI: 2 hours
  • Audio Manager script creation and integration: 4 hours
  • Itch.io page setup and game poster design: 2 hours
  • Fixing Health Restoration: 1 hour

Zineb's Tasks

  • Fixing bugs with final boss in vr/colliders in the environment: 5hrs 
  • Implementing the UI to VR: 1hr
  • Adding player guides: 2hrs
  • Building and testing: 3hrs

All

Final Presentation Slides: 3 hours

Comments

Popular Posts