https://www.pogal.net/

The adventures of Puffy.


The game's itch.io page

This was my FMP at university. I bought along a couple of friends to help me make it and i'm happy with the end result.


I learnt a lot from it and I got to work with my friends which was a lot of fun. Below are some of the systems my game used that I specifically created.





The animation


I created all the animations for puffy in photoshop using their timeline to keyframe the animations.Then I exported them frame by frame and then created the animation with those frames in unity. I however left his eyes and face out of some of the animations as I wanted to create a modular animation system with them.


You can see the basic animations in gif form bellow. Disclaimer the artwork is made by my friend Caleb Smith I only animated it.

Puffy inflating/deflating

Puffy Inflating Puffy Puffed up Puffy Deflating

Puffy Swim/Dash

Puffy Swim Dash.gif

The inspiration for the dash comes from a game called Awesome nauts and the character it takes it's inspiration from is Vinnie and spike who is a pufferfish called spike. One of their abilities is a very similar dash. (Not my art)


Vinnie and spike

Puffy Flying

Fly Start Flying Fly end

Shark Head

Fly Start Flying Fly end

The eyes and mouth were then added as separate sprites in unity which allowed me to script them.


The eyes follow the mouse along with having a separate Happy and sad eyes along the mouths which can separately be changed through script although I never ended up using this with the exception of the healthbar picture in the current build of the game. Bellow is a video of that system working within unity. A full video of all the expressions can be seen if you click on the gif.


Fly Start

The shark head animation showed above goes with this swimming animation.



To make this work. I created a shark swim animation like above but I cut off it's head. Then I animated that separately and linked up the frames in unity which took a few hours but the result meant I had a fully modular shark head that I could do anything with. You can see them separate Bellow


Flying


So Puffy is supposed to be a hybrid platformer. So one moment it's swimming and the next it's flying almost seamlessly. To do this I have a trigger on the water that detects both when puffy has entered it and when puffy has exited it.


So essentially what I do once it detects puffy is no longer touching water is enable gravity, and add a new flap mechanic where flappy can flap his fins for some air time.


Then if Puffy enters the water he goes back into swimming mode.


This is a mechanic that I haven't really seen from other platformer. It's normal to be on land and then go swimming but a fish flying seems a bit different in my opinion. Either way i'm very happy with how it turned out


This mechanic was harder to make than it sounded, it was actually quite hard to get to work without bugs. It went through many iterations such as having triggers on both the water and the air. And some ideas even used triggers only in the air and not the water. However the main reason for it being the way it is now was their was quite a few bugs with the other way. Especially if you dashed into the water at speed.


PuffyFlyingInGame.gif

Dashing and inflating


Puffy can inflate by pressing F and dash by pressing R. The main use of the dash is to push sharks away since they are relentless and once they see you they will chase you forever


There was many ideas of what the dash should do. But I decided it would be better if the player finds their own methods. For example using the dash out of water will propel puffy very far in the direction he dashes and even further if he is moving in that direction.


And as mentioned before it can be used to knock sharks away or if you are inflated multiple sharks.


Dashing

Dash video.gif

Inflating

Inflating Video.gif

Shark AI

The sharks are built to follow their specific waypoints in the world. I did this by assigning a shark a ID and then the waypoints the same ID. Then it will go through the object tags in a array and follow the waypoints Set to that tag and ID.


This allowed my friend Caleb to easily implement the sharks into the levels he designed.


SharkWaypoint.gif

The shark also has a change in it's AI if puffy is within it's line of sight. If the shark spots puffy via a Raycast between the shark and the waypoint it will start to chase puffy.


Then it has a trigger box near the head that if puffy is near will open the sharks mouth for a even scarier effect

Flying sharks

You would be forgiven for thinking the flying sharks were a mistake. But they are actually built to be like that so the player can't cheese the sharks. It's also really fun to hear new players reactions to this mechanic


The original plan was to have seagulls. Caleb drew up a model of one but due to us only having three months to make this game I didn't have time to animate and code them. But flying sharks made a great substitute