The Second Pablo (2024)
About
The character is named Pablo and you need to help him get to the finish line.
You can change his hat, glasses and moustache in the main menu.
You can beat your own time but their is no time limit to the game.
Their is 3 stars on the level that you can choose to pick up, to get them you need to go off the main route.
Project info
Teamsize: 1
Duration: 4 Weeks
Engine: Unity
Role: Game Designer, Programmer
Genre: Platformer
Platform: PC
Introduction
This game was developed as a school project over a 30-day period. It is a short platformer featuring a single level. A significant portion of the development time was dedicated to creating a character using configurable joints to achieve a wobbly movement effect. This project marked my first experience with Unity's joint system, which proved to be more challenging to learn than I initially anticipated.
Planning out the game
During the initial week of development, I dedicated my time and effort to meticulously planning out the game's core concepts and mechanics. This crucial phase allowed me to lay a solid foundation for the project and ensure a clear direction moving forward.
​
The game concept I've envisioned is a unique platformer that features a distinctively wobbly character as its protagonist. This unconventional design choice serves as the centerpiece of the gameplay experience, setting it apart from traditional platformers.
​
The primary goal of this game is to create an entertaining and humorous experience that elicits genuine laughter from players. By incorporating quirky physics and unexpected movements, the game aims to keep players engaged and amused throughout their journey.
​
To achieve this comedic effect, I've deliberately designed the character to be slightly challenging to control. This intentional difficulty adds an element of unpredictability and hilarity to the gameplay, as players struggle to navigate the character through various obstacles and challenges.
​
However, striking the right balance is crucial. The game is designed to be challenging enough to maintain player interest and provide a sense of accomplishment, but not so difficult as to cause frustration. This delicate equilibrium ensures that players remain motivated to progress through the levels while still enjoying the humorous aspects of the gameplay.
​
To add depth and replayability to the game, each level will feature three optional stars for players to collect. These stars are essential for achieving a full score and provide an additional layer of challenge for completionists. To obtain two of these stars, players will need to either deviate from the main path and return, or opt for a more challenging route. This design choice encourages exploration and rewards players who are willing to take risks or think creatively.
​
This design choice was implemented to create a multi-tiered level structure with varying elevations. By incorporating different y-levels throughout the game environment, I aimed to enhance the visual appeal and spatial complexity of each level. This approach not only adds depth to the game world but also introduces diverse gameplay opportunities, as players must navigate through a more intricate and vertically diverse landscape. The result is a more visually engaging and strategically interesting level design that challenges players to think and move in three dimensions, rather than just horizontally.
About the game
The fruit "puzzle" was added to make the player feel immersed and laugh when collecting and placing fruits on the correct platforms. Since there will be a timer to encourage fast level completion, this puzzle is designed to create a bit of stress while also making the player laugh at how ridiculous they look and feel when grabbing and carrying objects.
​
I designed the UI with bright colours to match the game's look and feel. I added sub windows for the various buttons and incorporated animations and sound effects for them. To make the main menu more lively, I included the character standing on clouds.
​
I implemented functionality for the winning screen to update and display the new high score accurately. It now shows when a better time is achieved, both on the main menu and the winning screen.
​
I added character customization options. Players can now change the character's glasses, hat, and moustache, these choices are saved using PlayerPrefs. The game then loads the new scene with the correct customization applied.
Design choices that changed
Initially, I allowed full aerial movement to give players a sense of freedom. Later, I reduced air movement speed to increase challenge and prevent easy obstacle avoidance. This change made jumping less advantageous and obstacles more effective.
​
For the player's collision with moving objects, I aimed for a strong knockback effect. Initially applying only upward force felt disorienting. Adding directional force based on the impact point created a more realistic and satisfying knockback, achieving the desired feeling of uncontrollable flight.
​
I wasn't satisfied with the feel of jumping and jump pads, so I switched from force mode impulse to velocity change. This method ignores the player's mass, which required me to fine-tune the values for more precise control.
​
One significant decision I made was to remove the character's legs and keep only small spheres as feet. This change came about because I couldn't get the character to behave as intended with the configurable joints. When moving the character in any direction, the legs would collapse, causing the hip to touch the ground. I experimented with various joint settings, movement controller adjustments, and mass changes. While I managed to achieve an acceptable feel, I wasn't satisfied with the result. As an experiment, I removed the legs entirely to see how it felt. This dramatically improved the overall movement, so I decided to keep this design for a better player experience.
​
When the player respawns, I need to move them to their respawn position by shifting the character's hip. The connected joints then follow, taking a moment to get into position. This delay can cause the character to get caught in the ground, as the joints move slower than the respawn time. To address this issue, I extended the timer and added a fade-in and fade-out screen with the text: "Please be patient… I am collecting my limbs…" While this solution doesn't completely resolve the problem, it significantly reduces its occurrence. I attempted to speed up the joint movement but couldn't find a workable method.
What I learned
I gained valuable experience working with Unity's joint system, particularly with connected joints, and learned how various settings significantly impact the character's movement. My goal was to create a platformer that not only functions well but also delivers a distinctive and charming gameplay experience. I aimed for a wobbly, endearing character that enhances player enjoyment, and I believe I achieved this.
​
If I were to use Unity's joint system again, I would focus even more on perfecting the character's movement. Additionally, I would conduct further research on optimizing character mobility with the joint system, as I encountered challenges with character respawning.
​
This project was both enjoyable and educational, as I designed and developed every aspect independently. This holistic approach allowed me to consider the integration of music, sound effects, visual effects, game design, and programming. I thoroughly enjoyed the process of ensuring that all components fit together seamlessly.