1. I created an Audio Manager in Unity, following Pandemonium' (2021) tutorial series.
Pandemonium. (2021, November 14). Unity 2D Platformer for Complete Beginners - #11 AUDIO [Video]. YouTube. https://www.youtube.com/watch?v=7e6GJtm3FU4&list=RDCMUCpkMj5b5kl2_YApDvgUCVQQ&index=8
2. Using the AudioManager script, I was able to easily set up clips -such as a jump sound- in the respective scripts. The red underlined sections can be copy-pasted across the various objects, only needing slight adjustment to play the correct sound.
3. This clip is to demonstrate how the AudioManager controls both the jump and item pickup sounds.
4. I created some obstacles that the player must dodge. Each has a box collider on it to stop the player from clipping through it. However, clipping through is still possible on second contact with the collider, resulting in the player falling through the floor.
5. When I attempted to test the enemy character (lowered opacity for viewing) in context of the level obstacles, I found that it does not work correctly. Additionally, the player movement animations stop.
UPDATE: for this and the obstacles problem (step 4), Matt recommended changing the player's movement to velocity-based. This should let the code acknowledge the physics involved with the various collisions. I couldn't figure out how to do this, even with help from my team's working scripts.
6. In order to solve the problems currently present, I had to make the decision to redo much of the work attached to the player character, including movement and animations. I'm using a tutorial series (CodingInFlow, 2021) that I've used before on a different project, so I know it works.
CodingInFlow. (2021, June 1). Player Movement | Build a 2D Platformer Game in Unity #3 [Video]. YouTube. https://www.youtube.com/watch?v=Uv5tfMSKlnU&list=PLrnPJCHvNZuCVTz6lvhR81nnaf1a-b67U&index=4
7. I don't know if the enemy collision is working properly, because when I play-test it flies off in the wrong direction. I attempted to fix this by flipping it on the x-axis but it didn't help.
8. I managed to get the sounds for jumping and transporter chip collection working properly, along with the standard animations. At present, the walking sound sometimes still plays as the player jumps, but it's a minor bug that I probably won't have time to correct.
10. This is the required length of the level. I couldn't work out how to tile the background in a way that would work for my minigame, so I just did it manually using prefabs.
11. With Siyuan's guidance, I was able to get this menu set up. I will just need to make the 'yes' option restart the level, and get 'no' to quit to the main menu.
12. I also created the green transporter at the top, next to the health bar. It spins at three different speeds to indicate increasing difficulty. In between programming and UI, I replaced the standard player sprite with custom Fame Trap animations and added in some background decoration.
13. At the moment, the enemy jumps when the player does, because it is trying to reach the exact position the player is in, hence the chase. However, I want it to only move on the x-axis but I couldn't figure out how to do this. I tried to import a few lines from the camera controller script to clamp the enemy's position on the y-axis.
14. I got the 'take damage' sound effect to play when the player's health is decreased. I used Unity's Scripting API to help me.
15. I forgot to take a screenshot of this, but Siyuan and I managed to get the last problems solved, with Matt's help. We decided to do away with the existing script for the enemy's movement as it was becoming increasingly complex and unreadable. Instead, we replaced it with a simpler script where the enemy moves consistently to the right regardless of the player's position and pauses for a brief period on collision.
This is the design for the continue menu, which will be triggered after a level is completed. I got the background image from J11Digitals (n.d.).
This is the main menu. I want to add an option to see the credits as well, but as of writing (Week 10) we are still discussing it. The background picture is from Royalty Free Artists (2020).
UPDATE: we agreed to add an option for the credits. I created a sprite of the word "credits" that can be used as a button.
J11Digitals. (n.d.). Geometric 80s shapes seamless pattern background vector image [Image]. VectorStock. https://www.vectorstock.com/royalty-free-vector/geometric-80s-shapes-seamless-pattern-background-vector-24223373
Royalty Free Artists. (2020). Retrowave 80s Grid Tunnel Animated VJ Loop Video Background for Edits [Image]. YouTube. https://www.youtube.com/watch?v=JLMhobTm10M
These are the sound effects we are going to use for our minigames. It is the narrowed down version of a much bigger sound library.
For the audio, we decided as a group to go with sound effects and music that is reminiscent of the 80's. We chose to standardize SFX across the whole minigame package. Because it is a package and not just a collection of games, the plan is to have consistent motifs such as theme music, transport animations and the spinning Transporter UI element.
1. I found a clip online of a transporter sound (Robinhood76, 2014), but it had three variations of the clip. After downloading it, I cropped out the last two using Audacity. This is the clip exactly as I got it.
2. This is after I edited the clip a little to make it seem more like an 80's arcade sound. I changed the length to better fit a transporting animation, and tweaked the pitch until I'd mostly managed to eliminate the really high tone at the beginning.
Robinhood76. (2014, March 19). 04977 analog game teleport dings.wav. Freesound. Retrieved November 17, 2022 from https://freesound.org/people/Robinhood76/sounds/223678/
This is the reference image I found for the teleport animation.
trouxasoueu. (2020). Portal Pixel Art GIF [Image]. Tenor. https://tenor.com/view/portal-pixel-art-pixelized-spinning-whirlpool-gif-16926051
An early sketch of the teleportation animation that will play when the player wins the level.
This is the final design for our teleporter. It was going to take an unjustifiably long time to animate, so my suggestion was to make the sprite quickly spin and grow on the screen to give the illusion of a portal opening.
Proficiency: How did you develop your technical skills and knowledge? Give examples of the skills and knowledge, techniques, and self-directed research that inform your project (min. 50 words).
A skill that I'm developing in this project is editing audio with Audacity. Previously, I had a tiny bit of experience in changing pitch but I had an opportunity to also learn how to edit the duration of a clip. Another thing that I'm practicing is 2D animation using sprite sheets. I started out knowing next to nothing about animation, and while I still find it a daunting task, it's a little easier now that I understand how to think about character movement.
Additionally, I'm starting to get better at identifying and diagnosing problems in my code. Although I still have a long way to go, the number of tutorials I've watched and trial-and-error practicing is finally beginning to pay off. The series that I credit this to the most would be CodingInFlow's (2021) 2D platformer tutorials. I've referenced these quite a lot during this unit, but they've been completely invaluable in teaching me the basics of C# programming.
Process: How did you improve your workflows and processes, including changes and setbacks? Give specific examples of your research and how it influenced your creative process (min. 50 words).
Unfortunately, I had to do a second major iteration of the code, because nothing worked and I have neither the skills nor the time to fight with it. At the moment, I'm in the process of rewriting much of what has already been done. The lesson I've learned here is that it's better to follow one tutorial series to fill out as much functionality as possible, instead of trying to mash multiple different ones together.
It's a bit late for this project, but going forward I will make sure to have as comprehensive an asset list as possible from the start. Trying to make sure everyone had the assets they needed on time without having a list is extremely difficult, and caused me a lot of stress. I'm very relieved that the assets are pretty much finished now.
Person: What communication and collaboration skills did this project require, and how did you develop these skills? How did you manage collaboration, receiving and giving feedback to others? (min. 50 words)
We try our best to have team meetings every week where we consolidate our progress with the group goal and discuss any changes or ideas that would affect the whole project, such as menu design and audio. We're also keeping track of what tasks remain to be completed using Hack n' Plan, and re-evaluated this when we finished Brief 2 in order to monitor our scope. Due to the various roadblocks we've had to contend with, it's unsure whether we will need to bring our scope down even further. I'm a bit concerned that we won't have a shippable fourth minigame, but I'm not going to be working on it so all I can do is hope for the best.
CodingInFlow. (2021, May 29). Build a 2D Platformer Game in Unity | Unity Beginner Tutorial [Video Series]. YouTube. https://www.youtube.com/watch?v=Ii-scMenaOQ&list=PLrnPJCHvNZuCVTz6lvhR81nnaf1a-b67U
Appraisal: Overall, how successful was your project? What worked or didn't work, and why? How did it match with your expectations? Give specific examples, screenshots or links (min. 50 words).
Considering that we've managed to put together a coherent set of minigames, complete with as much functionality and polish as we could get, I'd say this project was successful on the whole. Although fraught with problems, it's come together really well and I'm proud of what we've achieved this trimester. Our initial plan was six minigames but then one member dropped out early in the tri, so we cut it down to four. With the issues we were having along the way, we were prepared to inform Matt -around Weeks 9 and 10- that we'd reduced scope again to three games, but Siyuan worked incredibly hard to get the final one out in time. I'm very impressed with his skill and appreciative of his patience with me while we untangled all the knots my code had gotten into. The whole project turned out to be quite a bit more difficult than any of us expected.
Challenges: What obstacles did you overcome and how? What lessons did you learn? (min. 50 words)
I was keen to do the assets for the project because I felt it played into my creative strengths, as well as giving me some experience in a field I may choose to work in later on. We agreed on 8-bit sprites so as to fit into our overarching '80s theme, and I mistakenly believed it would be simple. Needless to say, I don't think I'll voluntarily do pixel art again. Learning how to create and use sprite sheets was a very steep learning curve for me, but I feel confident enough to possibly do so again in later projects. However well the animation and asset production went, I unfortunately had terrible problems with my code throughout. I did my best but I had to get help more often than not, because the issues I was encountering were consistently beyond my skill to repair.
Future Goals: How will you improve your skills for future projects? What will you do differently in your next project? What will you repeat? (min. 50 words)
From now on, I will make sure to have as full a list as possible of assets, ahead of time. I didn't think to do this and it ended up costing me a lot of time trying to figure out on the fly what still needed to be done. Although this Brief required us all to do some coding, for the next major project I will focus on asset production and let someone with more experience handle the technical parts. That's not to say I don't want to learn, but I feel that I may have jumped in the deep end a bit and almost couldn't get my game done in time. Programming is still not my strongest suit, but I recognise that I've learned so much already. I hope that, in time, I'll have enough of an understanding to be able to solve most of my bugs myself.