Adam is one of the three brothers making up Butterscotch Shenanigans. He is the resident scientist and data nerd, and the developer of BscotchID.

The face of Adam

A few weeks ago Seth told you the story of how he became a game developer. There he noted that there is no one path to game development, and no one kind of developer, as our twisting career paths surely demonstrate. So I'll skip that preamble and jump right into my own (long) story.

Unlike Seth, I did not have a burning passion to become a game developer. I wanted to be a scientist. More than that, I wanted to be a capital-S, Platonic-ideal, Scientist who attacked all claims with furious skepticism and was comfortable living in the realm of the unknown. And now I am the web developer behind a tiny indie game studio. How did I get from point A to point B?

Choosing Biology

My dream universities were MIT and CalTech because of their approaches to hardcore-but-practical science and engineering. But I did not get into those schools. Instead, I got into my third dream university that, while less pragmatic in its education, is hard to beat when it comes to learning how to think. This was the University of Chicago.

But there was a big caveat. The school focused its education on theory, and my small-town public-school education was simply insufficient to prepare me for the rigors of theoretical work. I worked my ass off anyway and performed well enough, but over the first two years I sequentially abandoned my dream careers by being weeded out of high-level math, then high-level physics, then hardcore biochemistry. I didn't fail those things academically, but I felt that I failed them personally and would never understand them well enough to keep moving forward. 

I ended up focusing on genetics and molecular biology, thinking at first that I was settling for what I could do because I wasn't capable enough for what I wanted to do. Once I got into high level genetics, molecular biology, and biochemistry, my eyes were opened to the awesomeness of those fields and that they didn't have to be the "soft" sciences that so many claim them to be. I loved it, and continued to take courses that were above my abilities. I spent a lot of my time working in a yeast genetics lab, not really understanding what I was doing. I was sipping from a fire hydrant of knowledge; it was always trying to knock me down and most of it went to waste. But I kept my mouth open and stayed standing.

Total Uncertainty

And so I ended up studying biology, but I had no idea what to do with it. I wasn't brave enough to just do my own thing. I needed a path. The only paths I knew about first-hand that were also relevant to my degree were in medicine. I still wanted to be a scientist, but I didn't really know what that meant or how to get started. So instead I began walking the easy road, where "easy" means "obvious and well-defined." I took the MCAT and prepared to apply for medical school.

As the end of college came upon me, I suddenly realized that I didn't want to become a physician. I liked the idea of medicine, and the science behind it, but didn't want to deal with the other stuff. (Had I been less ignorant at the time and known that physicians can also do rigorous scientific research, and that every career is filled with politics and bullshit, my choice might have been different.) And then I was graduated.

My girlfriend (and now wife) had another semester left, and so I stuck around working as a teaching assistant while trying to decide what to do with myself. After my girlfriend graduated, we both continued sticking around, taking on more teaching assistant work. Eventually she decided to go to medical school and I, still undecided, abandoned everything and everyone I knew to join the Peace Corps in Uganda.

While the Peace Corps is an amazing program that should be seriously considered by all unattached college grads, it turned out to be a bad program for me. This was due to a combination of a lot of things: my perception of what seemed to be a disorganized and consequently non-supportive country-specific program (the programs have a lot of per-country autonomy), my fear that refusal to pretend religiosity would put me in real danger in the hyper-religious Ugandan culture, my growing anger towards the people I was supposed to be helping (due to their insane persecution of LGBTQ people and their high tolerance for violence against women and children), my growing belief that the problems I was trying to solve were just too big and so my efforts guaranteed to be futile, and, finally, the realization that leaving my girlfriend behind was a big mistake.

I don't know whether all of those things combine to make a good reason to quit, or if that is just a laundry list of post-hoc rationalizations and excuses for my own failure. In any event, after 3 months in Uganda I packed my bag and made my way home. (Note to potential Peace Corps Volunteers: the Uganda program changed leadership and most of its personnel right before and also right after I left. My past issues with the program should not be taken as evidence for current deficiencies with it. On the other hand, the human rights abuses of gays in Uganda have gotten decidedly worse.)

I was back home but had cut short, by two years, my brilliant plan to not have to make a plan. While my Peace Corps experience wasn't great, I did grow a lot as a person because of it. Most significantly, I developed a much stronger sense of personal independence, meaning that I felt I could start making career decisions even if they were shrouded in uncertainty. So I started researching career paths for the purpose of choosing a next step. Not the next step in a long line of defined steps. I wanted to keep moving forward, and to take opportunities as they came. At the same time I started teaching myself programming (in C++) because it was something I had always wanted to be able to do but had always felt was out of my reach (turns out it wasn't). (Since it's of relevance to this post, the resources I used came from the online Game Institute and were, at the time, quite good.) Finally, Seth and I started our first joint venture, a computer-building company named Mindforge Technologies.

Choosing Science

The key things that Seth and I learned from Mindforge were that (1) we could totally start our own business, and (2) we definitely didn't want to sell hardware for a living. We spent a summer on this project while I continued learning C++ and researching careers, and it all ended with Seth going back to school and me deciding to become a Scientist.

I had an entire year before the next round of grad school sessions would begin, so I used that time to take the GRE, apply to PhD programs in various biology disciplines, and continue self-teaching computer programming. Prior to a visit with Sam at WashU, I searched for researchers there whose interest seemed in line with mine. I found a geneticist, Justin Fay, for whom I ended up working as a lab tech over the ten months prior to grad school. This was the first time in science that someone didn't tell me what to do, but instead gave me a problem to solve and just expected that I would figure something out.

Biological science can have a lot of down time while experiments are running. Good biologists spend all of that time reading research papers to stay current. I spent all of that time converting my programming abilities in C++ into abilities in Python. I did so on the advice of a college friend, himself a computer scientist, who told me that if I wanted to be a programmer who understood what I was doing, then learning C++ first was the way to go. That would force me to understand the how and why of programming. But, his advice continued, as soon as I was competent I should abandon C++ forever and use Python instead.

That may sound like weird advice, but C++ and similar languages are for computer scientists and people who truly need high efficiency (e.g. for you goofballs making game engines from scratch instead of using ones that already exist and, you know, making actual games). Python is for practical people who just want to get something done quickly.

Anyway, as I was becoming a proficient programmer I started to notice all kinds of problems around me that were solvable using programming. I hadn't even realized before that they were problems because, until then, I didn't have the tools to even perceive them as such. I started automating as much of my experimental and analysis work as possible, until eventually I was more robot than human, physically carrying out instructions generated by my own computer programs. It was amazing. I would spend a few days or a week working on a program. After that, every time I needed to run an analysis I could literally just double-click a program and then wait for 20 seconds. It seemed crazy to me that anyone would work in any other way, and that we aren't all expected to program as proficiently as we are expected to read.

I became a programming evangelist (as nearly everyone who knows me will agree, possibly while rolling their eyes). I decided that, wherever I went to grad school, I would find a lab that would give me support to do both bench biology and computer programming.

Becoming a Scientist

The grad school decision became easy when I met my future mentors, Steven Altschuler and Lani Wu, and a few other key faculty during my interview at University of Texas Southwestern. The Altschuler/Wu (A/W) lab was exactly the kind of thing I was looking for. The mentors themselves were mathematicians, and the postdocs in the lab included a physicist, electrical engineers, and biologists from a variety of disciplines. My girlfriend was already at the same university for medical school, and that cinched the deal.

The A/W lab had several robotic microscopes and all the equipment and reagents necessary for doing large numbers of tiny experiments where microscopy images of cells were the output. I learned Matlab and image analysis methodologies so that I could automate the process of converting images of cells into data about those cells. I discovered that certain image deformities caused by microscopy optics aberrations were tainting most published datasets, and found (and published) a reliable computational method to fix it. I wrote Perl and Python scripts to process genomic data, and learned R to generate beautiful summaries of the data I was generating.

In short, I learned a ridiculous amount, became even more obsessed with using programming as a tool to solve all problems, and had a blast. I finished my PhD rapidly in no small part due to how much work I was able to automate.

Leaving Science

Given the above description, it might be even more surprising that I left science to become a game developer. There were three major reasons for this decision.

First, it is nearly impossible to be a successful capital-S Scientist. To secure funding and publish in top journals, you have to sell your work. While that doesn't require lying, in practice people come close enough to lying (usually unintentionally) that there is no meaningful difference. In the best case science requires an absurd amount of politicking and PR. I did (and do) love Science, but the deficiencies in the way it is practiced left a lot of room for me to entertain leaving. Add to that the likelihood of Republicans defunding even more science than they already have (even well-known labs are closing with surprising frequency) and the abundance of new PhDs compared to available academic positions, and a tenuous maybe-future of practicing science didn't seem so enticing.

Second, I realized that it wasn't doing scientific research that held my interest, it was more generally about solving problems. Science is a toolset for solving problems, and grad school provided me with that toolset: I could solve problems scientifically, but that didn't mean that I needed to be solving "scientific" problems. More importantly, all problems are science problems when you get down to it. I realized that I'd be happy doing anything, so long as that thing was solving an interesting problem and I was given maximum autonomy to do so.

Finally, by making games I would get to work with two of the very few people I truly trust to get things done and do those things well. Sam and Seth started Butterscotch shortly after I started grad school and I watched, amazed, as they started from positions of complete ignorance about the industry to becoming leaders in their own right. When they started, I didn't believe it was possible to compete in this insane industry, at least not without infinite financial resources. I did (and do) believe that if it was possible at all, then those guys could do it. I just didn't think it was possible at all. But after observing their first two game launches, I realized that it wasn't just possible but inevitable for them to be successful making games.

Being a Game Developer

In the end, the decision was easy.

I got my PhD and then, five days later, joined Butterscotch full time. My bank account slowly drained since the studio could only afford to pay Sam, but I was not (and still am not) worried in the slightest. My passion is still with solving problems, not with video games themselves. But now video games are the problem, and my interest is a transitive property. We didn't know what I would be doing when I joined, just that I would probably be useful given my approach to problem-solving and my experiences programming in a lot of languages.

When I joined, I used my lab-gained knowledge of image analysis to quickly figure out how to make 2-D shaders for Crashlands. It turned out that mobile devices often gave pretty shitty results with shaders, so I fiddled around with solving other problems as they cropped up and then eventually found my niche in web development. At that time, both Sam and Seth had to work (more than) full time on their own respective niches to complete games, and so web-enabled games were not an option. To me that capability was essential to the studio.

So now I had an interesting problem to solve -- how do we build a community around our games using web technologies? But that required the solution to a lower-level problem, which was that I didn't know anything about web programming. For me, that was great news: more problems to solve. I proposed to Sam and Seth the concept behind BscotchID, noted that it might take me a while to figure it out and that I'd be useless in the interim, and they said, "Go for it."

As a consequence we now have BscotchID, which ties all of our games together with cross-game content and ties our community together with the BscotchID-enabled forums and Bscotch friends. It paves the way for future multiplayer games. The existence of BscotchID allowed me to propose the upcoming Crashlands Creator to Sam and Seth, and for them to believe I could make it. As of writing, we have over 30,000 registered community members, and I get to spend my time thinking up cool new web tech for our players to enjoy.

In Conclusion

There is no way that I would recommend my own path to someone who wants to go into game development. That would be nuts. The important takeaway should be that getting from where you are to where you want to be just requires that you continue moving forward. You don't even need to know where you are trying to go. Be ready to pivot, and be comfortable with uncertainty and disarray. Most importantly, take opportunities as they come and never stop moving.

My Advice

Given my byzantine career path it probably isn't fair for me to provide advice, though there are exactly two things that I am comfortable saying.

Thing One. Develop True Grit. Never turn failure into despair; turn it into a data point. Strip the emotion from it and analyze what it is telling you. What went wrong, and why? If you aren't sure, what experiments can you do to find out? If you must look back, do so with the cold stare of Reason. Then take a breath, and KEEP MOVING.

Thing Two. Learn how to program. Even if you do not want to become a programmer, knowing how to do basic programming will change how you think and how you approach problems. You'll realize you're smarter and more capable than you thought. You'll suddenly be aware of unsolved problems that, with a little more work, you'll be able to solve yourself. At minimum you'll be better able to communicate with programmers working on a game (or other project) with you. And, programming is one of the few things that you can become adept in without spending a penny (assuming you already have a computer and the Internet). I suggest starting with Python, but if you're going to make games anyway then jump right into Game Maker.

Have comments on this article? Head to the forums!