Notes:
'Fame Trap' - side scrolling platformer (e.g. Super Mario 3, Terraria) where the player must evade hysterical fans. Can try procedural generation for map or design really long one manually - needs to get increasingly difficult. Jump using SPACEBAR and move back and forth using A and D keys. If the player stumbles or takes too long, the crowd gets closer and may catch up - if this happens, the game is over and the player must restart. The piece of the Transporter is towards the end and reaching it represents winning.
two direction movement (left and right)
jump mechanic (spacebar key)
crowd (single sprite) following at set speed
UI records remaining percentage of health
Animation/end screen UI when player dies OR wins
collection of the Teleporter piece triggers transportation ('checkpoint')
Funky rock n' roll OR blinky arcade music as background sound
sounds for jumping and stumbling
1. This is a screenshot of my minigame, 'Fame Trap'. It has the floor plane and the Player sprite. I have implemented the character art I drew last week.
2. Screenshot of the rigidbody physics working.
3. The script I created using the tutorial (Pandemonium, 2020) to get the player to move left and right. Unfortunately, it doesn't work at this point. The sprite falls over before moving, so I think I've imported it on the wrong rotation.
UPDATE: asked for help and managed to fix this by freezing the rotation axes.
Pandemonium. (2020, December 5). Unity 2D Platformer for Complete Beginners - #1 PLAYER MOVEMENT [Video]. Youtube. https://www.youtube.com/watch?v=TcranVQUQ5U&ab_channel=Pandemonium
4. Screenshot of the movement script working properly.
5. I added a simple jump function to the movement script. The velocity of the jump can be changed independent of the movement speed by replacing the word "speed" with the desired number.
6. I added the Quantum Transporter chip to the prototype and created a script that would allow the player to pick it up. In later weeks, I will try to have the action also trigger an ending animation. I used a script from last trimester as a template for this.
7. Capture of the jump and chip collection scripts working correctly. I adjusted the velocity to be lower than movement speed, because the character was leaping out of frame. The next step will be to make the player only jump to a certain height no matter how long the Spacebar is held for.
8. Following @MoreBBlakeyyy's tutorial, I created a basic enemy sprite and attached a script that would allow it to chase the Player.
MoreBBlakeyyy. (2022, January 17). Unity simple 2D Enemy AI Follow Tutorial [Video]. YouTube. https://www.youtube.com/watch?v=2SXa10ILJms
9. I was able to get the camera to follow the player by constraining it to only move along the x-axis. I used a tutorial by @LetsMakeAGameTogether on YouTube.
Lets Make A Game Together. (2017, May 2). Unity Tutorial - 2D Side Scroller (Super Platformer Bros) Episode 2 - Camera & Death [Video]. YouTube. https://www.youtube.com/watch?v=y3-P2vktSrc
10. I created a health bar using a sprite I drew. I followed Pandemonium's (2020) tutorials to learn how to do this. There is also a player health script to go along with it.
Night Run Studios (2022, March 7). 1. Enemies that Deal Damage--Just Add Enemies! (2D Unity Tutorial) [Video]. YouTube. https://www.youtube.com/watch?v=KF3EVjOhN4c
11. Using a tutorial by Night Run Studio (2022), I created a script that will allow the enemy to damage the player. The idea is that the player must not be caught at all, so the enemy needs to be able to deal enough damage to instantly 'kill' the player. At present, this script doesn't work. I have no idea why, because everything is assigned correctly in the Inspector and I'm sure I've gotten all of my variable names right.
UPDATE: as it turns out, all I needed to do was turn off "is Trigger" in the enemy's box collider.
12. After much deliberation and adjusting, this is the movement script that allows the player to move left and right, jump and play the correct animations. I still need to define the jump height because trying to do so in the Animator was causing problems.
An early design for one of our UI elements. The idea is that each segment is a missing chip of the Quantum Transporter machine, and the player must collect them from all the minigames to put the machine back together and win.
UPDATE: after recolouring the golden center, this is now the final design.
This is the final design I decided on for the in-game chip that the player will need to collect. It will be a 2D asset in each mini-game, not a part of the UI.
I created the Sprite-sheets that we will need to animate the player character, Dr Michael. It took me a while to initially figure out how to do this, because I have no background in animation. I used Palef (2022) as a reference.
Palef, T. (2022, January 31). How to Make a Run Cycle in Pixel Art. Medium. https://medium.com/@thomaspalef/how-to-make-a-run-cycle-in-pixel-art-e72fb9c0b812
I drew a background for our flagship game, 'Soldier Boy', using Pixilart.com. I also used the colour-picking site Coolors.co to get this scheme. At present, there is no set level design but when that is sorted I will be able to add other elements to the environment.
Upsettingly, I didn't know to export this at a certain resolution so it had to be dismissed and redone (right). It was also brought to my attention that the ground-plane design was too complex. As a result, I produced the new version that will allow more flexibility in level design (below). The floor and background are separated for functionality, and intended to be layered on top of one another.
These are the images I used for inspiration when I designed the background for 'Soldier Boy'.
This is the background I created for my minigame, 'Fame Trap'. I used the same colour-picking and drawing websites as before.
I ended up having the same problem with this one as I did for 'Soldier Boy' and had to redraw it. I also found during testing that it was too brightly-coloured, and it was difficult to see the player character against it, so I darkened the colours a bit.
These are the images I found to use as inspiration, and from which I picked out the colours.
I tried to create a series of obstacles for the player to jump over and dodge. So far, I haven't tested it out yet to see if it will work.
This is the background and 'ground' plane that I drew for this minigame. I got these colours using Coolors.co as well.
For this minigame, I tried to source some side-scroller-type references, but these were the only ones I found that were simple enough for my purposes.
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).
This is my first project in 2D, so I am learning how sprites and 2D animation work as I go, with the help of many tutorials and guides. I'm finding that it is actually significantly more difficult than I anticipated; I thought that pixel art would be easy, but it turns out that you must keep to a strict export resolution otherwise certain sprites become blurry and, ironically, pixelated. Having said that, using sprite-sheets (once they're sized correctly) is enjoyable, and I like seeing the working animation in action. Additionally, GitKraken (Resources Technology Partners, 2022) is still proving complicated. I'm getting better at pushing changes to save them, but I sometimes forget and lose some of my progress.
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).
Because I haven't really done animations of any kind before, I needed some kind of guide as to how a character's movement might look. I found a tutorial online (Palef, 2022) that showed a three-frame run cycle. It was my inspiration for creating the running and jumping sprite-sheets for this project. I learnt the basic 'steps' of a movement animation, as opposed to how to pose the character. Unfortunately, I've come to realise that the background art and sprites that I've done are not all the same resolution. When I was exporting them, I didn't really understand how 2D animation worked; I just knew that I needed something to animate with. Although the art does not quite fit together, I'm going to leave it for now and fix it up during the polishing stage, because it's more important that we have functionality at this point.
As mentioned previously, I occasionally forget to push changes to my minigame up onto GitKraken. The worst time this happened was when I came into class to get a problem with the enemy AI solved, forgot to push the change, and opened the project at home to find myself back where I started. In the end, I managed to get the enemy working properly again with the help of my teammates. I've definitely learned that lesson 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)
As always, I found several tutorial videos online to help me. I also reached out to my group for assistance when I encountered a project-specific problem, or to keep them updated with art and sound progress. We've been really good about staying in contact which has been fantastic, as it means we can rely on each other for quick support when we need it. I've been responsible for the artwork of this project, but I also supplied the script and sprites required to have a health bar in our minigames.
Resources Technology Partners. (2022). GitKraken (8.9.1) [Computer software]. GitKraken. https://www.gitkraken.com/
Palef, T. (2022, January 31). How to Make a Run Cycle in Pixel Art. Medium. https://medium.com/@thomaspalef/how-to-make-a-run-cycle-in-pixel-art-e72fb9c0b812
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).
The objective with this brief was to have one minigame, Soldier Boy, fully polished, and have functional greyboxes for the others. I feel we've met the goal of finishing the one, although I've had some difficulties programming my minigame, Fame Trap. I've mostly managed to achieve the mechanics of this game, being the standard 'run-jump-take-damage' controls of a platformer, and because there's no form of combat I haven't had to worry about fight sequences.
Challenges: What obstacles did you overcome and how? What lessons did you learn? (min. 50 words)
I completely underestimated the number of spritesheets and animations I would have to create. As of writing (Saturday, Week 8), I still have a couple to do to make sure all of our minigames reach the same level of polish as Soldier Boy. Additionally, I had serious trouble with my programming scripts. Several times, I had to reach out for help because something was broken or I couldn't figure out what needed to come next. When I tried to implement a script that would allow the enemy to deal damage to the player, it refused to work. The enemy object followed the player properly, but did absolutely nothing beyond that. I brought it up in the following team meeting and our programming lead, Siyuan, graciously offered to bug-test my game for me to see what the problem was. We figured out that it was only the box collider "is trigger" function on the enemy, and by turning it off I got the script to work. It was a very frustrating weekend, but I'm extremely grateful for the help.
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)
The next time I have a project like this, I will sit down at the very beginning and figure out exactly how many different animations and/or assets that will be required, instead of finding out as I go. On a similar note, I don't know if I would opt for pixel art again. While it was great for keeping sprite dimensions the same, it felt pretty restricting at times and got confusing.