A downloadable game for Android

Make Your Pet was my sixth game, and third game with Unstoppable Games, the genre is sort of a simulation game. You get to create your own custom pet and then sell them! This game is all about creativity and fun in getting to create your own wacky pet from painting to accessories.

Game Mechanics:

  • Implemented skinned meshes with accessories that can be enabled and disabled if they're used or not. Each pet has the same accessories, but positioned and fitted differently.
  • Used the painting mechanic from ShoeShop3D but altered it to be able to paint textures rather than just colors
  • Customer sometimes asks for a certain animal to be made, or it will sometimes just say make your own. This can be seen via the dropdown that says zoom at the top left
  • Used enums for states, instantiating GameObjects as needed as well as moving the camera to different positions per state, and changing the current mechanics

Challenges & Solutions:

  • We went into this never having created outfits or accessories for a character before so we didn't know how to approach it. What we ended up coming up with is that we would just have the pets meshes just have the objects with them using the same skeleton, and to disable the parts until they were toggled
  • We needed a way to save the pet data including accessories, so we did the old way of saving a small version of the texture png, as well as deciding to save the accessories data in a string format with specific characters being the id for the accessories

What I'd do differently:

  • Instead of just enums for the different pet creation states I'd utilize the State Design Pattern. So that everything can be easily extendable, to where I can easily call different methods based on state update, state begin, and state end for example.
  • Instead of each button being manually placed and the content inside it, I would create a system to dynamically load that data from a scriptable object and fill in the buttons as needed as well as their associated ids.
  • For the accessory saving system, to allow for more accessories in the future I'd likely just either save a list of the toggled accessories id's (actual short names), or save a string of them with their ids separated by a semicolon.
  • I would of course use a dependency injection framework like Zenject for an all around cleaner, more modular way to program and test

Key Takeaways:

  • With every project comes it's learnings, in this project I learned to use Skinned Meshes and create accessories for them. I also learned how to save different data in different formats like the accessories being saved as a string that is parsed. This project was greatly helped by reusing code, and that in itself was a learning opportunity that if I can design code to be generic enough to be used/slightly extended, I can save tons of time and production will increase ten fold.

Download

Download
Make Your Pet.apk 123 MB