Progression

Date: 2023-02-19


Prototyping ain't pretty

It may not look like much, but this has already been a lot of work. It's funny when you keep iterating on a project. Each little step may be difficult at the time, but when you back doesn't look like you've made much progress. Adam C Younis had a good analogy in one of his pixel art tutorials about hiking up a mountain. Looking up from the bottom of the mountain looks like an impossible task, but step by step you can reach the top. I'm worried that I'll forget all the little obstacles along the way.

My first consideration into the possibilty of making a game probably came about when the mobile app bubble was filling towards an unimaginable size. Even then, maybe around 2010, the app market on iPhone and Android was so saturated, but it seemed possible to create something that could make it into the hands of gamers without the need to go through Nintendo for a mobile game. My brother and one of his friends were going to take a stab at it. I picked up a book with a ridiculous title like "Teach yourself Java in 24 hours." I did not teach myself Java in the weeks that I would stare at the pages hoping to simply digest the concepts and then be able to sit at my desk and write code. Frustrated, I gave up.

Someone on a Games Developer Conference (GDC) talk suggested keeping track of all of your time on a project so you know how much time you've spent to better gauge the value of the project. I know I'm getting ahead of myself when I'm thinking about value, but I also like how Malcolm Gladwell talks about the 10,000 hour rule. Gladwell suggests that it takes 10,000 hours to become an expert at something. That's roughly five years at 40 hours a week. I'm not even remotely close to that kind of time commitment yet, which is at least a little comforting when I look at my progress and worry that I'm not progressing fast enough. Since I've been tracking my time in a Google Sheet, I've only accrued 132 hours.

Back in 2015, a buddy and I went to PAX East. I had a fantastic time talking to new developers and feeling the excitement on the expo floor of developers gauging interest on their upcoming games. I was inspired when I was talking to a developer and expressed some interest in developing games but brushed it off because I couldn't code. He shrugged his shoulders said: "you could learn." His vote of confidence was so nonchalant that it made me completely reconsider the possibility. I thought about game ideas all the way home from Boston. I filled out books with ideas and terrible drawings. I would soon realize the scale of what I imagined was not going to be an easy task. Again, I thought I should teach myself to code.

I set out to find some good tutorials to teach me how to write code. Boy this was a terrible approach. A friend of mine suggested that immersing yourself in the language in pursuit of what you're trying to code would be a lot more beneficial. He was right. My effort to learn to code took me to Free Code Camp, which was awesome, if you're looking to develop websites. Arguably, this is an invaluable skill today. Not only learning how to put yourself out there without the dependence on any more third parties than required, but also to focus coding skills that are transferable regardless of the project. Identifying typos and recognizing syntax was an obvious takeaway, but I think I managed to burn myself out at that time. I had climbed up the wrong mountain.

I was frustated that I wasn't any closer to learning how to develop games because the coding tutorials I was following were intended for web development. I wish I had remained consistent in a pursuit of some aspect of game development back then. I suppose it's easy to think that despite all the life events that have taken place, I could have spent hours after work teaching myself about game development. There definitely seem to be way more tutorials out there today than there were years ago. I suppose some of the indie successes have helped with that.

Later, I decided to try to pick up Unity based on a conversation I had with an independent developer at PAX. Coincidentally, a friend of mine was also trying to work on some projects himself. He and I had some conversations and discussed the possibility of working together. I struggled to keep up since he was already familiar with C# and decided maybe I could be of some use trying to create the art assets. I've always liked the look of pixel art since I've been a huge fan of the SNES. Even trying to just focus on the art side while my buddy worked on the coding was difficult to keep up. I remember the moment I felt burned out again. I decided to fire up some SNES games for "inspiration" and immediately realized I'd rather be playing games in my free time than poorly making pixel art. I spent hours trying to make a background for the joint game. I had no idea about ratios for screen sizes or basic art concepts for painting mountains. It's like I was trying to brute force an appealing background, pixel-by-pixel. Frustrated again, I gradually fell off the joint project.

Fast-forward to the start of the Pandemic. The way things were going at work prompted me to consider some more education. I tend to go in cycles where I feel like I need to sharpen my skills and I pursue some aspect of tech support that feels practical and worthwhile. I decided rather some minor certifications, I should consider going back to skill to finish my master's degree. I've always kept an eye on cybersecurity events because I find it all fascinating, so I decided to focus on that. I think I underestimated an online program. The amount of work required basically filled any remaining time that wasn't spent working, sleeping, or chores around the house. I'm glad I decided to get the degree, because it's something I've wanted to do, but in between classes, I felt like I had to make up for lost time and indulge so heavily in games, and everything about them, that I spent about a month or three weeks getting excited about the idea of developing a game again. I wanted nothing to do with my degree and all my time was spent thinking about developing a game. I think I even took a week off partly for my birthday, and getting ready for the next class, but also to spend days off making pixel art.

During this week off, I was feeling inspired by David Wehle's talk at GDC about having limited time to make a game. Somewhere I heard Wehle mention a book called Creativity, Inc.. I picked up the audio book and during my week off, I decided to work on some outstanding projects around the house that were being neglected. I also found myself indulging more in games than making pixel art. I found Creativity, Ink. to be a fascinating insight behind the scenes of Pixar, but it didn't have a magic button for making games. I was a little disappointed that it did not instantly make me a better pixel artist and I was horribly interrupted by the realization that I had miscalculated the end of the break between classes and I essentially missed the first two days of class. This sudden stop to the fantasy that I could just spend my free time working on game development completely derailed this promising third attempt. However, out of this time, I noticed an improvement in my pixel art. What a surprise, practice really does make a difference. Also, a takeaway from Creativity Inc. was the importance of creating characters and giving them life.

Finding a character

I tried a few more times to do a little game development, work full time, and pursue my master's degree. This obviously didn't work. However, I was able to make this little bunny character jump around a screen with a mediocre character controller. It was a cool milestone, but I wouldn't return to this point until about two years later.

The biggest contributing factor on my journey has been persistence. There needs to be a persistence in working towards a goal and not giving up. This prompted me to create an ongoing list titled "Things holding me back." I think was probably a little irritated when I made this list, but it also includes things that make me so frustrated that I rage quit. Here's what's on the list, but I won't include much of a description since they're pretty self-explanatory.

  • Me
  • Everyone else
  • Money
  • Alcohol
  • Shows
  • Games
  • Time
  • Technical issues
  • Frustration
  • Impatience
  • Perfection
  • Accepting the Black Magic

I know it's petty to blame everyone else for my shortcomings, but I also put myself at the top of the list. This is a list to remind myself of the vices that will distract me from working towards my goal, but also a list to highlight the things that can lead me towards frustration. Lately, my effort to avoid being frustrated is to let something go and return to it the next day. One of the latest additions has been "accepting the black magic." A friend of mine suggested not spending too much time asking why the code works, just accept that it does. This helps to avoid getting frustrated when I don't understand why something works the way it does. It also makes sense when you think about spoken language. There are so many things in English that don't make sense in the way they are organized or spelled, but that's just how it is. Something that wasn't written out until just now was: accepting that I am not an expert and others are. I've had to come with terms that people much younger than me may be an expert at the aspects where I want to excel. Not acknowledging this has often lead me to impatience, then to frustration. I can't know how much time others have spent teaching themselves some of these skills so to assume that "they just get it, and I don't" is absurd.

The latest inspiration came from the NoClip podcast. I was stuck at home with COVID and they were discussing making their own game and pitching ideas. My mind was set ablaze with possibilities that I hadn't considered in couple years. I always get really pumped to come up with game ideas and I'm coming to terms with the amount of work it takes to even create a prototype of one of those ideas.

I've been trying to consider something that will have a realiastic scope. Something suggested it seems by just about everyone who has taken a stab at this, including the trainers at the Unity site. They have a great curriculum that can introduce you to Unity in small manageable pieces. I'd recommend this to anyone who wants to get familiar with Unity. I've been following the Junior Programmer course when I get frustrated with my own project lately. I get frustrated looking for the right YouTube video to answer the question I'm looking for, so following a curriculum can feel a little more rewarding.

If you've somehow read all of this and ended up here before going to YouTube, try Trello to keep track of your project. Everyone seems to suggest a tool like this, and I think they're right. I'll find myself jumping between tasks when I hit a roadblock rather than finishing aspects. So for this week. These are what I've primarily been working on.

  • Dialogue System
  • Learning to use Inky for dialogue
  • Incorporating the new Input System in Unity

I am critical of the player controller when I play my prototype, but I haven't really made any tweaks this week. It honestly feels really fun, but maybe not appropriate for the game I have in mind. Because of this, I've also considered that I may have a large project I'd like to work on, but using the things I've learned to finish smaller projects may be worthwhile. I think that's why I've spent so much time lately working on a player controller in a 2D game and a dialogue system. They are fundamental to number of other game ideas I've had, so I'd really like to nail them down and be able to apply the pieces from this prototype elsewhere.

That's more than enough for now. Until next week!

Who needs another Discord channel? Email me!