by Marlo Asis

What I learned from creating a video game with just over a year of coding experience

Warning: Not actual game code.

Video games have always played a big role in my life. Final Fantasy II taught me how to read (Super Nintendo Entertainment System, so actually FF4).

Yes, my early vocabulary included “chocobo” and “spoony bard.” I remember when Street Fighter II came out. My brothers and I would spend hours and quarters at the arcades.

I’d spend entire days at the arcade playing Dance Dance Revolution (DDR) with my brother, my cousin, and our other friends. We even had a “DDR crew” and “battled” other local crews.

I recently started playing Overwatch, and it has reconnected me with friends from 5, even 10 years ago. My wife and I strengthen (or test) our relationship by playing Overcooked.

To say that I love video games is an understatement! 😃

Video games teach, spark imagination, challenge people, and connect people. Video games bring joy into people’s lives. On the other hand, much of my current profession is filled with suffering - not necessarily my own suffering, but the suffering of others.

I’m currently a resident physician (meaning I’ve finished medical school, but I’m still training under the supervision of other doctors). In my short career, I’ve heard too many parents talk about their child’s bright future before their child ended up in the hospital in critical condition.

I’ve heard too many regrets of patients lying on their deathbed. I’m frequently reminded of how short life is. It’s too short to have a dream and not try to pursue it.

So, I decided to make my dream of being a game developer a reality. In this article, I’ll share what I learned on my journey thus far, and some of the challenges I faced, with hopes of helping others who share this dream.

Overcooked 2 — a game that will reveal the true nature of your relationship(s)

Learning how to code

So how did I get started? When I started residency, I saw an ad for a Udemy course on how to make video games on Unity. Finally having an income, I bought it. I quickly became too busy to get into it. I left it alone like a game I just bought during a Steam sale.

Two years later, my fiancée (now wife) came home from a difficult day at work. She said she was just going to learn how to code and quit her job. Like a good partner, I said, “Oh! Me too!” I opened up that Udemy course and downloaded everything. However, at that time, my wife and I were a 4 hour drive apart. By the time I had installed everything, it was time to leave and drive to her.

I decided to download and listen to some podcasts for the drive. This brings me to the first lesson I learned. Podcasts are super helpful. Listening to podcasts really accelerated my progress. It was on CodeNewbie that I learned about freeCodeCamp. Through freeCodeCamp, I learned about the importance of being part of a community. The Simple Programmer Podcast inspired me to keep going and stay focused.

In terms of game development related podcasts, Designer Notes, The Debug Log, and Game Dev Unchained introduced me to the experiences of other game developers. Their stories encouraged me. I learned the lingo. I learned from the mistakes they had already made. I did all this during those 4 hour drives when I would visit my fiancée. Podcasts transformed what would’ve been idle time into productive time.

The other thing that helped me learn more quickly was that I dove right in. I entered a hackathon (by accident) with just 13 days of coding experience. It was here that I learned about the community and the local meetups.

At the local meetups, I learned about the possibilities of what could be made. It pushed me to make something so I could show them at the local demo day. It made me want to keep creating and sharing.

As I created and shared, I got feedback and advice from those around me. That’s how I got better. That’s how I got the crazy idea that I could make and release a game by myself with such limited experience.

My got second place with my first hackathon team: Developers.Vegas

Challenges of building and releasing a game for the first time.

Actually making my own first game to be released had its challenges of making the art and writing the code. I improved with time, practice, and a lot of Googling.

One technique I found helpful was to write things out in diagrams and in “pseudocode.” The diagrams helped me visualize how everything would connect, and the pseudocode helped me stay on track with what I wanted my code to accomplish. From there, it was a lot of trial and error, and doing the process all over again.

I found it challenging to process and implement people’s feedback. As I began to send my game for people to try, they would make suggestions. One reason this was difficult was because I didn’t know how to do what they were requesting. Another reason was I wanted to actually complete and release my game.

I’ve heard stories of people giving up on their project because they get overwhelmed with too many features. I wanted to stay within my scope and minimal viable product. On the other hand, I wanted to make a product that people actually wanted. I imagine this will continue to be a struggle for me and any game developer/designer.

During this process, I also realized that a lot of the hurdles came from within. When working on my own project, by myself, it’s easy to get lazy and get distracted. It’s easy to just stop working on something and say it’s “good enough”. It’s just as easy as spending way too much time working on something that “isn’t good enough”. What I found helpful was to make deadlines for myself and to write out goals for each block of time I had to work on my game.

The biggest internal challenge, one that I imagine I’ll continue to face, is “impostor syndrome”. At multiple points in this process, I’d ask myself, “Who am I to make and release a game?” When I first uploaded my game to the Google Play Store for internal testing, it was rejected. I wanted to give up right then, despite the fact I had put in the work to complete the project. I didn’t even look at the reason why it was rejected! Thankfully, I snapped out of it and investigated the issue. It turned out to be a simple, fixable mistake. Imagine if I just gave up.

My setup frequently transforms from the top half to the bottom half

Game Release and Beyond

Pressing the button to release my game to the public was scary. What if people hated my game? What if something was completely broken? At least so far, those fears were unwarranted. In fact, I have been very satisfied with the response to my game thus far. By no means is it a super successful game with only about 90 total downloads, and a grand total of $0.00 in revenue 💰 at the time of this writing. 😱

However, at this stage, success is seeing people enjoy my game. It’s seeing someone who was about to leave a party stay another hour because someone beat his high score. It’s seeing people post screenshots of their high scores. It’s having someone beat my high score (although I died a little bit on the inside). It’s seeing that people challenge themselves. It’s seeing that joy when they reach a new level of accomplishment.

So, where do I go from here? I think I want to try incorporating multiplayer, or at least figuring out how to do a ranking system. People seem really into getting a high score. I also need to learn more about the business/marketing aspect of things.

I think I’ll start now. I invite you to try my game “Squircle Circle Tap” for iOS or Android. While you try the game out, I’ll continue building my skills to move toward those games that impacted me so much throughout my life. Thank you for reading, happy coding.