The inception of Island Mini Putt. A new video game experience that will revolutionize the game of golf as we know it... or maybe it's just a fun little mini golf game that takes place on an island :D

Art Direction

Mini golf has always been one of my favorite activities to do when ever I actually go outside. That's why when I was messing around in MagicaVoxel, trying to create some new weird "art" for my instagram account, this vision popped into my head. A lonely island in the middle of the ocean that has nothing on it except a classic windmill mini golf hole.

You can see the instagram post below I made on my account CheesePie1313. Be warned, there's a reason I call my instagram posts "art" (in quotes).


After creating and posting this masterpiece, it didn't take me long to think "what if I turned this into a game?" My ability to paint high resolution sprites and create highly detailed 3D models are pretty lacking at the moment. I like to collaborate with actual artists for games that have those kinds of things. But with voxel art, I'm able to create something half decent myself, so I felt this could be a fun solo project to take on.

Physics

Now that I had an art direction, the next step was to prove out the gameplay. So I hopped into Unity and spawned in a sphere and a plane.

I might go into this in more detail in a later blog post, but getting the physics of the sphere to behave like an actual golf ball was a bit of a process. The default physics Unity has felt pretty bad. I looked for some tutorials online for how other developers have implemented golf ball physics, but none of them felt right either. It took a lot of playing around with the Unity physics settings and overriding how collisions are processed. In the end I got something that could still use a lot of improvements, but at least feels decent.

Golf Ball Physics GIF

3D Modeling

Having both an art direction and golf ball physics, it was time to put them together. However there was a problem, I can't directly use the model that I exported from MagicaVoxel for a pretty obvious reason. A golf ball can't roll up steps...

Voxel Steps

Luckily I had gone through some basic Blender tutorials in the past, so I had some base knowledge to start editing the meshes exported by MagicaVoxel.

Blender Screenshot

It took sometime to get the shape the way I wanted, especially since I needed to make sure a lot of the vertices were still aligned with the voxel grid. Changing the vertices also messed up the normals in the original mesh, so I had to find the right settings to clean up the mesh and align those normals so the shading looked right. After all that I ended up with a smooth ramp and playable level! #RampHype!

Smooth Ramps

Version 0.1

At this point I was pretty happy with how the game was going and was ready to start putting a plan together for how I would turn this prototype into a full game. I came up with a few milestones and started working away on the first one, Version 0.1. This first milestone included creating 3 playable holes to test out the physics of different elements, adding touch and mouse + keyboard controls so I could play the game on android and in a web browser and finally a basic menu system for navigating between the holes.

Those tasks for the first milestone ended up going pretty smoothly. Having made many menu systems before in Unity, that was quick to set up. The touch controls specifically were a little rough to get right due to having to make android builds between iterations, but overall was not too bad. Most importantly I worked on the gameplay logic, which I implemented mostly using state machines. I even snuck in an updated shader for the water, to make it really feel like the ocean. Once I had that all set up, it started to feel like an actual game.

Version 0.1

And the best part is, I exported it as a WebGL game so you can try it out right now in your web browser!

Click Here to Play!

(The link may be to a newer version of the game depending on when you're reading this)

Inspiration

Since I started developing this game I explored what other mini golf games are out there. One I've been playing a lot lately is Golf Battle. It's a pretty fun multiplayer mini golf game where you battle other players to see who can get the lower score over a few holes. The holes have some cool obstacles and a good variety of environments. Now a lot of these things are out of scope for my game (especially multiplayer), but I did get some ideas for the aiming mechanics from this game.

Another game that I've been playing a lot of is Walkabout Mini golf. It's a VR game that I've been playing on my Oculus Quest 2. Out of all the VR games I've played it's definitely the game that feels the most like it's real life counter part. I've had a lot of good times playing with friends and family in person and with the online multiplayer. Now turning my game into a VR game would be really cool, but that is definitely out of scope at least for version 1.0. Walkabout Mini Golf though has given me some good ideas for hole designs. The game also has a hard mode of all the courses in the game, which gave me the idea for doing hard modes of my golf holes too. If you have a VR headset I highly recommend trying that game out, it's personally my favorite VR game (with Beat Saber as a close second of course).

The Future

There's a good amount of improvements that I want to make before I release a version 1.0. Most importantly is creating a full 18 hole course along with a hard version of every hole. On top of that there's some basic features like getting a regular play mode in the game with a viewable score card. And finally I want to make some further improvements to things like the physics, the UI and add transitions between holes.

So that's where I'm at now, this is the link again if you wanna play. I'll probably have some more devlogs in a little, I've been using a lot of state machines for this game so that might be what the next one will be about. Thanks for reading, hope you enjoy the game in it's early form and stay tuned for more!

Hole In One GIF