Small Disc Golf is not my first attempt to make a game that captured elements of disc golf. Nor is SDG my second or third.

Small Disc Golf is my ninth attempt to make a fun game based on Disc Golf.


The first three versions were simple games I called “Disc Golf Dice” where you determined how far you threw and where it went based on your choices and some dice roles. I began with some concepts that I first saw in a 3M Bookshelf™ game called “Thinking Man’s Golf”. It was played on a folding clear plastic sheet with a golf course printed on tagboard under the plastic. There was a plastic grid with holes and you aimed by lining up the grid with the direction you wanted to go. You chose a club and rolled some dice and it told you how far you went. You rolled again to find out if you sliced or hooked it, and by how far, or whether you went straight. When I was a kid I played that game a bunch of times – really, almost all of the 3M Bookshelf games were great, and so was this one.

I figured I could adapt that to disc golf. But, I wanted people to be able to draw their own golf holes. That seemed to me to be very interesting: a chance to design your own course and play it with your friends. One could even get overview photos of real disc golf course holes and print them out on paper (enlarged as needed) to play the same holes one sees in PDGA™ tournaments. How cool would that be?!

So, I tried to add mechanisms that would somehow simulate the incredible diversity of the ways discs can fly. It got complicated long before it got realistic. And, even if I could figure out how to make a few dice yield a realistic flightpath, every player in my game was essentially the same. The only difference for two players attempting the same shot was their dice roll.

You certainly don’t need to pretend that the game is about disc golf if it all comes down to whether you can roll dice better than your opponents. Just pick a number and see who can role it first and call them the winner.

The game needed to amplify someone’s choices so that a person with better judgement and experience would win more often. Otherwise it’s insulting to people who know disc golf well. And… those are the people I was hoping would like my game. :-/

So, in the next version I added concepts like:

  • Players have individual strengths and weaknesses that affect throws, making some throws easier or more reliable for some players than others, to spur people into attempting different throws even from the tee or lie.
  • Players have their own selection of discs that each have different characteristics. Discs themselves affected the flightpath a lot.
  • You could choose different kinds of throws, including drives, putts, upshots, rollers, tomahawks, and more.
  • You could choose your hyzer or anhyzer angle and affect the power of the throws

All these factors were incorporated into a fairly complicated process that resulted in an arguably plausible flight path. If you threw an under-stable disc with an anhyzer angle it would follow an S-curve the way I expected it to. But, it took a lot of steps and therefore a lot of time to plot the flightpath. And for all that complexity the flightpath wasn’t realistic enough. Disc golf has a lot more chaos, especially when a disc hits the ground or an obstacle or there is wind. I had rules for these but they didn’t make the game more playable, they just added more complexity as the price for a little more realism.

My brother, Mark, who also loves disc golf, tried the game out with me. Trying to explain how it worked helped me understand the shortcomings of the game. He already was a disc golfer and a very smart person, and this wasn’t a natural thing that fell into his mind easily. I knew I had a serious playability problem to overcome.

I made one more version where I streamlined the process a little more, standardized how the discs worked and introduced things like course rules and ways to handle out of bounds, etc. I tried to make it more playable and I added some wildcard events where if you rolled just right you got to roll on a special table of interesting and unusual outcomes, to try to cover the gamut of possibilities that comprise disc golf.

It was unplayable. The complicated process of determining the outcome of a throw was tedious and difficult to explain. It was clever: the same algorithm handled left and right handed throwers throwing forehand or backhand and the disc curved the correct directions in all cases. It worked. It just wasn’t fun.

I gave up on that approach. I took a break from it for a while.

I came back to it after a while when I had a brainstorm: I decided to try to base things like distance and how far a disc flies away from its initial line of flight on the sum of dice instead of calculating them as a consequence of choices. You throw a bunch of dice and add them up and multiply their sum by some factor, such as 10, to yield the number of feet thrown, for example. You could choose how many dice you wanted to use and also what factor you wanted to multiply the sum by.

For the release angle I decided you would choose a number of dice for your hyzer angle or your anhyzer angle and you’d roll them to determine where you disc would fly. That was when I came up with the name “Hyzerdice” as the name of the game and I liked it! You would choose a number of hyzer dice as part of each throw.

I quickly realized that the more dice you use the more likely you are to end up with a number near the middle of the range of possible throws. There is a natural bell curve to the distribution of possible outcomes and that meant certain outcomes were more likely in the middle of that range. That made the game both complicated and boring.

It was hard to make those dice role distribution curves useful in the game. More dice meant a more boring/standard shot was likely. I kept tuning the flightpath algorithm and it remained complicated and unsatisfactory. I had a sinking feeling that the flightpath was really going to be a bad problem that I didn’t know how to solve with dice or rules.

I made a new version with additional rules to limit how many hyzer dice could be used. I played with the idea that you could choose both hyzer dice and anhyzer dice in the same throw and they kind of cancel each other out on average, but that didn’t make things easier even if it did offer a little more control. I struggled to make the game more playable but couldn’t figure out how.

Then I thought that perhaps the game could be better if it was more like a Dungeons & Dragons™ adventure, where players had unique characteristics and resolved their throws using mechanism that were simpler, even if it meant giving up some realism.

I made a new version of the game where players had player characters that had six basic characteristics:

Accuracy, Forehand, Backhand, Roller, Scramble/Low Throws, Putt

You rolled for these characteristics using four six-sided dice, taking the sum of the top three dice to be that characteristic’s value. You also chose left/right handedness. These made players very different from each other. To see if you made a putt you rolled against your putt skill using 3 dice. If you rolled under your skill number, you made the putt. Longer putts added to your roll, making it harder to roll under your putt characteristic and make the putt. I also tried other mechanisms that also involved player characteristics. It actually worked really well to both bring differences to player characters to give them reasons to favor one shot over another, but it also worked as a mechanism to simplify the game and make it more about your choices and less about complex algorithms that yield a result.

In fact, it worked so well it meant that the only problem left that had to be solved was the flightpath. How to make a realistic flightpath using just a few numbers as input.

I started to realize that I was not going to be able to solve the problem of producing a realistic flightpath based on a few parameters determined using a few rules in a spreadsheet. At least, I could not expect game players to do it that way.

I thought about “Thinking Man’s Golf” again and how they solved the problem with a grid of plastic with holes in it for possible outcomes. But, a ball flies in a simpler path than a flying disc. The same mechanism can’t work for a flying disc.

Then I got the idea that I could produce curves on clear plastic sheets and dice rolls and your character’s characteristics could determine which flight curve your disc followed. The same sheet could have a family of related curves, all the same kind of disc thrown about the same hardness but with a different hyzer angle for each one. Or the same hyzer angle for each throw but a different amount of force delivered to the disc when thrown.

A left handed player would use all the same sheets as a right handed player, but they’re turn them over and use them from the other side for the same kind of throw. A given player would flip them over when throwing forehand vs. backhand. The same sheet would cover all cases for all players. There would be writing you could see from both sides but it would be reversed when read from the side that wasn’t in use.

I just needed to get the flight paths onto clear sheets of plastic!

I started to draw some by hand but I soon realized that it would be much better to have a computer plot these because I was using an artists license and just guessing what they should look like. And, they were tedious to make in a drawing program, and I was going to need a lot of them that were all subtly different. I was hoping I could make the game work with 64 sheets of plastic with maybe 12 or 24 curves on each sheet. But, I might need 128 sheets with 24 curves, which would be 3,072 curves to be drawn with subtle differences that make all the difference in the game. So, if they are unnatural or wrong the game will feel unnatural and wrong.

So I began an adventure where I wrote software in Perl to simulate the flightpath of a disc. The inputs were

  • the speed behind the throw
  • how much spin was imparted to the disc
  • how stable the disc was (understable through overstable)
  • the initial hyzer angle when released
  • the initial elevation angle (would be negative for a skip and zero when released horizontally front-to-back regardless of hyzer angle, and positive when released on an upward angle)

I knew I did not know enough about aerodynamics to calculate the path with an equation, so I tried an incremental solution – a simulation of a disc’s flight where at each increment I applied an adjustment to the position, angle and velocity and just let it play itself out until it reached zero altitude. I used small increments and let the program plot a line from point to point using GD and Perl.

It was easy to make a test bench for this as a CGI script that took input and produced an image of the flightpath. That let me develop and refine the flightpath algorithm.

Finding a good algorithm turned out to be much harder than I hoped. I was able to get some useful flightpaths:

But I also got some nonsense flightpaths:

I worked on it and worked on it and then I realized that maybe I didn’t exactly understand how discs fly. So I watched a lot more disc golf, sometimes rewatching specific throws a dozen times because they showed the flight from destination back to where it was thrown and I could see the disc changing its angle of attack and direction end-on. I learned some things and tried new algorithms.

The more I watched the more I realized that even if I could get an algorithm that worked well enough for basic flight, the same algorithm wouldn’t work for rollers, or tomahawk throws. It didn’t work for short throws like putts. And, even if I did come up with these families of curves, didn’t it all come down to picking a curve and rolling some dice and hoping you get the curve you wanted and not some other curve because you didn’t roll a good enough number?

Why bother with the illusion of disc golf it if just comes down to whether you roll the right number on some dice. I’ve been here before and adding a computer to bring realism to the game didn’t change that particular problem at all.

I didn’t want to make a video game. I watched some reviews of some disc golf video games and then I didn’t feel so bad: the discs in those games also did not fly realistically.

In case you weren’t counting, that was the eighth version of a disc golf game that still was unplayable.

So, I stopped trying to make a disc golf game because I lost all remaining hope that I could capture a disc’s flightpath in a realistic yet playable way. I consoled myself by watching a hundred hours of disc golf on YouTube™.

Then I took a class on 3D printing at Ace Makerspace in Oakland. I printed some adaptors for a vacuum hose so it would fit my tools. I learned Fusion 360™, which has a pretty steep learning curve. I watched dozens of videos on 3D modeling and printing.

Then I got the idea that perhaps I could print a small flying disc and play indoor golf with it. At that point I was just curious to see if I could print a small disc and whether it would have realistic flight dynamics. I wasn’t actually thinking at that moment that it would become a real game. I was just wondering if it was possible.

I knew that something as big and heavy as a marker disc was probably too heavy to have good flight dynamics, and throwing it fast enough to have some flight dynamics at all would probably be enough energy to break things inside the house. I wanted something smaller and lighter than a marker disc.

That is where this part of the story ends.

My first 3D printed golf disc. PLA 50×3.5mm, 20% infill.
The holes in the middle are to ensure this couldn’t be a
choking hazard for people or pets.

The story continues in this blog post.