Dropping the puck

I’ve started working on an Air Hockey game for Android with my buddy Patrick Lesage. He’s a talented artist who has helped me in the past with “Anyone for a sodium tube” which was for our submission into a game jam last year.

This time we thought it would be fun to create a two player 3D air hockey game for android tablets. This game isn’t for a game jam so I’m feeling less pressure to work on it and I’ve been finding myself procrastinating more on it. Perhaps putting this blog public will give me incentive to work on it more.

The Prototype:

I started the project by hacking together a prototype to see how the core mechanics would work. I used a physics material to make the ice slippery and one to make the paddles and puck bouncy. The nets have a trigger collider which is used to trigger a goal.

Test #1

Test #2

Test #3

With two players I had a problem with multiple touch input. If a player moved their finger over the center line it would affect the other players paddle. To stop this from happening I keep track of each finger and if the paddle is already being controlled by a touch the newer touch is ignored. This way if one player accidentally goes over the center line it wouldn’t mess up the other player.

I also had an issue early on when the puck was moving too fast it would go right through the wall ignoring the collision entirely. This was a pretty easy fix, the default physics update speed was too low, once I increased the physics speed I didn’t have this issue any longer.

Release 1 plans:

We’re planning a few releases for this project. The first release will be a traditional air hockey game with the ability to select a few rinks and a few different coloured paddles.

Patrick has been busy sketching out ideas for our application screens and flow starting with the icon and into the main menu.

Below are some main menu ideas. We’ve been trying to reduce the amount of clicks/touches a user needs to do to get into a game.

I’m back to doing 3D models! I haven’t touched any 3D in a while so
I started playing around with Blender again. While texturing I came across Substance Painter and decided to give the demo a try. After a couple hours I decided to buy the indie bundle which includes Painter 2, Designer 6 and Bitmap2Material 3. I haven’t tried out Btmap2Material but Painter and Designer are pretty awesome.

This is the first time I’ve used scriptable objects in a project. I was looking for a way to manage the rink levels and I’ve found that scriptable objects are great for managing data. It allows me to relate a mesh model with other meta information like number of players and default puck. I’ll be adding more meta data as I need it.

I have another scriptable object that has a list of the rinks and from my level loading controller I can load any of the levels by key.

Right now I’m working on the menu and hooking it up to the level load controller. I have a few custom UI scripts I’m making for touch control then I’ll be working on refining the game play.

Some other things that are on my mind is the AI. I really want build an AI for controlling the paddle for single player. I’m not sure how difficult it will be but I’ll be taking pictures throughout the development. I’m sure there’ll be some hilarious broken AI moments.

After the first release:

After we get a first release out and stable. I’m hoping to add some more wacky things to the game like power ups and strange rink themes. I’ll save that for another blog. Need to focus on the first release right now.