Inspiration

Tricky Towers

What it does

Video game where two player race to flower their plant first.

How we built it

Through Unity and C#, visual assets all generated from Craiyon.com, backgrounds removed at remove.bg, sound assets from Freesound.com, logo generated from app.logo.com, version control through GitHub.

Challenges we ran into

This is my first completed game, though I have worked on two games before, one in Unity and the other in Godot. My three largest challenges for this project were setting up a tick event system, dealing with a series of objects being continuously instantiated, and dealing with Unity's Quaternion rotation system. All of my game events are managed through a tick event system that several different objects subscribe their own local tick managers to, in order to keep track of how long they've existed and in order to instantiate new objects at a controlled pace. More on that, the plants in my game grow by a series of plant segments that continuously instantiate prefabs of themselves in a rotation and direction determined by the player in order to reach the end of the game. Finally rotation in Unity is surprisingly complicated, as there are two approaches to setting/reading rotation, which are quaternions and Euler angles. While Euler angles are useful for intuitively setting rotations, they are not useful for reading rotations, as since there are multiple Euler configurations for any given rotation, they are non-deterministic. While quaternions do not have this issue, they are entirely non-intuitive, containing a x,y,z, and w value, you would think this might just describe a Vector3 and a rotation; however, in reality the x,y, and z values represent complex numbers in order to store 3 dimensional rotations in the most memory efficient way possible. While this is nice for program efficiency, they are a nightmare to work with.

Accomplishments that we're proud of

Fully completing the game as a solo developer, including sound effects, music, art assets, a start screen, and a complete and fun multiplayer game loop. Technical aspects I'm proud of are the tick event system and creating plants that create themselves through a chain of instantiations in a player determined rotation and direction.

What we learned

I learned a lot about how to create a tick system in unity which I had wanted to learn for a while so I can make an RTS, I became very comfortable with instantiations and creating and destroying different types of game objects during runtime. I learned quite a bit about best practices when working with rotations in unity, between quaternions and Euler angles. And finally there were heaps for me to learn about creating an entire game as a solo dev, from utilizing AI to generate all of the art assets, to digging through free sound assets to find thematic sounds, all of this was very new to me.

What's next for Beat Your Friend's Sprout

Some features I would like to add but didn't get around to are making it so that your plant grows at a slower tick the further you face away from the sun, the ability to block your opponent off by overgrowing them, and potentially introducing roots that behave similar to the plant so that the player has more to multitask.

Built With

Share this project:

Updates