Categories
Game Design Game Development Geek / Technical Personal Development Post-mortem

Freshly Squeezed Post-mortem #1: Toy Factory Fixer

Now that my first Freshly Squeezed game has been out for a few weeks, I thought it would be a good time to look back and see what lessons could be learned for future projects.

Toy Factory Fixer, a turn-based toy factory management game in which you hire and manage workers to ship toys, was a project I started in December of 2020, the first of my Freshly Squeezed Entertainment line of games.

Freshly Squeezed
Toy Factory Fixer

As I said in the my first progress report post for this project, Freshly Squeezed games were meant to be quickly created within a month and given away for free.

The idea behind giving away free games is that I want my games to have as little friction finding their audience as possible, and if enough demand exists for a particular game, perhaps I will create a “deluxe” version for sale. In other words, rather than guess at what random strangers might want based on trends and fads, I’m trying to find and get faster feedback from the people who would be interested in playing the kinds of games I am creating.

So I’ll start by saying that Toy Factory Fixer was meant to be a one month project, with a target deadline of December 25th, 2020.

Ha.

I ended up publishing the game in the Apple App Store and on Google Play on December 14th, 2021, over a year after I started.

For the mathematically inclined of you, you probably noticed that it definitely took much longer than a month.

But this is a post-mortem! Let’s talk about what went right, what went wrong, and what lessons can be learned from the experience.

What Went Right

  1. Paper prototypes helped me narrow in on the concept and game play early

    At the end of November, right after my latest published update of Toytles: Leaf Raking, I already came up with the general idea for Toy Factory Fixer. So right away, I had the concept on paper. Originally, it was a Christmas-themed game, with the idea being that the in-game shipment deadline was Christmas Eve and Santa needs those toys.

    But how would the game play? It could be anything.

    When you have the proverbial blank slate, there is a lot of potential, with many directions to go in, and it can be quite exciting.

    But you can’t stay in this amazing realm of imagination where anything is possible. At some point, you have to make decisions, which means cutting off some options as you choose others.

    Within days, I thought about a tower defense-style game, with a conveyor belt and workers (and machines, but those didn’t make it into the game).

    Toy Factory Fixer: Paper Prototype

    Toy Factory Fixer initial mechanics
    Now, I could have started coding and creating digital art, but that is an expensive thing to do upfront, especially in terms of game design. It’s faster and cheaper to use paper and markers.

    And doing so helped me to figure out the answer to some early design questions related to what the player would do within the game and how the various parts would work together.

    Should workers be able to do things automatically or require the player’s micromanagement?
    What obstacles would be in the player’s path?
    Should there be a turn limit?
    How does a worker get the parts to put together a Good Toy?
    How do toys on a belt interact with other toys?

    While not everything explored through this phase made it into the final game, it did help inform implementation details. For instance, I knew that I had to figure out what it meant to have multiple toys share the same location on the conveyor belt early on, and when it came time to actually write the code, I had already thought of a few solutions thanks to the quick paper prototypes I was able to come up with and ended up picking one that I thought made the game better than I had originally anticipated.

    I love the benefits of paper prototyping, and I wish I had done more of it, but for the amount I did, it definitely had a huge impact in terms of speeding up development and design work.

  2. Light-weight project planning helped me stay on task for the long-haul

    I’m a big fan of Agile software development, and so I am habitually used to focusing on value-delivery, working in short sprints, breaking down work into bite-sized pieces of value, baking in quality, and keeping the stakeholders/players in mind.

    I know some indie game developers work with a simple list of tasks, or maybe a list of must-haves and a list of want-to-haves, and it works for them.

    And maybe my spreadsheet is just a glorified collection of such lists.

    But from the beginning of this project, I created a backlog of features and tasks, then for a given week, I took a subset of the backlog and tried to get it finished. Then I repeated until I was done.

    Toy Factory Fixer - project backlog

    And that’s oversimplifying it, but that was the secret that kept me going for a year of very, very part-time development outside of the day job, the family time, and other obligations.

    I basically had a small set of things to do at any given time, and at the end of the week, I assessed how it went (usually by writing a sprint report blog post), took a few minutes to plan the next week’s sprint, and repeated.

    The slightly longer explanation is that I estimated how much work any given set of tasks was going to be when it is in the backlog using t-shirt sizes (Small, Medium, Large), and when I planned the sprint, I broke down those items into more detailed tasks so I knew what needed to actually be done. Then whenever I was doing game development, I’d look at the spreadsheet, pick a task, and focus on it until it was done.

    And since I usually didn’t get more than hour of game development at a time, I found great success with small and specific tasks rather than high-level, vague descriptions that leave a lot up for interpretation even though I’m the one who wrote it in the first place.

    I had a daily habit of putting in game development, and my project plan helped keep each day’s game development session connected to the previous one. Even if I went a few days without doing any game development, keeping my project plan front and center meant that it was easy to get back into it.

    I am not saying that everyone should do what I did. I’m merely saying this is what I did, and it worked well enough to keep me focused until the project was finished.

  3. Light-weight project planning helped me adapt to changes discovered mid-development

    I’m not going to pretend that games are special in terms of the need to deal with changing requirements, since so many software (and non-software) products also deal with it.

    But quite frequently I would add a feature, playtest it, take a step back, and realize that the player is going to need more feedback to know what is going on.

    That is, mechanically something might be in the game, but if the player gets no indication, it can be easy to miss.

    So sometimes I would discover partway through the work that there was more work to do.

    And no, I wouldn’t describe this as feature creep.

    Let’s take the time I added the ability to earn money when you ship a Good Toy.

    When you ship a Bad Toy, nothing happens (and maybe I should have added some negative feedback there like I’ve thought about doing for months, but ah, well). When you ship a Good Toy, it looks like nothing happens even though you earned money. If you were paying attention, you would see the money value is different.

    But as a player, you aren’t paying attention to that part! You’re trying to pay attention to everything else going on in the game!

    So I did a few things. One, I changed the value of everything by an order of magnitude. Workers used to cost 10 Money, and then they were 100 Money. Why?

    So that way I could more easily make it obvious that the player’s Money interpolated as it changed from one value to another. There is something satisfying about seeing numbers change over time instead of instantly changing at once.

    Of course, once I did so, I realized that it felt too slow when the numbers change a lot, so I even tweaked it to interpolate faster with larger changes in value.

    And I had the money the player earned fly from the shipping chute towards the Money balance at the top of the screen.

    These were small bits of polish that really helped sell what was happening to the player, and I didn’t anticipate them when I started.

    But I had a plan! Didn’t these changes get in the way of the plan? Didn’t they slow me down?

    No, that’s another thing about Agile that I like. You learn things as you work on a project, and that learning should inform the work.

    So my light-weight planning tool was easy to modify on the fly. I could be days into a given sprint, and I might realize that a given feature had a few extra unidentified tasks in it before I could say it is truly complete. I have the option to add those tasks to the sprint or create a new feature in the backlog if I decide I’ll work on it in a future sprint.

    Toy Factory Fixer - Sprint Plan Change

    It’s mere seconds of work to update the plan, and I can get back to work.

    Now, I could argue that the downside is that I allowed for scope to balloon for any given task, but I’m alone in this project. I didn’t need to argue or justify or push back against someone else’s requests. I just had to make a judgment call on whether or not I should add work. And while I often did, which led to the year-long project, I also had quite the backlog of new ideas that never made it into this initial release because I was trying to keep scope down.

    I think it is easy to let the light-weight part mean that I didn’t put on my producer’s hat often enough, but it did let me make changes on the fly fairly easily while keeping on top of it all, and I think the game is much better for it.

  4. Having testers meant finding major issues and getting feedback right away

    At one point, I put out a call for testers, and two people replied.

    And they made a huge impact, both in terms of game play and in terms of basic functionality.

    When you are targeting mobile platforms, you have to deal with regular cycles of sometimes seemingly-arbitrary changes to those platforms. They aren’t changes I care about other than the fact that they might break how my games work on those platforms.

    So imagine my surprise when I was regularly testing my game on my Android device only to find that a tester couldn’t get past the main menu on his Android device. He said it looked like the game was frozen. And after adding some debug code, we verified the game was not frozen but was, in fact, working quite well except for the tiny detail of touch inputs not getting processed.

    WHAT?!

    Weeks later, I finally figured out that the major culprit was that Android 10 somehow handled touch input differently from my much older Android device, or at least differently enough that libSDL2 wasn’t really behaving the same way. My workaround was to exit out of a message pump any time I process any input, which allowed my code to detect when a player pressed and released a button. It otherwise wouldn’t notice because the press and release happened at the same time and so the before and after input state would look the same.

    Separately, the testers frequently told me what was confusing or what worked well, and a lot of their feedback made it into the game in one form or another (further adding to the scope, but I think for the better). Some of their feedback is still in my backlog as things I want to add to the game but that didn’t make it into this initial release.

    Also, it is quite gratifying to have testers tell you that the game is fun. When you’ve been doing your own testing of an in-development level over and over and over again, falling asleep at the computer (and worrying that the game is boring enough to make players also fall asleep?!), it is so great to hear that someone else is enjoying what you’re making.

    I probably could have been in more frequent contact with the testers, but I was also trying to be mindful of the fact that they were volunteering and had their own obligations and time constraints. As things stand, though, I am really thankful for their efforts.

  5. Little bits of polish went a long way towards making the game look interesting

    I already talked about the money interpolation thing above, but at some point I realized that the game has a lot going on but looked like nothing was going on.

    Still frames and screenshots are fine, but animated GIFs and video tell quite the story. Except they were boring-looking stories.

    And at some point, I had accepted that this project was taking a lot longer than a month, and I wanted to give it the best chance to find an audience, so I thought it was important to add some “juiciness” to the game.

    I added animations, such as having the toys lean back as they are moved forward on the conveyor belt, or having the workers move their arms when they are finished separating a Bad Toy, or having the worker’s eyes look at a nearby Bad Toy.

    Here’s what it looked like in January:

    Toy Factory Fixer -Dispensing Toys

    And here’s what it looked like in September:

    Toy Factory Fixer - Strong Workers separating two toys at once

    My favorite animation is a toy arcing into the air and back down to land on the conveyor belt with a thud. There’s a small dust ring that appears, and the squash/stretch of the toy as it moves it subtle yet works really, really well. And the sound effects really sell it.

    Most of this work didn’t feel like it took too much time to implement, and some of the effects were purely aesthetic, but a lot helped communicate to the player what was happening. Seeing floating numbers appear as toy parts were added or taken away from the inventory worked way better to let the player know that the quantities changed.

    And it made the animated GIFs look way, way more entertaining.

What Went Wrong

  1. I stressed myself out with my arbitrary one month deadline…for months

    Freshly Squeezed games were supposed to be quick. I wanted to create one-month prototypes. But I also wanted them to be polished and finished enough that someone could say “Yeah, that was a complete experience…and I want more.”

    And every week after the one-month mark was another week that my game was overdue and in which I failed to do the “simple” task of creating and releasing a game.

    I especially felt bad after three months had passed. That’s 90 days! I should have had a Minimum Viable Product by then!

    No one was promised this game in one month. I had no customers or stakeholders who paid for it. And yet, I felt pressure to get it done.

    I mean, the longer this one game took to make, the fewer games I could make for the remainder of the year. And without even one published game, I couldn’t find out if the Freshly Squeezed “give away polished prototype, hope people subscribe to learn about future games” idea was likely to work. The entire product development strategy felt like it was in jeopardy! I needed to ship!

    Now, it turned out that I had underestimated the amount of work it would take to make something I would feel proud of releasing. A key part of Freshly Squeezed games was that they were not going to be shoddily-made, and it turns out that quality takes time.

    And as I wrote throughout the year, game development time was not something I had in abundance.

    The game ended up taking as long as it did. I don’t like saying “It’ll be done when it is done” because, you know, I did want people to play the game before I turned 80-years-old. I don’t have the luxury of working on games forever.

    In a well-run Agile project, if there is an arbitrary deadline, you work on the most valuable thing and have something to ship as soon as possible, and you build on it so you always have something functioning and ready to ship. And you expect that a lot of items in your backlog won’t make it into the final product by the deadline, but you know you got the key things in, AND that there is no other optimal way to do it that wouldn’t require inhumane working hours.

    I wanted to have both that arbitrary deadline AND the ability to keep expanding the scope of the work, and it doesn’t work that way. I probably should have realized early on that, no, this project was going to take longer than a month, then figure out what my minimum release criteria was as early as possible.

    Of course, the version that did get released feels like it is already fairly small in scope. Anything smaller, anything I would have released earlier feels like it would have been a much lesser game for it.

    Perhaps going forward, I limit myself to a maximum of 90 days for any one project, and I hold myself honestly to that deadline. It would require me to spend more of my time upfront exploring the basic game play, and only then can I polish it up.

    But it definitely requires me to rethink my product development strategy going forward.

  2. No real design document meant a lot of wasted energy wondering what should and shouldn’t be in the game

    I’ve never spent time creating massive 300+ page design documents, of course.

    But in the past I have found that even a 48-hour game jam went more smoothly when I made use of a living design document.

    Unfortunately, I didn’t use one for this project.

    Instead, I had random notes on sheets of paper, random notes in my development notebook, and the random ideas and features I threw into my project backlog.

    My project plan is in a spreadsheet, and one tab had a vision for the project, but it was very much focused on the purpose it had as a Freshly Squeezed game, as well as some guiding principles such as a desire to make the game family-friendly.

    So, when it came to making decisions about what to put into the game, I didn’t have much of a North Star to guide me.

    I had a lot of ideas, but they were not together in one place, which made it hard to think about them cohesively.

    I used different individual tools separately, and to great effect. For instance, to get the look of the workers in the game, I found images of Christmas elves online. I found a lot of reference art, which helped inform the creation of the sprites for the elves (hey, that’s almost a pun…).

    I doodled and sketched out ideas, and some ideas made it into the game partly because that prework helped me figure out how to make it real.

    But it definitely felt like I was randomly deciding what features were key and which were optional, and it would have been nice to codify that decision even if it was after the fact. That way, when I was revisiting an area of the game months after I last touched it, I wouldn’t have to remember why I chose not to do something or why I went in a certain direction.

  3. I spent time on polish before I spent time on nailing the game play down

    I think reading and watching videos about adding “juiciness” to games got me thinking that my game looked lifeless, and I needed to address it.

    Some of the work was quick, such as making the toys animate as they move down the conveyor belt.

    I’m very proud of the polish I put into the game, but added up, all of this polish and “juiciness” took a substantial amount of time.

    Which is fine, except that even after a lot of polish work, I kept adding major game-changing features since the game felt incomplete without them.

    Now, I’m not sure if it is necessarily wrong to polish existing features before moving on to adding another feature. After all, if I intend to ship any day, having a prototype that looks like it was hacked together is less appealing than a prototype that looks like a finished product.

    But I think the fact that I didn’t have a clear idea of what needed to be in the finished product until almost a year later made it easy to keep extending the work by adding animations, particle effects, and more.

    They were always justified, of course. The animation and sound effects act as powerful and immediate feedback for the player. They aren’t just eye-candy. They actually help the player significantly.

    But I think being more deliberate about fleshing out the core game mechanics first would mean it is cheaper to try exploring a few ideas before settling on them.

    Adding polish basically means I’m baking the features into the game, and they become harder to change.

    Toy Factory Fixer - money text floaters

    I can always iteratively add polish, revisiting things instead of trying to get it right the first try.

    My first pass at income generated from shipping Good Toys was functional and non-obvious to the player when it happened. My second pass added an animated amount that flew towards the player’s money balance at the top right, but it was hard to read as it went too fast and if it went slower it would be distracting. My third pass was to change it to floating numbers that disappeared after a short period of time.

    I think purposefully identifying potential iterative passes for polish might help balance between focusing exclusively on functionality and spending too much time on making things look and feel good before that functionality is all in.

  4. Being very, very part-time meant not a lot of time dedicated to experimenting with game design

    Rereading all of my progress report blog posts, one common theme was that I wish I could dedicate more time to game development.

    I lamented the lack of hours. A lot.

    So, I apologize if you got tired of reading it.

    But besides forward progress being slower than I would have liked, a lack of time meant I had to limit the amount of exploration of the game design space I could do.

    Game development is iterative and incremental in nature. You make something, then you build on it. And sometimes what you build is only obviously wrong after the fact, when you can experience it in motion, so you throw it away and try something else.

    If you could experiment with game play once a day, you could learn a lot about the game you are making, and you can find all of the dead ends right away, and you can find the more entertaining experience sooner. Any one option is cheap to try.

    But if your experiments only come once every few months? Now your changes are expensive to make. A choice to try something is more likely to become permanent simply because there isn’t time to replace it with something better.

    For example, at one point early on, I was worried that it was tedious to direct individual workers to craft toys. And frankly, I still am. But how much experimentation can I do with such a core part of the game, especially when I thought I was almost done for most of the lifetime of this project?

    So that mechanic stayed as it was.

    I did create the Go/Stop buttons partly as a result of tester feedback, so there were some things I thought of that eventually did get experimented with, but the point remains.

    If I wanted to release a playable game in a relatively timely manner, any game design experiments would have to be focused and quick. Maybe instead of fully exploring a design aspect, I try two proposed ideas and pick the best one. Or I try one and see if it works well enough, then move on.

    Much better would be to focus full-time on game development, but until my circumstances change to make that possible, I’ll need to figure out an approach to game design that let’s me maximize design exploration in as little time as possible.

  5. I didn’t pay attention to release criteria until near the end

    I laugh today at how optimistic I was about how soon I expected the game to be released. First, it was by Christmas. Then it was by the end of the 2nd month. Then the 3rd month. My birthday in July? Before a year of development was done. At least by the end of a year of development!

    I didn’t have game play for months, and it was almost six months into the project before I felt comfortable handing it off to testers to try. Why did I think I was almost done when I didn’t have any levels to play in?

    There is a difference between a wish (“I’d like to release this project within 30 days”) and a reality-based plan to accomplish it.

    I somehow fooled myself into believing that I was somehow going to finish the game just because there was a day I said I was going to be done. Even if that day changed every time I missed yet another deadline.

    Much of development early on was infrastructure and scaffolding. I created kind of a template for a menu system that all future Freshly Squeezed games will use. But that didn’t help me get a game done quickly.

    Later, I was solving platform-specific issues with newer Android OS versions, and then I was dealing with iOS build issues. They were important, but they delayed work on the game itself quite a bit.

    And I kept adding scope to the game. Sometimes it felt legitimate, like adding animations to help communicate what was happening in the game to the player, but sometimes it was plain old feature creep.

    I tried to separate my backlog between must-haves and would-like-to-haves, but the must-haves list kept growing in scope.

    I had 25 items in that must-have backlog when I started, and ended with about 95, with another 40 or so ideas that I decided not to include.

    At some point in late October, I decided that what was possible to do in the game good enough, and I created a hard list of things I needed to do to finish v1.0 of the game. The biggest “real” task was deciding on and creating the number of levels I would ship with, but the rest included some key areas of polish, options to toggle sound and music, and creating an in-game help.

    Having that release criteria helped me focus on finishing in the final months. What would it have been like if I had decided earlier on the nature of levels in the game? Maybe that design document above would have helped inform other features.

    But the point is that I spent quite a long time thinking I was almost done, only to identify a significant amount of work late that I could easily have seen if I was serious about releasing a publishable game as early as I would have wished for.

    I’m not saying that a plan would have been perfect, that I would have been able to predict with 100% accuracy how long the project would have taken. But I am saying that I had a plan, and I could have paid attention to it more to give me clues.

What I Learned

  1. Prioritizing the work is important enough to make time for

    Each week, I took a few minutes to plan the next week’s work. Sometimes it took more than a few minutes.

    With limited capacity in terms of hours, one might think that every minute of development counts, and I should spend less time on project planning. Simply work on game development until the project is done.

    But having limited time meant it was even more important to invest some of my time in planning. I always had a direction to go in, I always knew what I was working on next, even if that work was “figure out how to solve this particular problem.”

    My weekly planning cadence produced a lot of benefit.

    That said, I think I could stand to wear my producer hat more often. I overscoped a lot of my sprints, which meant that while I was making steady progress, I was also using any given sprint backlog less as a prioritized list of the most important tasks and more like a sub-backlog.

    Now, I’m generally fine with the work being fluid. If I learn things about a given chunk of work, if I come across defects, I throw them into mid-sprint backlog. Fine.

    But if I only get about two major features done in a given sprint, what sense did it make to add five of them to my sprint backlog? Again, wishful thinking served me poorly.

    What it did was give me permission to say “Well, any work unfinished will just carry over to the next sprint.” Which gave me permission to start work on some items without thinking through them, since, hey, I was just going to work until I thought it was done.

    Which meant I sometimes spent too much time on a given item of work. Or I allowed myself to work on a task that probably shouldn’t have been a higher priority, such as the amount of time I spent trying to create a background image for the game despite the fact that I am not an artist by trade and that all the time and effort I would put in would just result in a slightly less bad piece of art.

    Original menu screen background

    And if I really wanted to make a game quickly, even if I was going to be fine with it taking longer than a month, why didn’t I take advantage of the t-shirt sizing I did to create a rough roadmap or something similar that would help me understand just how much time might be needed to work on the game? I might still underestimate it, but I would probably be able to recognize that I wasn’t “almost done” for so many months if I could see that even the initial work I could identify upfront was going to take more than four weeks of work.

  2. A little polish and juiciness goes a long way

    I think it is safe to say that Toy Factory Fixer is my most satisfying game to play out of all of the games I’ve ever created.

    Most of the games I have worked on in the past were 48-hour game jam entries, and my efforts were focused on putting together a functioning game quickly and not necessarily on how it looks. In fact, many of those games were silent, with at most some sound effects thrown in at the last minute.

    Many years ago, I read a quote from a game developer saying that the lion’s share of game development is in the interface, and at the time I thought, “Ok, yeah, so there’s code and there’s art. Duh.”

    But then around that time while discussing how Model-View-Controller works, I had a realization that the interface to the underlying game system can itself be very complex. For example, when you click on a unit in a real-time strategy game, there is a lot of visual feedback. Sometimes the unit gets a little circle around it to make it clear which one you are currently looking at. The menu might update with the unit’s picture. A sound effect might play, like a worker’s bark. And when you click on a button to issue a command, the buttons will change to indicate which one you selected.

    And all of this isn’t strictly necessary in terms of the bare minimum to issue that command to that unit. That is, the underlying game simulation probably has no idea any of these clicks are happening.

    But the player’s experience? It is greatly enhanced. It is a lot less confusing, and it can often be a key source of the entertainment of the game on its own.

    When I added transitions to the screens of Toytles: Leaf Raking, I found that I loved how something as simple as fading in and out made the game feel better to play. The game is mostly static still, but it’s better than it was, even if only slightly.

    With Toy Factory Fixer, the toys went from merely traveling down the conveyor belt to feeling like they had actual weight and momentum. Functionally, they still moved one tile at a time, but visually and audibly, they arced into the air, landed with a heavy thump, then got pulled down the conveyor belt each time it moved. The toy parts flipped in the air as they soared towards the inventory.

    And when the toys got so much work done, I felt I needed to enhance the workers. They soon talked, blinked, looked at nearby toys, and waved their arms. You got a sense of their personality.

    And floaty numbers made it easier to see when you earned money and when you gained or used items in your inventory.

    Juiciness wasn’t just animations and particle effects, though. I had a list I created in July of various opportunities to add enhancements to the game, and some were more useful than others in terms of player feedback, and less than half of the ideas made it into the game.

    Some ideas were silly and meant just for fun. I always wanted to give the workers random names and irrelevant stats, such as “Laziness: 7” or “Disgruntled: 2”. Apophenia is a powerful thing to take advantage of, but it will have to come in a potentially future update.

    Other ideas that didn’t make it in might have helped communicate the state of workers, such as animations that indicate what they were doing, or communicate the lore of the game, such as letting the player see a description of individual toys.

    But even with the few enhancements I did implement, the game came alive, felt great to play, and seems to delight players.

    If I learned anything, it’s that I want to try to focus on adding personality to the game earlier rather than as an afterthought.

  3. The best of intentions isn’t a substitute for an actual plan

    Between assigning myself too much scope in any given sprint and allowing the game’s overall scope to grow throughout the project’s lifetime, I kept fooling myself into thinking I could do a lot more than I was demonstrating.

    I think feeling like I was supposed to be finished yesterday meant that I was mindful of keeping scope down, but I always felt like I was trying to figure out what was the actual minimum amount of scope I could feel good about.

    After one year, the game has 3 workers, 2 toys types, 2 toy sizes, 4 level layouts with 2 shifts each, and the option to play with a hard deadline or not. And a bunch of polish.

    What would this project have looked like if I was able to actually focus on game play for a month? Maybe one worker type? One level? Would the general design be quite a bit different to make up for the lack of variety of things in the game? And how little juiciness would it have? And is that fine for a short prototype?

    I think wondering about the above is fine, and in fact, it is probably what I should have been doing if I was serious about getting something out quickly. What wasn’t fine was pretending I was trying to make something quick while also not actually operating like I was.

    My original plan was to create polished prototypes, with a guess that a game might take up as much time as a 48-hour game jam entry might. After all, I have shown myself capable of creating a decent enough game in that time, and having that time spread over a month should be fine.

    But none of my games look and feel as good as Toy Factory Fixer did, which required an order of magnitude more hours to develop.

    In hindsight, I think with my current development capacity, perhaps a one month project is too short to explore the design space and develop something I’d be proud of.

    But I definitely can’t pretend my next project will only take a month if I just want it badly enough. I have to actually do the work of managing scope and/or my schedule.

    A project that I allow myself to work on until it is done is going to operate very differently from a project that that has a real deadline.

  4. Slow and steady can still cross the finish line eventually

    Looking at my records, I put in some game development time every week until the game was released.

    My best week was in May at 11.25 hours, and my least productive week was in December right before release at 1.25 hours, which makes sense as I was spending time on writing blog posts and email newsletters. My next least productive weeks were 2 hours each. Otherwise, I generally averaged 6.1 hours per week, which is a bit more than my 5 hours per week goal.

    This project took 299 hours in 2021 and another 32 hours at the end of 2020, for a total of 331 hours.

    It is about the equivalent of a little over two months of full-time effort, although when I was a full-time indie game developer I found that the most I could put in on any given day was about 5 hours, so let’s say it likely would have taken me between two months and four months if I was focused full-time.

    But I wasn’t full-time, so it took me a lot longer, which required a sustained effort over 13 months.

    Don’t get me wrong. I much preferred those days in which I was able to put in multiple hours, especially when solving a big problem. All things being equal, five hours in one day allows me to focus and work faster than five hours spread across a week. I didn’t need to leave breadcrumbs and notes for myself so I knew where to pick up the next day.

    But on the other hand, having a daily cadence of at least some game development time made it easier for me to keep each development session connected to the previous one. Those weeks in which I went multiple days without any game development made me glad I took notes about what I was doing (and curse myself if I didn’t), even if I caught up by putting in a lot more hours than usual. Otherwise, I wasted time trying to remember what I was in the middle of.

    I think that daily cadence, with a weekly goal, did two things for me to help me finish a long project part-time.

    One, I was always focused on outcomes. Whatever I was working on needed to contribute to the finished product.

    Two, so long as I was focused on outcomes, I just needed to put in the hours. Those outcomes weren’t going to happen unless I was sitting in front of my keyboard working on them. And a steady pace was better than crunching and needing to recover, both for my health and my family’s.

    Maybe 20 years ago, I once calculated that after you account for sleep, hygiene, mealtimes, and an 8 hour day job, I still had four hours with which to work on game development if I so chose.

    Today, it feels like there is a lot less time, as there is cooking, cleaning, and chasing after kids, among other things.

    I found I watched a lot of TV shows and movies with my family. I attended baseball games, helped coach soccer, and volunteered. Every so often I played video games, either alone or with someone else.

    And yet I still finished a game because I just kept working at it, day after day, week and week, until it was done.

  5. Player feedback as early as possible is huge

    I wrote about how important polish and juiciness was in terms of player feedback, but the biggest influence of my decision of what to work on came from other people playing my game and telling me how confusing it was.

    Even now, the v1.0 release of the game could probably use some more clues. I’ve seen players try to tap on things that aren’t interactive, or wonder what to do, or get frustrated when it isn’t clear how to get a better grade.

    But it was worse mid-development, and I knew because my testers informed me.

    Outside testers had access to devices that I didn’t, which helped me identify major defects with the Android version of the game early on. When it came time to actually publish the game, it was a relatively smooth review process because I already tackled the requirements earlier.

    I would periodically make time to play the game myself, preferably on a mobile device, and there is value to doing so. I sometimes noticed things that weren’t operating correctly, or weird graphical glitches, or game-breaking bugs. And sometimes I would notice when I wished I had something in the game, and then make it happen, such as the indicator that tells you which production run you are currently on.

    Toy Factory Fixer - production run indicator

    But working on the game everyday has the downside that I’m too familiar with it. I know how to play the game. I won’t run into the problem of wondering what to click on or what my goal is at any given moment because I already know.

    But reading the detailed reports from my testers helped me to see where someone who isn’t as acquainted with the game ran into trouble, and often it’s a matter of the game not providing feedback.

    Early on, the way turns worked was that they would be continuous until you either hit the Stop button or you opened a menu. Then, it stopped advancing turns until you hit Go. This made sense to me.

    But I got feedback from a tester that it was confusing that the game stopped. If you open a menu and it stops the conveyor belt, then closing the menu should start it, right?

    I didn’t initially want to change the way things worked, but as I played it and felt it was tedious, I decided to implement the suggestion.

    Which introduced a problem in that you had less control over the turns advancing. If you open up a worker’s menu and told them to craft a toy, then immediately the next turn starts. But what if you wanted to tell three workers to craft toys, and you didn’t want to waste turns?

    So I added the Stop button to every menu, which gave you the option to take a temporarily paused turn advancement into a stopped one. Once you were ready, you could hit Go.

    And in the meantime, I added a visual indicator that told you if the game was paused or stopped.

    So it was a lot of work sometimes, but the feedback I got from testers helped me see gaps in feedback from the game. Sometimes the solution I came up with was different than what was suggested, and sometimes I had to cut a suggested feature for lack of time.

    But testers helped me take this game to another level in terms of ensuring it had the best chance of delighting players.

Summary

Between Google Play and the App Store, I can see that I’ve had over 90 downloads of Toy Factory Fixer since I announced it.

I didn’t do a big launch, send the game to reviewers, or anything like that. I only announced it on my mailing list, on my blog, and on social media.

What is most interesting to me is that people are still finding it and downloading it weeks after the announcement.

I don’t know if the game or the posts I made about the game led to it, but Toytles: Leaf Raking sold a couple of copies last month after no sales for many months, which is a great outcome I am attributing to Toy Factory Fixer.

So far, even though periodically people do go to my newsletter’s signup form from my game’s menus, only one person signed up for it, and it was someone I know, so it remains to be seen if strangers will decide to subscribe.

The game took longer to make than I would have liked, but I am glad I put in the effort I did to make it understandable, entertaining, and enjoyable.

I once again validated an Agile approach to product development while also recognizing areas of production in which I could improve in the future.

It’s not exactly a complete success in terms of what I set out to do originally, but this first Freshly Squeezed game is published, getting played, and is acting as an ambassador for GBGames to the public.

Thanks for reading!

Want to learn when I release updates to Toytles: Leaf Raking, Toy Factory Fixer, or about future Freshly Squeezed games I am creating? Sign up for the GBGames Curiosities newsletter, and get the 19-page, full color PDF of the Toy Factory Fixer Player’s Guide for free!

Categories
Games Personal Development

Teacher Streamer: Learn About Games and Their Classroom Potential

Last week was the Games for Change Virtual Festival 2021, and I learned about an attendee named Scott Beiter, a science teacher who also streams games on Twitch.

Specifically, every Wednesday this summer he is playing a different game and talking about its potential use in science classrooms on https://twitch.tv/sciencestreams.

Recently he played the games Red Planet Farming and Surviving Mars, obviously to explore the science behind the planet, and he talked about what his students experienced when playing through the games, how to get the games, and other logistics.

Most recently he has been exploring marine biology through games such as Subnautica: Below Zero.

I admit to not exploring a lot of his videos, and I wonder how many of these games end up amazingly adapted to classroom use as opposed to games that end up completely inappropriate or challenging to use.

Still, it’s pretty neat to see an educator not only using games in the classroom but also live streaming about his research into which games work well there.

Categories
Personal Development

Celebrating My Own Personal Independence Day

On this day in 2010, I quit my day job to work on my indie game development business full-time.

Even though a few short years later I was back on “corporate welfare” after getting a job again, I still mark it on my calendar as my own personal Independence Day.

It wasn’t the first time I had quit a job. I’ve had part-time jobs as a cashier at a pharmacy chain and a grocery store that I’ve quit, but those were either for scheduling conflicts or inconvenience with my schooling. This personal holiday is about celebrating the first time I quit because I decided to put my full-time efforts into my own business.

To this day, it’s also the only time I’ve done so. In 2012, when I was getting my new day job that was at once familiar and foreign, I remember thinking that I’d quit within a few years at most after saving up some money to try again.

So it’s been almost a decade since then, and I am still working at a day job as my primary means of income, my indie game development business is still making almost nothing, and my overall strategy of slowly building up something on the side might be too slow to make work.

Last year I wrote about my worries about not having much to show for it all these years.

It’s a bit melancholy.

In it, I talk about a lot of other responsibilities I had, and with the COVID-19 pandemic last year, I found that a lot of extra-curriculars kind of fell off my plate. I was able to work the day job from home, which meant I didn’t need to commute. I didn’t need to drive a kid to a club or sporting event every day. I rarely left the home, in fact.

It was an opportunity to think about what I prioritized in my life.

Last year I did get back into game development, putting out multiple updates to Toytles: Leaf Raking, and eventually starting what would become the still-in-development Toy Factory Fixer.

And even though it was still slow, it was steady, and it was attention spent more on my business. It’s only a few hours a day at most, and I think nothing has changed much since last year in this regard, but somehow I’m enjoying the process more.

I’m still worried about going too slow, but somehow I’ve let go of an attachment to a need to be faster or arbitrarily productive. I no longer stress myself out or lament what could have been. I just accept how things are, and then I try to make it better.

After some back and forth, I finally decided a couple of days ago to take the day off from my day job. I really should make it a permanent work holiday for myself rather than questioning it each year.

I expect to spend the day mostly on game development, something I usually put off until my day job hours are done.

But I plan to do some journaling and planning, too.

Categories
Geek / Technical Personal Development

Doodle-a-Day 2020

In my annual review blog post, I shared that I wanted to get better at drawing, so I decided to do at least one doodle per day in 2020.

Besides taking a drawing and a painting class in high school, I am mostly self-taught as an artist, which means that a lot of basic principles and such are things I either only recently came across or still don’t know.

I learned about the book “Fun with a Pencil” by Andrew Loomis from Hayden “Docky” Scott-Baron, and I used it to help me learn how to create faces and bodies of various sizes and shapes.

I was actually hoping to finish the book, but I’m at the part where I am creating rooms and scenes, so I’m dealing with perspective. While my doodles were once a day, the book was something I looked at periodically to learn the next lesson.

I also watched the Great Courses series on How to Draw, and between the two of them, I’ve learned the value of shape, volume, and drawing with a darker pencil once you figure out the shapes you want with a lighter pencil. B-)

Here’s how my doodles looked at the beginning of the year:

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

About midway through the year I started to focus on drawing hands and feet when I realized that my characters can’t always have their hands in their pockets:

Doodle-a-day 2020

I love this sad clown character who kept popping up in my doodles:
Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Later I started to draw monsters, and I tried to add shading and details to make things more realistic. Other times, I tried to make things more abstract and cartoony. Sometimes my phone’s camera started identifying faces, which I took as a good sign of my progress:

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

I periodically had to catch up when I missed a day or a few days, but otherwise, I managed to not only draw something each day but also draw better than I had a year ago.

It’s exciting to have learned so much and start to recognize concepts and ideas that I didn’t know existed at the start of 2020, as well as understanding how much more I don’t know exists.

Sometimes I rushed to get a doodle done, and other times I took the opportunity to explore reference art and practice trying something new. But it was fairly low pressure, and I enjoyed the habit. I plan to continue it in 2021.

Categories
Marketing/Business Personal Development Politics/Government

2020 in Review and My 2021 Vision

Another year has passed, and I feel very fortunate that my family and I survived it fairly unscathed. I know that a lot of people didn’t, and I know the COVID-19 pandemic is still taking its toll, both in lives and lives affected.

It has been a tough year, but I continued to be employed and was able to work from home. Most of our extracurricular activities, such as taking our kids to dance and Cub Scouts meetings, basically stopped. I rarely left the house all year except to pick up groceries or go for a walk around the neighborhood with the kids.

I got to spend more time with my family. Without school providing meals, my wife and I cooked a lot more, and we found that we enjoyed doing so together. We got the kids playing Just Dance and following yoga videos online to get daily exercise in. Internet outages went from being a minor annoyance to having a major impact on our work and school, and as I am the main IT department in my house, it all fell to me to make sure that the Wifi kept working.

It took a lot of adjustment, but we made it.

Goals from 2020

I had a few major business goals for last year:

  • Finish the contract game project
  • Game Sales: from $0 to $10,000 by December 31st
  • Release one more game before December 31st

The contract was finally finished in January, and aside from one more update to comply with changes in the App Store in the summer, I was done. I was happy to have had such a direct impact on the creation of a published game, as well as getting paid for it, but I was even more happy that I could direct my attention back to growing my own business.

Last year, I said:

Ostensibly my goal for the last few years was to get from $0/month to $10/month in sales. Again, the goal was meant to be achievable and to be a stepping stone to increasing sales over time.

But I think what might help is if I gave myself a much more inspiring goal, something that is doable but also would require me to stretch to make it happen.

So my 2020 goal is to get $10,000 in sales by December 31st.

It’s not quit-your-job money, but it’s not so small as to let me think I can procrastinate and make it happen in the last weeks of the year, either. It’s also not about the money, but money is an easy metric to track.

I came nowhere near to making that amount of money. That sum did not end up inspiring me, and it is probably because I didn’t see a clear path to it. Last year I wanted to start creating and finding my audience again after ignoring my business in favor of contract game development, but I didn’t formulate a coherent plan to do so until December. So for most of the year, I worked on creating updates for my existing game.

In the end, I was paid a total of $16.79 from sales of Toytles: Leaf Raking, my leaf-raking business simulation game (I have another payment coming this month from a sale from last month).

Now, I know there are a number of reasons for the low sales. Almost no one knows about the game, for instance. I haven’t been doing a good job pushing it out there.

But I did port and release the game for iOS, and then I published 6 of what I called Personality Injection updates since July. Each time I did so, I not only posted an announcement on my blog and shared it on social media, but I also sent out an email to my GBGames Curiosities Newsletter subscribers.

Oh, that’s another thing I did: I brought back my mailing list. I used to have one years ago, but I decided to start a new one. I invited the previous subscribers to join, and some did. Sign up, and you get a free player’s guide for Toytles: Leaf Raking, which is another thing I created last year.

Since I had a new mailing list, I also added a new goal for the second half of the year: grow my subscribers by 10. I ended up increasing the number of subscribers by 3, but since I didn’t promote it any more than the game, I think that’s a decent improvement.

I ended up publishing a total of 58 blog posts throughout the year, partly because I started writing a weekly sprint report, documenting the highlights of what I accomplished in the previous week of game development. Considering that I published a total of 3 blog posts the year before, this output is a significant improvement, and I think it directly led to people learning about Toytles: Leaf Raking.

Now, I thought I would get to a point where I would consider myself “done” with Toytles: Leaf Raking updates and could start working on a new game early enough to get one released by the end of the year, but since I was only working an average of about 5 hours a week as a very, very part-time indie game developer, those Personality Injection updates sometimes took me over a month to get out. So no new game has been published yet.

But if you’ve been paying attention, you know I’ve been working on one since December, and strategically it is the first of my Freshly Squeezed line of games. More on that later.

I also had a few personal goals for 2020:

  • Do a minimum number of walking hours, push-ups, squats, and planking
  • Read a book per week
  • Create at least one doodle per day

Take a look at this chart of the year:

Morning Exercise Routine Tracking in 2020

The green indicates days in which I did a minimum of 10 push-ups, 10 squats, and 30 seconds of planking. The red indicates days in which I skipped. There is a big block of red near March, when my back was bothering me significantly enough to prevent me from exercising, but otherwise most of the year I kept up the habit. I feel fitter and more capable. I also did yoga on weekends, which I credit with preventing my back from hurting throughout the rest of the year.

I was trying to walk on a treadmill for 30 minutes a day but our treadmill’s motor started to smell like burning, so I haven’t been using it. I did walk with the kids during the summer after lunch, but otherwise I didn’t do walking regularly.

I read a total of 25 books, which is less than I read the year before. Still, between listening to podcasts instead of audiobooks in my car (and then not driving anywhere when the pandemic hit) and reading longer books, I think the fact that I was able to keep up a reading habit during the pandemic was a win.

But my favorite habit was doing a daily doodle. This one appealed to me partly because I always liked drawing but I also liked the idea of getting better at it. My programmer art is decent, but I want to make it more decent, and I know to get better I need to practice more than I do.

I’ll have a separate post about the improvement of my doodles, but here are my first few drawings:

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

And here are some of my favorites:

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

Doodle-a-day 2020

My 2021 Goals

Creating an aggressive sales target didn’t seem to work for me, but I still managed to make some sales happen despite a lack of advertising or contacting reviewers or anything.

It was a total of only 7 sales across Google Play and the App Store, but I can build on that.

My goals for 2021:

  • Go from ~0.146 sales per week to at least 1 sale per week by December 31st
  • Increase my newsletter audience to at least 100 subscribers by December 31st
  • Release at least 6 Freshly Squeezed Entertainment games by December 31st

I explained a bit what Freshly Squeezed Entertainment means, but the main idea is that I will be following through on my goals to create more and find my audience. I want to create free, quality games that encourage curiosity and support creativity. I want the games to find the people who love playing them and encourage them to sign up for my mailing list. And I want them to see my mailing list as a way to give me feedback and collaborate with me on the kinds of games they want to play, which means that when I release a game for sale, I am more likely to have an audience interested and willing to pay for it.

There’s a lot of uncertainty to this strategy. I don’t know how many people who play games would be willing to sign up for a newsletter these days. I don’t know if people who play free games are less likely to pay for a game. I don’t know how many people will sign up, nor do I know how many who do sign up will read the emails I send out. I don’t even know if my free games will be seen or get lost in the huge number of games that get released each week.

But the general idea is sound: give away value to attract players, get permission from players to talk to them, and use conversations with those players to get feedback and learn how to make what my audience is willing to pay for.

It’s way better than hoping and praying that strangers discover and pay me for each new game I create.

I was originally aiming to release one Freshly Squeezed game a month, but so far I think my 5 hours/week isn’t going to make it work out for me. It’s especially doubtful as I still want to create updates for Toytles: Leaf Raking in between Freshly Squeezed games. Still, I hope to have a release for my first new game before the end of this month.

One thing I realized is that out of the three goals, the only one I have direct control over is publishing games. I can’t control how many people sign up for my newsletter or how many people buy a game. But if the three goals are as connected as I expect they are, then releasing quality games should attract newsletter subscribers who eventually become customers.

Again, there’s a lot of uncertainty, and I recognize that 1 sale per week works out to almost 7 times what I am currently (I originally had a goal of 60 sales per week but realized it was much, much more ridiculous to expect an almost 400x increase in sales), but I can’t wait to get some hard data in the coming months to see how well this strategy plays out. I’ll adjust my expectations accordingly.

As for personal goals, I like aiming for a book a week as well as not sweating it when I don’t make it. I will continue to do daily exercise, and in fact I’ll increase my push-ups and squats from 10 to 15. I need to either fix my treadmill or get a new one so I can get in daily walking or running even when the weather doesn’t work out. I think I’ll continue to create daily doodles, but I am going to want to learn other aspects of art, such as color, character design, perspective, environmental design, and more.

Happy New Year

I hope 2021 sees the end of the COVID-19 pandemic, a safe transition of power, and justice, equity, and compassion in human relations. I hope my kids can play with family and friends without worrying about someone getting seriously or fatally sick. I hope you and your loved ones stay safe and healthy in the coming year.

Categories
Games Personal Development

Is It Wrong to Ask My Son to Play His Own Game?

We got my son The Legend of Zelda: Link’s Awakening for the Nintendo Switch for his birthday. He has never played a Zelda game before, and I had fond memories of playing it on my Game Boy when I was roughly his age.

In fact, I pulled out my Game Boy and played the original Link’s Awakening while he played on the Switch, partly so I could revisit Koholint Island while he saw it with fresh eyes (and in 3D rendered color).

Links Awakening - Switch and Game Boy

I also wanted to try to get ahead of where he was so that when he had questions about how to proceed, I could be a bit more knowledgeable about what he was dealing with.

But I also believe that a big part of the entire point of playing a Zelda game is to solve the puzzles and overcome the challenges.

Now, my son fancies himself a gamer, but he does not have the same internalized language of games that I grew up on. Specifically, Link’s Awakening very much builds upon the language of the SNES game The Legend of Zelda: A Link to the Past. For example, I know that there were some boss battles that mimicked boss battles from the SNES game in that you had to deflect projectiles back at the enemy, but nothing in Link’s Awakening tells you this fact. You just have to try things and figure it out. In fact, that’s probably how the SNES game was, too, and I’m just aware of the clues and norms in hindsight.

So my son struggled on parts of the game because he did not see the opportunities to do Zelda-like things because he didn’t know what Zelda-like things were possible in the first place.

Which is fine. He’s solving puzzles and overcoming challenges.

Except when he wasn’t.

He would ask for help, and I’d try to give him clues or hints without giving away the solution. And most of the time, it worked, and most of the time, I’d hear a report from him that he actually figured out quite a bit of the game on his own.

But multiple times he asked if he could look up the solution to a puzzle on the Internet. And I told him no.

My reasoning: “What’s the point of letting someone else play the game for you?”

I grew up as one of those kids who had Nintendo Power subscription. I knew details about games I didn’t own. I got the free strategy guides they sent out.

But I never liked the idea of playing a game by following a walkthrough or using a strategy guide to tell me how to play a game. Yeah, I could advance faster and have an easier time, but to me, it would feel like cheating.

So I insisted to my son that he play the game and figure it out. I figure he would feel a sense of accomplishment if he did it all by himself that he would never get from doing what he was told by some Internet stranger.

But am I wrong to do so?

Is it wrong for me to insist he plays the game the way I want him to?

I never want to be a gatekeeper and say that Real Gamers ™ play a certain way and everyone else is just pretending. People play games for all sorts of reasons, and who am I to tell them how to enjoy them?

Some people play games for the entertaining story, and I have no problems with them using a walkthrough, strategy guide, or even cheat codes to do so.

In fact, I’ll admit that I got stuck in Link’s Awakening in my replay, and I looked up how to get through a certain dungeon because I’m a grown-up with limited play time and didn’t want to spend the time doing trial and error to figure out which way I was supposed to go. Don’t tell my son I’m a hypocrite.

My intent was for my son to use the game as practice for perseverance. He struggles with challenges, whether in games or not, and often gives up and even says he no longer wants something if he discovers it takes some non-trivial effort to acquire it.

Games are all about learning, and I felt that looking up the answers not only gave him a shortcut in the game but would also make him less self-sufficient when it comes to problems in real life that you can’t take shortcuts to get past.

But we also gave him a game, and then I insisted that he play it differently from how he wanted to. No one did that to me when I was younger.

I suppose I could have told him my reasoning, that I wanted him to want to figure things out on his own for the benefits and practice it gives him, and then let him decide if he wanted those benefits. But based upon previous opportunities to let him decide whether to take the easy route or the more rewarding yet challenging route, I figured he would not care and would simply look up the answers.

So I struggle still. Was I parenting well by preventing my son from what I would consider cheating himself out of the experience and growth? Or was I parenting poorly, forcing him to play a game the way I wanted him to play, taking away his enjoyment and agency?

Maybe it worked out?

As I was writing this post, I asked him about his time with the game, which he has now played through twice. He told me he really liked it. He remembers the game fondly, and he even mentions figuring out how to “get past it” in a positive light. At the very least, it seems he hasn’t been turned off of games, and in fact is now playing his way through Pokemon Sword.

So I hope his experience with the game has prepared him for the future just a bit more. Maybe he’ll be less likely to give up on a math problem that troubles him. Perhaps he’ll stick with a craft project of his own making for longer. It’s possible he’ll be more capable the next time we play Mighty No. 9, a game which provoked so much frustration from him that he quit playing before finishing the first level.

He’s already asked about other Zelda games in my collection. I’m trying to decide if I should introduce the original NES game first, or if I should show him Wind Waker.

I never did finish either game myself. It might be a good challenge for both of us.

Categories
General Personal Development

Happy Indie Day to Me

May 21st is my own personal Independence Day. Even after running out of money and returning to corporate welfare, it’s a day that holds a lot of meaning for me.

10 years ago, I went to Chief O’Neill’s Pub & Restaurant to celebrate my last day working at a company that made slot machines.

Chief O’Neill’s is where we went to send people off whenever someone moved or changed jobs, and I remember realizing that no one was organizing an outing to do so for my last day.

Welp.

I told everyone that I was going to Chief’s, and for the remainder of the afternoon, people from work came in and out, hung out with me, and wished me luck on my next endeavor. It was a pleasant time.

Two weeks before, I had given my notice that I was quitting to pursue full-time indie game development.

Rereading the comments from other indies and friends from my blog post about going full-time indie brings tears to my eyes every time. Everyone is so encouraging and supportive. And I love how since that time I’ve even met some of you in person!

When I reported how things were going 6 months into my indie journey, which was frankly embarrassingly not well due to a lack of focus and direction, I got even more advice and encouragement.

You know, I miss everyone being into blogging rather than toxic social media.

Anyway, within a couple of years, I ran out of money and ended up back in a job, as I said. I wrote a bit about it in I Have a Day Job Again, but it was hard to go back to a day job, partly because I felt like I had squandered an opportunity.

I remember the first day. The commute felt foreign. Sitting in a cube and seeing everyone else sitting in their cubes felt foreign and familiar at the same time. I remember it feeling wrong.

And then I remember the day when I noticed that the day job didn’t feel different anymore, when it felt normal and I hadn’t noticed, and it was another sad day for me.

When I went back to having a day job, I figured it would be for just a couple of years at most. I would do what I did before, working on my business on the side, saving up money, and building myself a runway.

I’ve been working a day job for about 8 years now.

Most of the following comes from a tweet thread I did late last year.

10 years ago, I took a leap, and I hovered for a bit, but then fell.

I’d like to say that I’ve been trying to get back up in the air ever since, but things are different for me now.

Actually, I’ve considered myself an indie game developer for about 20 years, most of it very, very part-time.

I struggle with whether I can still call myself an indie game developer due to my lack of significant output in all that time.

When I was five years into it, I once asked a question on IRC & the response I got was not terribly helpful. That’s fine. But it ended with “I wouldn’t worry about it at this stage.”

Me: This stage?

Them: As a beginner.

I felt quite insulted at the presumption, but then again, I hadn’t shipped anything in those five years.

I have both the identity of a veteran and a never-was. It’s a weird place to be to think that I don’t have a beginner’s mind about game dev when maybe I need it more than ever, but, like, no, kid, you don’t need to introduce the concept of a navmesh to me.

And since I’m older, married, and have kids, plus have some volunteer work, my indie game development time is a lot more constrained than it used to be.

I used to have this fear that time was running out, that I needed to work faster to get something out before it was too late.

And by too late, I mean I was worried that once kids entered the picture, if I hadn’t gotten my business off the runway, it wasn’t going to get off that runway.

I feel like, 20 years later, I have the skills, the knowledge, the business sense, and more, but I’m not practicing it regularly, so I’m atrophying and falling behind.

Comparing yourself to others is a recipe for stress and anguish, but it’s hard sometimes seeing others building upon past successes while I’m still trying to build upon past failures. They are inspiring, but they’re also a reminder that I’m not as far along as I thought I’d be by now.

My priorities aren’t the same. Some people take on mortgages and credit card debt to get their runway extended and give their all. I never went into debt, but I quit my job once and had no income for a year while I tried to make indie dev work.

I’m not in that position anymore.

I think if I had a 2nd chance to focus full-time on indie game dev, I would do a much, much better job of running my business as a business, unlike last time when I spent a lot of time spinning my wheels on unfocused game dev and almost nothing on customers or marketing.

But I’m no longer in that position.

I have a family to take care of.

So my current indie game development plan for the last few years has been to slowly build up something until it becomes my primary source of income.

I just worry that there is such as thing as “too slow” and that I’m fooling myself.

I always had it in my head that one day I would eventually be a full-time indie game developer again.

Today’s not that day.

But today I am a husband, a father (that one is still new), an advocate for transgender rights, a speaker, a writer (even though I don’t blog as regularly as I used to), and a very, very part-time indie game developer.

My life is very full, and I often stress myself out trying to fill it even more, especially when I don’t see what’s there for what it is.

Part of it is greed. I want to experience and learn EVERYTHING. I want to turn my backyard into a garden. I want to learn how to play guitar. I want to learn Italian and maybe another language. I want to learn how to cook. I want to play soccer regularly again.

And I am running into the limitations of doing all of that while I have a day job AND a part-time business AND volunteer work AND being with family.

I’ve always liked the idea of being a Renaissance man. Why pigeon-hole myself into a single job or identity?

But, hoo, I’ve discovered in the last year or two that there are limits, and sacrificing sleep is a loser’s game, it turns out.

I realized I needed to start saying no to things a long time ago, but I haven’t quite internalized how much I have to say no to.

I had a side contract that I finished recently, which freed up the limited time I currently dedicate to it, but what kind of effort can I dedicate to my business?

Again, I worry there is a minimum amount of time and effort that I’m not going to be able to give with my current plan of working on my business on the side.

It would be one thing if I was Sisyphus pushing a boulder up a mountain and having to do it again and again. It’s another if I am barely budging the boulder while it grows moss.

I don’t know if I am mourning a past life or just the illusion of it.

I still identify as an indie game developer. I still expect that I will make games in the future as an indie game developer.

But what if I’m wrong?

This isn’t Imposter Syndrome. I don’t worry that I’ll be found out that I’m a fraud.

It’s more like I’m concerned that I’ve deluded myself into thinking I’m an indie game developer when any independent observer would think, “Eh, but are you really?”

I moved to Des Moines, Iowa in 2010 thinking that I would be a major driver of the indie game development scene, and instead I’ve been MIA from local meetups for many months. I have only recently been getting back into it, and I don’t have the energy or time to be a real leader there. I’ve had to be fine with being a participant who just happens to have access to the admin discussions.

I haven’t participated in game jams in years, and that was at least an area I could point at and say “See what I did as a game developer?”

The only fully complete game I’ve made commercially is from 2016. The contract game is finished and out, so that’s something to feel good about, but other than a name in the credits, it’s not really my game.

But I think the priority I give my indie game development isn’t where I would like it to be. There are competing priorities, and that’s a big part of the struggle I have with my identity as an indie game developer. A giant chunk of my waking hours are taken up with Not Game Dev, and the things that are Not Game Dev? Well, I’m not willing to sacrifice them for a variety of reasons.

And since I’m getting older, I’m finding myself getting tired sooner. It could be the lack of exercise? But it’s a phenomenon that I’ve noticed. So I don’t find myself spending as much time pushing past sleep to try to get some productivity in because I just can’t do it like I used to.

Still, May 21st is my Indie Day.

And I can lament all that isn’t going well when it comes to being an indie game developer, but what blessings can I count?

  • My business has a purpose, vision, and mission. It didn’t 10 years ago. My definition of success is not merely the default “I’m making money making games” and instead is focused on encouraging curiosity and supporting creativity.
  • My contract game development for the last two years has allowed me to throw significant money into my business accounts. It’s not quit your job money, but it’s money that means my business has turned a real profit for the first time in many years.
  • It also means that I have some money to spend on making my games better than they could be if I didn’t have the resources.
  • My 2016 game, which hasn’t seen an update in a few years, is now available for iOS and has new updates coming.
  • My insistence on ignoring the current hotness, whether it was Flash or Unity or casual game portals, and focusing on just doing what I was doing means that after all of these years, what I’m doing is still relevant somehow. Continuing to use C++ and SDL2 and focusing on supporting multiple platforms means that my games aren’t lost to some 3rd party’s decision to obsolete their technology. It might mean I don’t get to take advantage of some neat developments in existing game engines, but it also means that when something goes wrong, I feel empowered to figure it out and fix it rather than frustrated that someone else is not doing so for me.
  • I’ve got years of experience and insight into what does and does not work for me, and I know what I’m willing and not willing to do.

So happy Indie Day to me. It’s been years since I was a full-time indie game developer, and it might be years before I can do it again, but I was independent once, and it will forever be a part of me.

Categories
Marketing/Business Personal Development

My 2019 In-Review and My 2020 Vision

Every year end and start, I spend time reassessing how my life is going. I look at my goals, think about what I envisioned at the beginning of the year and how I would change things with an entire year of experience, and set new goals. It helps me collect a summary of my thoughts and plans, and it makes them public.

I just checked and found that my last published year in review was for 2016. My next post reviewing 2017 was still in a draft state and never published, which is too bad, because 2017 was a year to report on!

A lot happened in the last couple of years to throw me off of my pattern, but let’s do a quick recap of 2017 and 2018, then I’ll focus on 2019.

A QUICK LOOK AT 2017

From my 2016 New Year’s post Looking Back on 2016; Looking Forward to 2017:

2015 was about keeping my goals in front of me and establishing habits.

2016 was about being outcome focused. I logged more game development hours in 2016 than in 2015, but the more important thing was that those hours were aimed at targets.

In 2017, I want to focus on promotion and sales.

I didn’t need an overnight hit to be successful. I needed a foothold.

My goal was to go from $0/month to at least $10/month in sales by December 31st.

I know $10/month doesn’t sound like much, but that was the point. It should be relatively easily achievable, but it still required me to put in the work to setup my business to make sales. The idea was that once I had $10/month in income from sales, I could build on it to $20, then $50, then $100, and so on. I was in it for the long haul, and I was fine with being patient while I learned what I needed to learn and put in the hard work to make it happen.

In 2017, I had my first profitable year in probably forever. Awesome!

But I had $0 in sales. Not so awesome.

My income came from part-time contract work. In 2017 a colleague from a former job introduced me to a family in Chicago who wanted an app created. I explained what I knew about game development and mobile in particular, and then offered my services, being completely upfront about my inexperience with contract work and my day job obligations which would prevent me from working on the contract full-time.

It has taken a long time, much longer than I thought at first, and there have been requirements changes, art direction changes, and porting challenges.

But I remember that first payment coming in and feeling pretty good. Here I was, getting paid to create games. It wasn’t full-time work, but within just a few months, I had earned more in 2017 than I had in 10 years from advertising and game sales combined, which was simultaneously a good and awkward feeling.

On the learning front, I got ambitious.

At the end of 2016, I saw a tweet by IGN’s @_chloi about her plans to read 100 books in 2017.

In the past, I would try to read or listen to one book per week, but I was so enamored with the idea of all of the learning and exposure to new ideas that doubling my efforts would bring. So my 2017 reading goal was to read two books per week.

In 2017, I read:

  • 29 books on success
  • 25 non-fiction books (histories, technologies, true crime stories, biographies)
  • 12 books on game development
  • 7 works of fiction
  • 6 books on software development
  • 5 books on marketing
  • 4 books on business
  • 4 books on leadership
  • 4 books on productivity
  • 1 book on child-rearing
  • 1 book on creativity
  • 1 book on sales
  • 1 book on speaking
  • 1 book on writing

That’s a total of 101 books in a single year, just short of 104 to meet my goal. Even though I failed, it was a year that really expanded my mind. I learned so much about so much, and getting it all in a compressed time period helped it all reinforce each other, especially when it came to the success and game development books.

Also that year I set a goal to attend at least one professional development event a month. According to my records, I attended 8 local IGDA meetings, giving a presentation at one of them. I went to two software development conferences as well.

But in 2017, I also succeeded in stressing myself out. I put too much on my plate. I wanted to do it all: marketing, writing blog posts and newsletters, game development, contract game development, exercising, giving presentations, joining the chorus at my church, and getting more involved in social justice efforts at my church as well. Oh, yeah, and my wife and I were licensed for foster care as well.

2017 was going to be a year of market research, customer development, and sales. It turned out to be full of stress and pain, a lot of it self-inflicted.

I realized at one point that I never gave myself time to just be. If I wasn’t reading, writing, programming, designing, planning, or exercising, I was worried I was squandering my precious resource of time. I had to make every second count, and I didn’t realize that my priorities had gone out of wack, that I was letting down my family for not recognizing that I was taking them for granted.

Once I stopped putting so many expectations on myself and demanding that I put in 29 hour days, my life immediately became less stressful. It only took a few months of talking with a friend for me to be convinced to give myself a break, that I’m only one person and can only do so much.

Thanks, Shane! I miss our regularly scheduled talks.

WHAT I WANTED 2018 TO LOOK LIKE

I wanted to finish the contract, which would free up time to focus on my own business again.

I realized that my blog, while enjoyable to write, attracts other game developers primarily, and other game developers are not the primary audience of my games. I mean, yeah, sure they might buy some of my games, but my target customer is not “indie game developer.”

So I planned to change my blog’s target audience.

I wanted to read more books by women and people of color. I wanted to play more games. I wanted to spend more time enjoying life.

While I enjoyed the experience of trying to finish two books a week in 2017, it didn’t give me a lot of time to reflect on what I had read or heard before I was off on to the next book. So I scaled back to one book per week.

WHAT 2018 ENDED UP LIKE

2018 was a bit of a mixed bag.

I did not finish the contract, which meant I did not spend any time on my own business. My profit was still mainly due to income from the contract.

I did have almost a handful of sales of my game Toytles: Leaf Raking, although I am sure it was all people I knew personally.

I showed off my game at a local art and games expo, so it was great and gratifying to get feedback from strangers.

My writing output dropped significantly. I had a total of four blog posts for the year, and they weren’t exactly focused on building an audience for my games.

I surpassed my reading goal with 56 books for the year although I did not read much in the way of game development books. I cut myself some slack here, though.

And I gave a presentation at dsmAgile, earning myself a nice Amazon gift card for it, which I’ll count as getting paid for presenting for the second time in my life. It helped me buy myself a 4K monitor.

In the spirit of realizing that I can’t do everything all the time, I cut back on extra-curricular activities, such as choir or attending IGDA meetings, especially when I became a parent of two kids.

I was trying to have a day job and be a parent while continuing to work on the contract at the same rate as before. The more I put into it, the sooner I could be done, right?

But it left a lot of the burden on my wife to act as a single-parent, which was not fair to her. So I cut back the hours I let myself work on the contract in order to contribute to the labor of our home. She still does the lion’s share of the work, especially when it comes to scheduling appointments and coordinating with school, but I do dishes and laundry a lot more often. Our home is still stressful (we went from 0 to 7-year-old and 9-year-old within months), but it’s a bit less so.

Becoming a parent was a huge change, and I’m still coming to terms with how much of a challenge it is. I was always told I’d be a great father, and now that I’m here, I feel like I suck at it. To be fair, parenting is a skill that I had no practice with. Still, I used to think I was a disciplined, calm, patient, and easy-going person, but it turns out that I’ve just never been tested before.

FINALLY, LET’S LOOK AT 2019

My two main goals for 2019 were to finish the contract and earn $10/month in sales by December 31st.

I accomplished neither of these goals.

My expectation was that I would focus on finishing the contract, which had been “almost done” for over a year, then port Toytles: Leaf Raking to iOS, then work on a very quick project to get it published before the end of the year.

But my primary focus was the contract, which was in a weird state. I was pretty much finished with my part of it by September. There were no more deliverables for the client to test, and so I was helping the client get the app into the Google Play and Apple App stores. It’s been waiting to be published for months. I would periodically get a request for a small change or a question about the project, but otherwise, the rest of the work of publishing the game is on the client’s plate.

I’m not actively working on it, and since there are no more deliverables I am no longer getting paid, but it feels like sitting in front of the finish line instead of crossing it.

Before the contract and kids, I had regular morning habits and routines related to my business. I needed to relearn or reconstruct them all. Despite having the time, I finished the rest of the year doing very little non-contract game development. I opted instead to focus on resting and being more present for my wife and kids.

I only wrote a total of three blog posts. Heck, I barely wrote in my own personal journal.

I only read 32 books for the year. It sounds like I fell very short of my one book a week goal, and if I compare it to previous years in which I tracked the books I have read, it is the fewest I’ve read since 2013.

However, the 100+ books in a year experience from 2017 drove me to choose relatively shorter books and audiobooks. I would often go to the library and pick a 5-CD books over a 20-CD book, even if the latter was something I found very interesting, mainly so I could get more books finished sooner.

This past year, I decided to consciously pick larger books, which took longer to get through. Also, I decided to stop listening to audiobooks in my car in favor of listening to podcasts for a change. Currently, I am catching up on the strategy game podcast Three Moves Ahead, which led me to research some older yet fascinating games.

So between the longer books and lack of audiobooks I can listen to on my day job commute, my “# of books read” metric was lower, but I’m not sweating it. I’m still learning and exposing myself to new ideas, and with podcasts I’m getting a wider variety of ideas than before.

Last year, I showed off Toytles: Leaf Raking as well as the contract game at the local art and games expo again. I felt a bit more prepared, and I enjoyed the experience of getting feedback as well as connecting with others showing off their games and art. I wish I had a newer game of my own to show off, but there’s always next year.

GOING INTO 2020

I’ve been assessing the last few years and comparing them to what I wanted them to be.

My main efforts and income came from the contract. I just received my final payment for helping to get the game through the app store publishing process. The contract is over after 2 years and 10 months. It is no longer a source of income, but it also means that I can put my focus back on my own business.

And I’m going to pick up where I left off in 2017:

In 2017, I want to focus on promotion and sales.

Ostensibly my goal for the last few years was to get from $0/month to $10/month in sales. Again, the goal was meant to be achievable and to be a stepping stone to increasing sales over time.

But I think what might help is if I gave myself a much more inspiring goal, something that is doable but also would require me to stretch to make it happen.

So my 2020 goal is to get $10,000 in sales by December 31st.

It’s not quit-your-job money, but it’s not so small as to let me think I can procrastinate and make it happen in the last weeks of the year, either. It’s also not about the money, but money is an easy metric to track.

Ok, so that’s a goal. How do I go about accomplishing it?

I’m still working on my plan to do so, but I can already think of a few things that will feature as key to that plan.

I need to start creating again. Between the lack of game releases and blog posts, I feel quite irrelevant in the game industry. It’s been years since my last new game. I haven’t been participating in game jams either.

I need to find my audience. Blogging for the benefit of other game developers is great for building relationships, and I want to continue to do so. But I also need to work on finding and reaching people who are interested in entertainment that encourages curiosity and supports creativity.

2017 is when I challenge myself to be incredibly proactive about putting myself and my work out there.

Uh, ditto for 2020. I will be working on getting back into the swing of things and doing my part to contribute to the indiepocalypse (are we still calling it that?).

It will be challenging, and a big part of that challenge will be in trying to be present for my family. With a day job, wanting to sleep a full night, and spending real quality time with my family, I only have so many hours available to make things happen for my business. Luckily, I can dictate what the pace and cadence for my business will be instead of trying to hold myself to other people’s expectations for how I should run it.

Perhaps it is unrealistic, and something will have to give. A giant chunk of my waking hours are taken up with “Not Game Dev,” with the day job taking up the lion’s share. Maybe I will find I am moving so slowly in my business that I’m actually falling behind, that it takes me months to do what others do in a few days of concentrated effort.

I worry there is a minimum amount of time and effort required that I’m not going to be able to give with my chosen priorities. It would be one thing if I was Sisyphus pushing a boulder up a mountain and having to do it again and again. It’s another if I am barely budging the boulder while it grows moss.

I’m saying no to a lot of things in my life to try to make sure I do have time for the things that are most important to me. I have been greedy in the past and have wanted to do and learn and be everything, but I know now that I have limits.

But in the spirit of my past goals, I’ll make slow and steady progress, and then I’ll build on those successes.

And perhaps those successes will give me the capacity to start saying yes more often.

Let’s start.

Categories
General Personal Development

Dealing with No Longer Being Player 1 in My Own Home

My wife and I gave our son a Nintendo Switch for Christmas.

In the week leading up to the day, it dawned on me: this will be the first video game console in my home that wasn’t mine.

I mean, I think the Atari 2600 was the family’s console. But otherwise, my parents gave me an NES. I saved up and bought myself a Game Boy, opting to get the system without a game so I didn’t have to save so much allowance to get it. Santa got me an SNES. I bought myself an N64, then a Gamecube. A friend gave me a Famicom with a few games when he came back from Japan. A girlfriend gave me a Nintendo DS. I got a great deal on a used Wii as it came with a bunch of games, then my wife got me a Wii U. I believe I had a Tiger electronic handheld of Pitfighter of all games, as well.

In case you’re wondering, I never had a non-Nintendo console other than Sega Genesis someone gave me when they couldn’t get rid of it at a garage sale. I never played it. I used to be a partisan of the console wars, but I haven’t cared about it since high school. But I also didn’t care enough to get an Xbox or Playstation in the years since. I much prefer PC games these days anyway, and specifically look for games that run on my Linux-based system.

Anyway, the point is that every console in my life has been mine to play whenever I wanted to.

And now the Switch…isn’t? How does this new world order function?

When I was younger, no one in my family cared about video games. My mother would play Tetris on her Game Boy, sure, and I would play games with my sister, but I was always Player 1. She gets to claim credit for finishing Super C before I did, but I claim that I carried her to the end and she stole one of my lives and happened to land the finishing blow that I had worked hard to get to. Otherwise, if a game was being played in my home, odds were very good that it was me doing the playing.

The games were mine. I subscribed to magazines about games. I bought RPGs, platformers, strategy games, and more. I was given games as gifts for years of birthdays and holidays.

And I’m not sure how things have changed exactly, but I know it would be presumptuous of me to assume I could just use my son’s Switch without asking. I mean, we gave it to him, so I should not act like it belongs to me or the family.

The day after Christmas, he asked me to play Mario + Rabbids Kingdom Battle with him, a game I was delighted to discover was a Mario-themed turn-based tactics game. I said I would love to play a game with him.

And then he handed me the second controller. Huh.

When my friends and I would play games at each others’ houses, the unwritten rule was that Player 1 was the person who’s house you were at. A college friend said he had a different upbringing, that wrestling matches would start to fight for control of Player 1, but where I came from, it was peaceful and understood. Player 1 was the home team, and Player 2 was the visiting team.

Realizing that I am now Player 2 in my own home is weird.

But I think this weirdness is something I’m still getting used to as the father of adopted children. We went from 0 to 8yo and 10yo very quickly here over a year ago, and part of what I am getting used to is the idea that my children are going to be given a lot of my time, effort, attention, and resources, that my time isn’t just mine anymore, and that one of my goals is to help my children become more capable of reaching their goals.

In another example, my son came home from the library with a collection of Archie comics, so I pulled out a tote I’ve been carrying around with me since the 90s with all of the Archie digests and comics I used to get. I told him to be careful with it all, but frankly it is more about him learning to take care of his and other people’s things than it is about me caring about my old comics. I don’t care about the comics anymore. I haven’t read them in forever. They might as well be read by him, and to be a lesson in how to take care of things that can be ruined if you’re careless is a bonus.

I’m finding myself sharing stories about toys I played with when I was a child. I have given him some of my collectible cards I have held onto for decades. Some of my old books are now on his shelf in his bedroom. We’ve played games on older consoles before, often with me watching him play through a game I have fond memories of.

But these were always things that were mine to pass down to him, sometimes like relics of my past, and sometimes as junk I have no use for. I was in charge and making the decision to let him have access to things I thought were important to me, and so I hope he likewise finds value in them. I once let him play a Mega Man game to see how he would handle something that was Nintendo Hard(tm) and not as forgiving as Minecraft. I have also withheld things I didn’t think he was ready for, such as some movies I enjoyed as a child (it turns out that PG meant different things in the 80s than it does now) or anything I was worried he’d get jelly or something else on (kids are gross).

But the Switch was never mine. It was his first. It is at his discretion whether or not I play games on it.

He has become Player 1. And I realize now more than ever that, as a parent, I am a non-player character in someone else’s adventure.

Categories
Game Development Geek / Technical General Personal Development

Derek Yu’s Updated Pixel Art Tutorial

In ancient times, around 2005, Derek Yu of Spelunky fame created a 10-step pixel art tutorial. It took you through the process of creating a cartoonish lucha lawyer, including brief discussions on lines, shading, dithering, and more.

Derek Yu's pixel art luchador
As seen in archive.org’s history of Derek’s old site.
Also, Derek, please don’t sue me.

Yu recently tweeted that he’s rebooted the tutorial, which can now be found at https://derekyu.com/makegames/pixelart.html and takes you through drawing an orc.

Derek Yu's orc from start to finish
Who would win, this orc or the law?

It’s a more detailed tutorial, and it shows what Yu has learned about teaching pixel art with almost 15 years more experience since the original was created.

There’s also a tutorial about common pixel art mistakes to go with it, so you can see what you’re doing wrong as you try to follow along.

Thanks for contributing to the world of game making, Derek Yu!