Devlog #3 The escapades of a manic coder


Hello!

I'm Bingus, the Tech Lead,  Coder and Sound Designer for A Bird In The Hand, and I'll give you some insights into the techy nerdy stuff of this project.

To start off, this project is made in Unity, and all the code is made in C#. I started this project by working towards a vertical slice, getting all the basic features of the game working (somewhat) smoothly so we could start playtesting. 

Starting with the simple stuff, when you first boot up the game, you load into the menu systems, which use UI buttons, scripts and various Unity scenes so the player can start the game, get into an options menu, quit the game, etc. The players are then spawned into the world when an input is detected using the Player Input Manager, which also handles split screen (I'll get to that later). The movement system uses a combination of the Unity Input System and generic movement scripts for walking, jumping and looking, which later adapted some pickup and interaction systems. The players can interact with and pick up specific objects such as plates, books and radios. If an object is breakable, the player can throw it against the ground or interact with it, which breaks it apart and adds to the birds' score. If enough objects are broken, the birds win, if all the birds get trapped in (picked up and placed near) the bird cage, the human wins, and if the five (5) minute timer runs out, it's a draw.

Now some more complicated stuff. Unity's Player Input Manager and a couple of scripts read specific inputs from keyboard & mouse, or controller to spawn in a player, and the Input Manager, combined with Cinemachine and some custom input scripts, can dynamically split the camera view into segments as more players join, up to a maximum of 4. As the players join, they're organised into an index system and counted, which lets certain scripts keep track of how many players there are and what character they're playing as. Each player can open their own menu and switch between characters, using UI buttons and some painstaking scripts, to swap the current character they're playing as, which have different heights/sizes, visuals and mechanics. If all the players stand in a certain area, a countdown begins, which then teleports all the players and starts the round, activating multiple UI panels and scripts. Once the round ends, the scene switches, which allows all the breakable objects to reset.

Most of the headaches and painful memories of this project came with the split-screen system and the character swap system, which both required extensive research and time to finally get working.

In the end, I'm happy with the work I've done on this project. It's been an amazing journey so far, and I've learnt so much more about coding and how Unity works in general.

Thanks for listening to my ramblings, and I hope to see you all in the future when my coding is legible!

- Bingus

Leave a comment

Log in with itch.io to leave a comment.