What does a fictional Iowa farmer named Ray have in common with a Bay Area digital advertising careerist turned video game developer?
The love of baseball. And a deep-seeded need to put a dream into action.
As they say…
If you build it, they will come.
When Dan Dectis ran out of gas in his decade-long career in digital advertising, he needed to make a big pivot. Not pivot in the way people in Bay Area ad tech circles talk about pivoting due to the impending death of the cookie or Apple sniping Facebook’s ad trackers in IOS. Those are setbacks and inconveniences, not pivots. He wasn’t going to do a Silicon Valley-esque pivot.
Dectis wanted a real pivot, in a whole new life direction. No wasting time with an upwardly lateral move to a new company or striking out on his own in the same industry.
So he got down to brass tacks about two things he was passionate about: baseball and video games.
Over eight months, Dectis took a chance on his idea and taught himself how to develop games.
Then he set out to build a 16-bit field of dreams – his own peculiar manifestation of Kevin Costner in that Iowa cornfield.
The result is Bad Hop Baseball, now available to play on Steam. There’s also a demo also available via BadHopBaseball.com.
What is Bad Hop Baseball?
Bad Hop Baseball mixes a classic baseball arcade game with the elements of pinball and pachinko. You swing for the fences like a pinball game, then the ball hops and ricochets around a field full of gloves before it lands in a random outcome (out, hit, double, triple, home run). Just like a worm burner taking a nasty hop on an divot, the hop can go any which way.
When the ball hits something, peanuts and hot dogs burst in the thrill of the moment. The result is then tallied on the scorecard.
It’s an addictive time-waster, complete with each note of “Take Me Out To The Ball Game” accompanying every bounce. You can either play against the compute or another player, with the best score winning in three innings. And just like in baseball itself, games can’t end in a tie.
Dectis describes it as a “chaotic” game of skill and luck. Early reviews on Steam highlight the unpredictable nature of the game, with one player returning from a four-run deficit in the 3rd inning to win the game in extras.
Dectis is a college buddy, dating back to our days at Penn State. After touching base a couple weeks ago, I asked him about his career pivot away from advertising and blind leap-of-faith into the world of video game developing.
I thought I’d share it as inspiration for anyone stuck in a deadend job or career, thinking about how to build their own proverbial field of dreams.
How did you start developing games?
Truth be told, I hit a wall in my advertising career. I had a great run with a great team for years at Crunchyroll. But, as they say, nothing lasts forever. Last summer, I found myself without a job and without a single iota of appetite for another job in advertising.
I took my aversion to going back in the direction I’d come from, and used it instead as fuel to drive me somewhere new. But I didn’t know what that would be!
Then one day my internet scrolling led me to the Unity game engine. I’ve played so so so many hours of video games over the years, so the idea of making the computer do what I wanted was exciting.
Fortunately, Unity has an exceptional community around it as well as a huge wealth of tutorials. So I just got started on some simple tutorials to see how I liked it. It turns out I am more or less obsessed with it! And although the material is definitely not easy by any means, I found I was able to navigate it.
And the first time I came up with a concept and then executed it on screen was sheer joy. Making a game feels like you are playing the hardest puzzle game. The only thing is, you get to define success, for better or worse. And answers are all around the internet, just waiting for you to look them up.
TLDR: My pivot to games is that I burned out hard and used that burnout to motivate months of intensive work in a new direction.
Why a baseball game as one of your first projects?
This game is the result of running with an idea that started as a throwaway time-kill. I was on a 5-hour plane ride looking to pass the time on my laptop. So I gave myself a little programming exercise in Unity. My goal was to spawn a bunch of pachinko pegs using code.
At first, it was just a pachinko concept. Somewhere along the line, the idea of adding baseball came into the mix and then things really took off. And from there, ideas just kept coming, and it kept getting more fun with each iteration.
Plus I just love the game of baseball. It’s a sport that I’ll gladly attend at any opportunity. Making a video game around a beloved sport was thrilling.
Seeing my team hit a home run in the game for the first time after I dialed in all the special effects scratched a familiar baseball itch. It was very satisfying.
Talk us through the concept of Bad Hop Baseball.
Bad Hop Baseball combines the classic arcade game flow of pinball or pachinko with the rules and game flow of baseball.
Each game is three innings of bite sized baseball action. Players dial in the power level, wait for the right timing, and shoot their shot onto the playfield. The ball bounces between the pegs and makes its way down to a bucket at the bottom of the screen where a baseball outcome is awarded (i.e. out, single, double, triple, home run).
My game captures two of the quintessential elements of baseball that I love as a fan and presents them in this different context. First, baseball is a game that hinges on fractions of an inch. From the point of contact on the hitter’s bat, to the pitcher’s release point, the difference between victory and defeat can be super small.
A single bad hop can make all the difference in an inning, in a game, in a season.
In Bad Hop Baseball, each game often hinges on whether the ball bounces into this bucket or that bucket.
Second, unlike many sports which are time-based, baseball is an events-based game. In football, for example, a lead can become insurmountable; the outcome can be effectively determined while there is still technically much time remaining.
That’s not the case for baseball! Bad Hop takes advantage of that aspect of this sport. My game is set up in such a way that big comebacks are not just possible, they’re likely.
Racking up a big lead gives you worse odds on your future at bats, and gives your opponent better odds.
Given the way the game works, imagine you’re a big fan of pinball and pachinko?
I definitely have fond memories of playing pinball machines when I still needed a step stool to see over the side of the table.
My dad loved pinball a lot as a kid and he passed that along to me. But to be honest, I did not set out to create a game in this vein, I was just playing around
and pursuing each idea from one to the next.
What are some of your other favorite retro, arcade, or sports games that inspired the game?
One of the main inspirations for Bad Hop Baseball is the 2007 classic from PopCap Games: Peggle.
Peggle is a pachinko-based puzzle game where players try to clear all the orange pegs out of a sea of blue ones. The developers of that game packed so much juicy chaos and so much joy-bringing polish! It’s also a very light-hearted game, and I tried to channel that vibe.
Another inspiration is a genre of vintage arcade classics that I imagine are not well known. They come from a time when baseball was far and away the most popular sport in America.
I’m talking about machines like this.
These games are so really fun to play. They flow a bit different than Bad Hop Baseball, but the general vibe of the whole situation is the same. You’re playing a game that’s a combination of luck and chance and you’re simulating a baseball game.
What do you think are some of the biggest issues with most indie sports games?
When it comes to baseball video games that try to mimic the real deal (indie or otherwise), on the higher difficulties the outcome tends to feel like a coin flip. It’s as though no matter how good your pitch was or how well-timed your swing, there was still an element of random chance.
So even though you’re trying hard to succeed at a game that portrays itself as purely skill-based, there’s still stuff happening behind the scenes that gets in the way of your feeling of success.
It’s a difficult problem, and I’m sure more clever folks than I have tried to find a better way.
But it’s something I’ve noticed and turns me off from those games. Which takes me to the next answer…
What void to do you think Bad Hop baseball fills?
I noticed that many baseball video games have this underlying issue, where they need to implement some randomness to keep the games close. So I wondered, why hide the randomness? There can be fun in randomness and chaos!
The way the ball bounces around on the way to determining an outcome is unpredictable, leading to many close calls and dramatic moments. So Bad Hop Baseball puts the random chance aspect of the game front and center.
You can absolutely push the ball to one side of the screen or the other will have a well honed shot, but it’s extremely difficult to hit the exact bucket you intend to hit. And when you’re playing the game, the random chances create the same feelings that you’d get from watching your team play a close baseball game. When you have runners in scoring position and two outs, for example, you can literally see that if the ball had zigged instead of zagging that the runs would have scored and your team would have won.
I think every baseball fan knows exactly what that feels like. To see a batted ball that could take the lead on a home run go just foul, to see a line drive sail just out of reach of a leaping shortstop. Those close calls are a huge part of baseball. Bad Hop is all about those kinds of close calls on every at bat.
It’s really cool how the music syncs up with the bounces in the game. Talk through how you did that.
First of all, I should say I’ve been a musician all my life. And I’ve been playing with audio tools for many years. So when it came to recording a rendition of Take Me Out to the Ballgame, that was the easy part.
The one wrinkle there was making sure to export it at a slow enough tempo that each note rang out without hearing any of the other notes. So I designed a nice sounding bell chime sound and then recorded the tune. After exporting the track, I had to do a bunch of grunt work and cut each note into its own audio file. This is how I know that there are exactly 63 notes in the melody to Take Me Out to the Ballgame.
Then came the more technical and challenging bits. One thing I’ve learned through this process is that it is super helpful to break every problem
down into the smallest pieces you can.
For example: “How do I make the game play Take Me Out to the Ballgame with each ball bounce” can be broken down into:
- How do I detect a collision between two game objects?
- How do I make something happen every time I detect a collision?
- How do I play a sound?
- How do I play a bunch of sounds in a row where the order is important?
For context, I started this journey in the summer of 2022 with essentially zero programming experience. I
n the beginning, I was painstakingly attempting very basic tutorials; I was stoked whenever I got the computer to do the tiniest little thing I was trying to make it do. Then, over time, I began to learn about the components within the Unity game engine.
Every time I became familiar with a new component, I broadened the possibilities I could execute. So when I realized I could answer all four of those questions just from the knowledge I had gained in all my practice to this point, it was an amazing moment. It felt like the tutorial training wheels came off and I was pedaling on my own power!
In technical terms: I used the OnCollisionEnter method on the player ball to monitor for collisions, and I created an array of AudioSources containing each note of Take Me Out. Then, when collisions above a minimum impact force threshold are recorded, a method to potentially trigger a ping is called. Then, if enough frames have passed since the last ping (as we don’t want the sounds to be played so quickly as to be unintelligible or annoying) it then plays the next note in the array of Audiosources. Having done that, the code iterates to the next member of the array so it is ready for the next ping. Unless, of course, we’ve reached the end of the array, in which case we do something else.
As people play and experience the game, what do you hope people get out of it?
I love entertaining folks and I just want everyone to have a good time. So my main hope is that people have some fun with it.
Look, life is hard all over and the modern world is exceptional at reminding us of this reality. If I can provide a bit of escapism, if I can put some smiles on some
faces, I will feel very accomplished.
What’s your highest score so far?
My wife and I played a game where the final score was 13-12. A regulation game is only 3 innings but this one went 5 innings. It was absolutely chaotic back and forth…
That happened pretty early in development and it was one of the moments that really hammered home to me how fun the Bad Hop Baseball concept can be.
Any other projects in the works you’d care to reveal?
Yes! Before Bad Hop Baseball came along and took over my January, I had been working since August on another project.
It’s called MoonTaxi and it’s a challenging 2D Moon Lander game. The only reason I could move as quickly as I was on Bad Hop was because of all the
experience I gained on MoonTaxi.
Here’s a YT playlist of some development logs from the fall:
As soon as Bad Hop Baseball is shipped out to the world and stable, I plan to get back to MoonTaxi so I can push that one over the line sometime this summer.