Jam Jam Ping Ping Swing Swing
Jam Jam Ping Ping Swing Swing
Physics:
I created several new materials that I added to the colliders of game objects, and this is what makes them all bouncy. There was a little bit of a learning curve when doing this because it looks like in unity there are multiple "materials" that can be created, but only one kind will appear in the drop down menu of "materials" for 2D colliders. I think you want to make a "2D physics material" specifically (or something like that), what I do know is that if I see a green tennis ball looking thing pop up in my assets folder, then I did the correct thing. Playing around with the bounce material was pretty interesting. I still don't understand all the settings that you can adjust, but I do know that sometimes I'd create these crazy bounces where the game object would fly totally off the boundaries, and even zooming out in scene view I could not find it.
I have several OnCollisionEnter2D functions within my code. I used them to detect when to destroy the thingies as they are touched, and to detect the fail/lose state for the player. The code tied to the win state is also tied to OnCollisionEnter2D since the win state for each level is when all the thingies have been successfully touched and destroyed.
Iteration:
My first version of the game didn't have any bouncy materials, and it felt super static and boring. Decreasing the gravity did not help, it only made things feel awkward and strangely fluffy? There was no satisfaction in the experience. However, by adding in a bouncy material, the whole experience became immediately more dynamic and engaging. Then, it came to adjusting the bounce properties. I originally just had one material that was super super bouncy, and this made it so that anytime the player successfully collided with anything it would just go flying off the screen. I first tried to fix this by taking out the bounce from some objects, but then the game went back to feeling clunky and stiff again -- I really wanted that light and springy feel without the weightlessness of zero gravity. I made three kinds of bouncy materials all with slightly altered traits until I came up with a combination I was satisfied with.
The win condition also changed over time -- it was originally going to be closer to pinball where the thingies would not be destroyed upon collision and the player's goal was to continuously bounce off of them, with each collision being a point, and having to hit a certain amount of points to "win". When testing it out myself, I found that the player kept on bouncing off the screen so I added a horizontal screen wrap, but still the player fell off the screen really easily. Also, I began to find the act of just watching the ball bounce back and forth between objects a little tedious because I just wanted to get in there and see the impact of my input right away, and then try again right away if the attempt was not good. It was at this point I redesigned my levels and changed the win condition so that now you had to touch all the objects only once so that you could pass. After touching an object it would change colors indicating that it had been "touched" but would stay on the screen and was still interactable with. This version of the game felt like a sadder version of pinball, and it was at this point where I finally decided to just have the thingies be destroyed upon collision. Now there was no redundant bouncing on the same object over and over again, and I felt satisfaction in seeing my progress within the level through the disappearing of onscreen assets.
I wanted to add more game feel and feedback for players with sounds that played every time the thingies got destroyed, but every time I tried adding a sound source to my prefab I would run into an error. I messed around with my code a little and ended up breaking some of it, so I ended up passing on adding to game feel this time around -- in a perfect would there would be particles, sound effects, and screen shakes though! Prefabs will be the bane of me until I can get the hang of them.
Freshness:
This is my first time attempting a game with "levels" in unity. I still have issues with scene changes sometimes, so I was not really sure what the best way to implement a levels system in a way I could handle was. I don't think the way I set things up is the most traditional as there is no level selection area, but for a first attempt I am satisfied with the way things turned out. I think this is the first project of mine that I can see as a semi-decent prototype to be expanded on later. I feel like my other games don't have a solid enough foundation to later build a more cohesive game upon.
git: https://github.com/Pompoko-Barry/EGAM102_S25
submission form: https://docs.google.com/document/d/1pNJyPXHuqR3V4nvrZgSukm02RsB-OXXHYx_HcN9yRJU/...
Leave a comment
Log in with itch.io to leave a comment.