Tuesday, December 11, 2018

Gamanteau: How Not(?) to Do a Month-Long Game Jam

I have a lot of blog posts that have been left in the "draft" state on here, left either unfinished or just deemed unworthy of publishing.  Earlier this morning I managed to get one of those out the door, a small analysis on level design in Hat in Time, in hopes that it'll help me prepare an even larger piece on the project I've been working on for much of the year.  I'm putting a bit of effort now, before the end of the year, to empty out my head and reflect a bit on my year as a hobbyist game developer.

Scoping Down

Last month, Github announced the theme of their annual "Github Game Off", a month-long game jam that encourages participants to use open-source tools to develop their games.  Last year's Game Off resulted in the birth of the independent studio Monument Games, a team of college student who were passionate about their craft and looking to try something new.  I had joined the team as a designer, and pitched a game idea about rolling rocks down a hill.  To our surprise, the game was pretty popular among the participants and judges of the jam, and would go on to win 2nd place in the "Overall" category.

Spurred on by this recognition, we stuck together and continued development on the game, eventually submitting it to other competitions such as the IEEE Gamesig Showcase and the Casual Connect Indie Prize in London.  Things were going really well.  While we didn't exactly find financial success through our game, it gave us the confidence to continue on forward to our next project, and bring on some new people in the process.

Then, my life changed.

Ellie was born on August 10th, the same day as my 5th anniversary with my wife.  She has been an absolute blessing in my life, and is giving me a whole new perspective on things.  But my new life as a father isn't easy, and to this day I'm still getting used to it.  About a month ago, I backed out of Monument Games in order to better focus my efforts on my job and my daughter.  I had, of course, hoped that I could still dedicate some time to my newfound passion in game design.

Enter the 2018 Github Game Off.


As life currently stands, I have ~1-2 hours of time every weekday to dedicate towards my own hobby projects.  If I'm lucky, I might be able to grab a few extra hours at home on a Saturday afternoon.  Having this small amount of time available meant I had to choose my projects very carefully; I opted to stick with 3 options: long game jams (longer than 2-days), modding, or learning new tools.  I was excited for the Game Off to roll around, but I was already knee-deep in a modding project and not too concerned with actually submitting anything.

The theme was announced, "Hybrid", and I took note.  No ideas came immediately to mind, so I wrote it off and forgot about it.  Some time later, as I was reading some comments on reddit, I came across a bot that would combine two-word comments into a single word.  It had suddenly occurred to me that this was a game I had often played with my friends; we would, for some inexplicable reason, try to combine two words that one of us would use in casual conversation.  I hadn't realized that this creation of new words had a name: Portmanteau, what could essentially be considered a "hybrid" of two words.  Perfect!  I had an idea for a game, that would be small enough to accomplish on my own with the minimal free time I had available to me...  Sure, the jam had already started, but I should have the time to complete something this simple, right?


The idea was simple, from a source of words, pick two at random and display them on screen.  The player would be free to enter whatever they wished using a keyboard-like input, which they could then save to a "favorites" board.  This favorites board, however, would only hold a limited number of entries, so they would have to choose their absolute favorites and toss away the created words that they felt were no longer "good enough" to keep.

That was it.  3 screen, including the title.  All I would really have to worry about was making a pretty-yet-functional user interface, something which I didn't really have much experience with before.  But something about the open-ended results of this project amused me.  I had recently read Douglas Wilson's writings on "intentionally broken" games, and hoped to emulate that in some way: creating a game that pushed more towards a form of festivity rather than competition. 

Simply the act of creating new words is a silly but entertaining practice, improved even further if you attempted to say a new word out loud.  In addition, being provided with two random words that you might not normally see side-by-side could potentially present an opportunity for joke entries rather than new words.


When it came to prototyping or making small-scale games, I had fallen in Love with Pico-8.  It felt like the natural choice for this project, based on scale alone.

So what if it:
  • Doesn't have keyboard support
  • Had limited memory
  • Could only store 4-byte integers as save data
I could work around all of this, right? I mean, it's just a simple text game...

My starting point was to find a way to enter text data, and thankfully, other Pico-8 enthusiasts had already accomplished this for me.  Their code for simple, virtual keyboards were freely available for others to use;  I figured I could simply hack one of these keyboards to better serve my own concept.  I started by taking afburgess's PicoBoard cartridge, and replacing the functionality of the number and entry keys with a key that would re-shuffle the words presented to the player, and a "favorite" button that would take the new word combination and transfer it, as well as the player, to the "Favorites" screen.

After establishing a list of  words that would be chosen at random, and transplanting the code from the PicoBoard cartridge, the next step turned out to be the biggest: finding a way to save these words to memory, so the player would have a persistent scoreboard every-time the game was loaded.  As the Pico-8 console didn't save strings directly and relied on 4-byte numbers to be stored in specific addressed, I had to try to find some way to encode and decode the words that the players would try to save.

Working in 1 hour intervals when trying to solve a programming problem doesn't help much.  After some trial and error as to how to accomplish this, my motivation wore down, and eventually dropped the game altogether and turned back to my mod project.

New Tools

The silliness of this idea hadn't left me completely, however.  I still enjoyed pressing the "shuffle" key in the prototype and trying to come up with new words with what I was given.  Approximately 1 week before the end of the jam, it hit me:  Why can't I just use HTML?  After all, the game is entirely text-driven, and I had a little experience in the language.  Unfortunately, I had never touched Javascript before, but I had the opportunity to try and learn something new.

It took a bit to get the hang of the programming conventions and how HTML and Javascript files reference one another in code, but after a few coding sprints in the morning before work and on my lunch breaks, I was able to get something functioning.  To accomplish what I was really aiming for, however, I needed to do a bit of redesign.

New Design

As I only had a week left, I needed to re-think some of the aspects of the game. A lot of the changes the submitted prototype saw included added features that HTML coding made easy.  For example, adding a simple "tip" below the word submission field to encourage players to vocally interact with the game seemed like an obvious choice, even if they chose not to use it.

At one point or another, I had the idea to offer up "bonus points" if the player could use their made-up word in a sentence.  It wasn't required, but it proved to add an element of challenge to the game that could produce even more humorous results than the created word itself.

The open-ended interaction of typing in a word and sentence was still essential to the experience, but what really needed to change was the idea of a "favorites" board.  While I technically could have set up a table that utilized HTML's localStorage capabilities, or possibly attempt to set-up my own server to store this data, another idea came to mind: Twitter.  By utilizing hashtags and Twitter's capability to generate "intent" tweets from Javascript, I could use it as a way for players to share their own created words.  Perhaps if the game generated enough attention, the use of likes or retweets could even be used as a sort of "scorekeeper", where the community at large could determine the best made-up words that the players were tweeting out.  Hopefully, by using a unique enough hashtag that could also serve as the game's title,  could keep track of player creations.  Hence, "Gamanteau", a portmanteau of portmanteau and game, became the name.

As an added bonus, adding the capability to tweet out results added a sense of accountability.  The horrific thought had occurred to me that the open-ended nature of player interaction could be a doorway for offensive material to be created and shared.  I briefly attempted to establish a sort of "text-filter" that would reject any submissions that contained language that could be considered harmful or offensive, but I eventually accepted that I lacked the Javascript knowledge to create something that would be robust-enough to avoid misuse.  My hope lied in the idea that twitter users would be holding themselves responsible for what they chose to tweet out to a public audience when playing the game, but I did my best to remove any words from the pre-defined random word list that might present an opportunity for offensive jokes or material.


The game has been up for about 10 days as of now and frankly, there's not much to report.  As it stands, I am the only one on twitter to have used the "gamanteau" hashtag.  At the time of writing, 27 people have at least viewed the game page for Gamanteau, while 7 people have rated it for the Game Off.  I won't find out those ratings for another 10 days.  Given the practically throw-away mentality of the development of this game, and the fact that it's really more of a word game than a "video" game, I can't say I'm too surprised at the lack of activity.

After all though, this is what it can be like to develop games as a hobbyist; I had the opportunity to try something new, something I enjoyed making, and I learned something new in the process.  Had I taken the time to consider my options for tools to use, rather than simply jumping into what felt familiar, I might have had more time to develop this little game into something with a bit more polish.

Even if no one really plays the game as I meant it to be played, I still consider this a win.  There are some incredible games that have been entered into this jam, I highly recommend you head over to itch.io and play some of them!

Next post will probably cover my mod project (I hope to have it done within the next week or so) but don't expect a post until early 2019.

Until then, Happy Holidays!

UPDATE: Alright, I peeked.  248th place out of 327 games?  I'll take it.

Spaces in Time - Part 2: Time Rifts Continued

Earlier this year, I submitted my ice-themed time rift to the Steam Workshop, and I was rather surprised not only to see how many people have viewed and downloaded the map, but also left positive reviews.  At the time of writing, the map has a 5-star rating, with 944 players leaving reviews and 1,556 players being subscribed to it (plus, 18 favorites!).  This is rather surprising, considering how little pre-planning went into the map, and the fact that it was my first attempt at a mod for the game overall...

Application (Continued)

Looking at some of the notes and screenshots in my previous post, not much had really changed.  I did want to place more effort in creating something that resembled a difficulty curve, rather than just haphazardly placing obstacles in hopes that they would create something interesting.  Overall, I stuck to the use of the 4 main obstacles (rotating ice cubes, rotating pie-shaped platforms, slides, and grapple hook points), but the way they were presented to player was altered slightly.  Where the start of the rift had 3 rotating cubes originally, the later revision replaced them with 2 static platforms and a singular rotating cube, as a means of introduction to the obstacle.

This idea was also applied to the spinning gears, which would spin at a faster rate later on in the rift, and the pie-shaped platforms, which would be missing additional pieces as the player got closer to the end.

Difficulty curve aside, much more of the time and effort went into creating a course that offered fluid navigation, and placing aesthetic elements (lighting, particles, decals) to support the chosen theme.  Thankfully, the base set of assets featured in the tool set allowed me to create a setting that felt very much like a "grimy" industrial freezer.

I would very much like to update this map in the future with ice physics, if I manage to take the time to learn how to create customized volumes within the UDK.  As it stands, there are no means for modders to create flat slippery surfaces, unless they manage to code it themselves.  There is currently a volume that will force the player to slide down a slope that is too step to stand on, and it may potentially offer some solutions to simulating the feeling of walking on ice.

Until then though, I'm going to move forward with my level design studies into what are referred to as "Purple" Time Rifts.

Purple Rifts

Purple Rifts are sub-levels found within each chapter that are typically used to help tell stories about key characters or settings.  They are structured quite differently from Blue Time Rifts amd regular chapters in that they have their own sets of sub-levels and a unique collection system, more similar in style to the collect-a-thon games of the 90's.

Rift-Specific Collectables

Aside from from the green and red "pons" that the game utilizes for currency and health (respectively), Purple Time Rifts introduce "Rift Pons" and "Storybook Pages".  Rift Pons must be collected in order to proceed through each rift's sub-levels, and are spread out among a map, typically at points of interest or after particularly challenging action-paths.  Storybook Pages, on the other hand, are entirely optional collectibles that are well hidden in each sub-level.  Each page contains an illustration that is revealed once the level has been completed, offering additional details to the story that the level's environment may not have been able to reveal.

This collectable system is similar to the one that would be found in Banjo-Kazooie, albeit on a much smaller scale.  Rift Pons reflect Jiggies in their importance and difficulty to achieve, while Storybook Pages reflect Mumbo Tokens in their rarity and placement.  Players will often have to search every nook and cranny in order to find and collect all of these pages, while Rift Pons are usually a clear goal that the player is actively in pursuit of.

Example Storybook Page location, from imgur.com user soviam.

However, while the collection of Rift Pons are required to progress, it is worth noting that the number of Pons required to open the next Rift Gate is often less than the number of Pons available in each sub-level.  This allows some freedom of choice for the player, as they can "bank" some Pons to use in a future sub-level if there future are challenges they choose to avoid.  This was a common design choice in previous 3D-Platformers, as it encouraged back-tracking through previous levels, should players get stuck when trying to progress in levels later on in the game.  However, in the case of these Purple Rifts, progression is a one-way street, and the collectables are self-contained; Rift Pons and Storybook Pages have no impact on the game outside of the level.

Rift gate displaying number of "Rift Pons" required to open.  Clearly visible for the player to reference while exploring.

Environmental Story-telling

"Purple Time Rifts are created when a time piece crashes into a person, causing the rift to be themed around them. These rifts lead to a strange dimension where the world resembles the chapter they can be found in." - Hat in Time Wiki

The above quote, found in the game's wiki pages, provides a little more context for the purpose of these rifts and the reasoning for their appearance.  As previously mentioned, the Storybook Page collectibles found in these rifts are used to help further tell the story of key characters in the game.  However, unlike the "Blue Time Rifts" we explored in a previous post, Purple Time Rifts have much more variety in their setting, reflecting the environments of the chapters they are attached to.  This can be seen by each rifts use of familiar props and characters.

Next Time...

I had originally started my own Purple Time Rift way back in April, when I had attempted to participate in the modding contest hosted by the game's developer, Gears for Breakfast.  However, I far underestimated the effort that would be required to complete my vision for a new map, and far overestimated the amount of time I had to complete it.  At the time of writing, I have approximately 336 hours in the Hat in Time Editor, and I have given myself a deadline of December 21st to complete my project.  My next post will be a much lengthier dive into my development of the map, not only observing and applying the design philosophies of Purple Time Rifts but applying common level design practices as a whole.

Until then, I figure I could at least add a few in-progress screen shots from earlier in development.  I will be on vacation after the map is finished and released, so the follow-up blog post will not be written until early next year.  At that time, I'll probably also be posting some tidbits about my 2018 experience as a whole, and maybe discuss my plans for 2019. 

Until then,

Tuesday, March 20, 2018

Spaces in Time - Part 1: Time Rifts


If you have read any of my previous work, you'll know that I have a... "thing" for the 3D Platformer Collect-a-thon genre that was popular in the 90's.  These are the games that I grew up playing.  Last year we saw a good number of releases, most of which were met with mixed reviews (see Yooka-Laylee, Snake Pass, Freeze-Me).  There is one, however, that would surprise everyone and made it's way to being the 2nd highest rated game on Steam in 2017: A Hat in Time (referred to as "AHiT" from here on out).

For being the first game for the studio Gears for Breakfast, and the first game ever created by Jonas Kaerlev, there is so much that AHiT did right.  "Hat Kid", much like Mario on the Nintendo 64, is an absolute joy to control, with movements that were easy to learn and a bit difficult to master.  Badges could be purchased that manipulated gameplay in fun and interesting ways, like granting the player the ability to sprint or freeze time.

What astounded me the most, however, was the level design.  AHiT offers so much variety in it's spaces that I never grew tired of playing.  One moment you're at ease, exploring the open and inviting world of Mafia Town, and the next moment you're sneaking around on the Owl Express, gathering clues to track down a murderer.

I haven't been able to get this game out of my mind.  AHiT is a huge step towards what the modern 3D Platformer could become.  And seeing as it comes with it's own set of modding tools, I figured its high time I tried my hand at actually creating my own spaces to play in, rather than sitting around and critiquing the worlds that others have laid out for me.

Why Write This?

There is a fantastic opportunity here for me to expand my own design experiences and learn something new.  What better way to do this as a hobbyist than by modding a game I enjoy?  A Hat in Time offers it's own tool set for creating new levels, hats, skins, and other assets, all based in the Unreal 3 Development Kit.  Not only do I get the chance to design levels for a 3D Platformer, but I get to learn a new engine while I'm at it.

As I will be learning many things as I go, I figured it was a better idea to keep track of my progress through individual blog posts rather than one large essay, like I did with Yooka-Laylee.  I'll do my best to research particular aspects of AHiT's worlds as I attempt create my own, learning what ideas could work in practice and which don't.

Now then...

Time Rift Overview

The modding community over at the AHiT Discord strongly suggested that anyone just starting out with modding should take a look at the Time Rift template that can be used when starting afresh.  The template level is quite simple to work with; a small obstacle course with a spawn point, check point, time piece, a revolving platform and a couple of stationary platforms.

I bolded the term obstacle course in that last sentence because, in essence, that is what the most basic of the Time Rift levels often turn out to be.  There aren't any new move sets or concepts introduced in Time Rifts, they are meant to test the player's mastery of what they have learned so far.  The first two time rifts the player would typically come across are within Mafia Town (Sewers and Bazaar), neither of which require the use of additional hats or badges to complete. 

** Note, for the purpose of this particular post, I am focusing on the more basic rifts.  Purple (or cave) rifts, while similar in nature, have more complexities to them (collecting, narrative, sub-levels), so I will be saving those for another time.

Rather, they utilize Hat Kid's movement-based mechanics in interesting ways (wall climbing, diving, and of course running and jumping).  These time rifts aren't available right away - they only appear as the player progresses.  Looking once more at Mafia Town, the first time rift, Sewers, doesn't become available until after the player earns the time piece for "Down with the Mafia", the 4th act of the chapter, which provides the player with ample time and opportunities to learn and master that basic set of mechanics.

Time Rift Design

At their very base, platforming levels could be considered as string of obstacles or micro-challenges for the player to overcome.  The "Blue" Time Rift stages are a prime example of this, as each rift re-uses similar assets in new ways to put the player to the test.  There is only one objective (time piece at the end of the course), and, for the most part, the way to get there is fairly linear.  The first two rifts, featured in Mafia Town, take the average player about 1 minute to complete, and require nothing more than a firm understanding of Hat-Kid's base mechanics: running, jumping, climbing, dashing, etc.

"Bazaar".  You can see the variety of assets used in this level, and how they are grouped together to create individual challenges.

As the player progresses, however, mechanics that are introduced in a world are placed into their corresponding time-rifts.  The next pair of blue rifts the player would be expected to come across are in Battle of the Birds, both of which are a bit more complex than their Mafia Town counter parts.  "The Owl Express" uses the pressure-plate switches found in the Acts "Murder on the Owl Express" and "Train Rush" to create exploratory puzzles, while "The Moon" utilizes the band-following mechanic from "The Big Parade" and designs a level that discourages the player from taking the same route twice.

"Owl Express". Still a linear path to the finish, with switches and more complex structures introduced.


While creating a mod map doesn't necessarily require you to stick to the mechanics featured in particular Acts or Chapters, I've learned that simply focusing on a certain set of mechanics or a theme can often help with design direction, and give a more cohesive feeling to the level without throwing in too much.

When thinking of what sort of interactions I wanted in my own rift level, I was particularly fond of one set of actions: sliding, jumping, and ending on a grapple hook.  The idea of sliding made me think of ice, which in turn gave me a theme, "Mafia's Icebox".  I wanted to try to give the impression that the rift was taking place within an industrial refrigerator, without straying too far from the basic set of time rift blocks.  In the end I focused on the interaction with grapple hooks and slippery surfaces, doing what I could with Unreal Matinee and Kismet to create challenges around these concepts.  You could consider this both a bottom-up and a top-down approach to designing this level, as focusing on one set of interactions provided me with a theme to work with.

Ultimately, I wasn't looking to make a challenging level for the average player; I instead wanted to make a level that was more enjoyable and a little tricky to try to speed through.  In that mindset, the pathways ended up being extremely straight and linear, with only 4 hard turns until the goal was reached.

I do enjoy playing with the fog settings.

What has really become tricky is using materials and lighting to create the feel of ice and cold steel.  This is why there are individual jobs for lighting and environmental artists, neither positions of which I have much experience in...

The first iteration of this level re-used most assets at least twice:  
  • 2 sets of 3 rotating "ice cubes"
  • 2 sets of 3 rotating ice "pizza slices"
  • 2 sets of 2 rotating gears
  • 3 "slides"
  • 3 grapple-hook lifts
  • 1 static grapple hook point
While this helped to create the consistency I was looking for, it doesn't really have the right balance of variety to really keep the player on their toes as they progressed.  Simply increasing the speed that the gears would turn or changing the arrangement of platforms doesn't quite give the increasing sense of difficulty a linear level like this should.  I need to find a way to remix some of these obstacles to make the progression changes a bit more drastic...  Maybe add a few more static grapple hooks as a means of traversal.

Mid-Post Update

I had originally planned to complete this post and share it once the level was done.  However, during the process of designing this Rift and writing this post, Gears For Breakfast officially released the Modding Update for AHiT, and even started a $1000 mapping contest for the best Purple Rifts the community could offer.  This is an opportunity I am extremely excited about, and as much as I hate jumping ship in the middle of a project, I might have to make an exception for this one.  The contest goes until April 27, so after that point, I'll see about finishing this "Icebox Rift" and maybe write a reflection post about what I learned while creating my own Purple Rift.

See you in a month!

Monday, February 12, 2018

In Retrospect: Breakdown (and 2017)

I started off 2017 with one resolution: design and develop my own game, from start to finish.  After a lot of over-scoped projects and failed attempts at building consistent work habits, I finally finished my first game, Breakdown, on 12/21/2017.  It was much smaller than what I had originally pictured at the start of the year, but it was a complete game nonetheless, and solidified my passion for game design and development.

Breakdown could easily be summed up as the illegitimate child of Pong and Breakout.  There's isn't anything too spectacular or ground-breaking about it's design.  With that in mind, this retrospective post wont really focus much on the game itself, but of the lessons I learned during it's development and the effect it has had on me.  In many ways, the effort I put into getting one game published by the end of the year helped me to develop some healthy work  and creative habits, especially considering that I'm currently developing games as a hobby while I work full-time as an engineer.

Pen & Paper

The most important habit I developed over the last few years was carrying around a notebook for ideas and for free writing.  What became difficult, however, was keeping pen and paper with me at all times.  I wish I could recall what sparked the inspiration for Breakdown, but I remember it came to me during a party at a friend's house.  After the idea stewed in my head for a few minutes, I had to scramble around for something to write it down onto.  My friend had provided me with a pen and a small piece of cardboard - I believe it might have been the top of a Cheeze-It box or something.  The important thing was, I had it down, and it was now sitting in my pocket.

But I didn't only use my notebook for ideas.  I'm a bit embarrassed to admit that my brain had trouble keeping track of certain bits of the game logic, most notably collisions.  Having this visual representation helped keep me on track much more than I expected it would.  In short, when in doubt, draw it out.


You can read a lot online about daily routines that developers picked up in order to keep themselves motivated on their work.  Some people would attempt a minimum of 20 minutes a day on their projects, no matter what task you performed.  Others would look to set up deadlines for each step of their game, keeping lists and dates to push themselves to stay on track.

These are all great practices, but the truth is, there isn't one sure-fire ritual that works for everyone.  I had attempted many of these practices myself over the course of 2017, but between the unpredictable nature of my day-to-day life, and the lack of energy I had after work, none of them proved to be successful.  I eventually read a comment to a post on Reddit, from someone who had been in a similar situation as myself.  The suggestion was to simply wake up an hour earlier in the morning, and dedicate this time to development before getting ready for work.  It turns out that my brain was much more fresh at 5:00 a.m., and there were many mornings where I could go into work with a sense of accomplishment from what I had already managed to complete from my personal projects at home.

The key lesson I learned (maybe still struggling to learn) is the consistency of a ritual. Obviously, a ritual isn't a ritual if you don't do it ritually.  There were several development phases I hit that were less fun then others; that's expected.  But the key thing was that I didn't stop waking up early to work on the game when thing's weren't as fun as they were the week prior.  Some days I made less progress than others, sometimes I wouldn't make progress at all.  But keeping the vision of this completed game in my mind, sharing my progress with others, and keeping the hard deadline of December 31st helped me to stay motivated and see Breakdown through to the end.  

Scope, Cutting Content

This one was a bit harder for me, but it was an important lesson, and one every developer learns at one point or another.  Somewhere down the line, you are going to end up cutting features from your game that you were once certain would be a part of the final product.  There could be a number of reasons for this, but in my case, it was simply a lack of time.  I had originally planned to have features like a leader board, increased speed for paddles as they decreased in size, and more complicated physics overall.  Much of development involved learning new concepts and practices, every new feature becoming another google search, and thus becoming an even greater time sink.  Luckily, it turned out that finishing the game without some of those features not only made the project easier for me to digest as a developer, but even easier so for a player to digest when playing.  

Of course, the beauty of creating games in the internet age is the fact that I can simply add on those features and update the cart.  However, I chose to prioritize a completed game over a feature-rich one that may have never seen the light of day, and I'm more than happy with the result.  With this being "my first game", having some more of those complex systems would have greatly extended the dev time, and I would have no doubt lost interest in the game with the additional walls I could have potentially run into.

Consequently, at the time of writing this, there is a post on Reddit that offers a list of what NOT to have in your first game.  Kind of wish this was around when I had started off...

Get Involved

In January of 2017 I made the decision to skip a class and attend one of the early meetings of the Video Game Development Association.  I walked in late, much to my embarrassment, but after the meeting, I was greeted by the club administration and joined the Design team.  Getting my name in the credits of my first project as "Gameplay Designer" was such a great feeling, and seeing something in the Google Play store that I helped make was an even better one. Even after graduation, I've been continuing to attend meetings and contributing to the games the students put together.

Not Pictured: Me.  Having a full-time job unfortunately meant I would be absent from such gatherings.

The best thing that has come out of this experience, however, was the camaraderie among aspiring developers.  Each of us are consciously aware that we're here to learn, and that allows us to find the potential within ourselves and each other.  I've made several friends since joining this group, and we continue to build great things together even when the semester is over.  It's completely possible to do the solo game-dev thing, but joining a team of like-minded individuals proved to be most beneficial for a developer just starting out.  And, of course, it gives you the experience of working within a team towards a creative vision.

I set out to finish one game by the end of 2017.  Thanks to VGDA, I had the opportunity to work on 3 additional games that were completed and published last year.

Get it Out There!

I don't typically take a lot of pride in my work or accomplishments (just ask any one of my friends or family members).  I'm typically plagued by this idea that whatever I create, whatever idea I come up with, there is always someone out there who did it first, and has done it better than I ever could.  It's a mindset I still fight with from time to time.

Ultimately, your ideas and creations are worth sharing, even if you feel they're not your best work.  Two things can happen: you could receive compliments, which might encourage you to make more or improve, or you could receive criticisms, which, if handled properly, could still encourage you to make more and improve.

Breakdown won't make me any money, and I could probably count the number of people who played it with my fingers.  But someone else played it, and someone else liked it, and that was more than enough for me to keep this hobby up.  As I go into 2018, I'll be actively searching for new things to try and new things to learn.