MAD: Game DevLog #2

Hello everyone! Time for devlog number #2!

In the last week, we’ve implemented transparent walls and the player animation state machine. Max continued designing sprites for the game and Andrei implemented the bomb animations and it is working on some enemies. The next week I will try to implement and finish the UpgradeManager, a Singleton class that shall handle the dispatch player powerups.

The transparent walls were implemented using Raycasts the wall will cast a ray in the up direction and if it detects the Player collider it will reduce it’s alpha value to 50%, when the ray doesn’t collide with anything the alpha values goes up to 100%. In the following picture the raycast is drawn with a red line:

When I first attempted to do the player animation state machine I got lost very quickly and I quickly abandoned the idea. I tried implementing it with a blending tree, hoping that it would work that way but it didn’t.

Blend Trees are used to blend multiple animations smoothly, when you have a walking/running animation in 2D you’d like to play the “WalkLeft” animation when X is -1 and Y is Don’tCare. To achieve this Unity gives us blend trees:

The problem with this approach is that it doesn’t work when you have idleLeft and runLeft, because the blend tree doesn’t know what idle to pick when both X and Y are 0. After taking a break the solution just popped into my head: Use a state machine instead of a blend tree. From any state you can go into the RunX state but after you’re done with the RunX state you’ll transition to IdleX.

This works as expected but with a tradeoff, you can’t move in diagonals. Each transition has a rule for AnimationX or AnimationY attached to it, and if you change both X and Y at the same time you randomly jump to RunX and RunY animations, making it look like a glitch.

In Unity X and Y are custom parameters for the state machine, it doesn’t necessarily need to be the X and Y position of the game object. You can tweak your movement handling code to set AnimationX and AnimationY to prefer the max of those two and set the other to 0.

To work collaboratively on this project we use Github for code and Google Drive for assets sharing.

If you want to use Github for your Unity project I’ll recommend that you generate a proper .gitignore file.

Thanks for reading!

In case you’re wondering from where the title MAD comes it just comes from our names: Maxi, Andrei and Denis. Since this is our first game and out first attempt in doing something together I had no idea what name to chose.

If you wanna start developing your first game with Unity, we’ve found the following video lectures to be quite motivational and helpful: https://learn.unity.com/tutorial/your-first-game

2 thoughts on “MAD: Game DevLog #2

  1. So far this is looking awesome. Nice work to you and your team. Will be following your progress closely. I’ve also started a devlog and find it to be a great way to keep track of progress.

    Also good to see you are using git from the get-go. 🙂

    Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.