Categories
Game Design Game Development Geek / Technical

LD50: A Game about Urban Decay? #LDJam #LD50

Ok, so after I published my first round of ideas for the theme Delay the Inevitable, I started to really like the idea of a game about urban decay.

A reverse city builder?

I thought about a city block that would slowly get potholes in its streets, broken windows, crumbling building foundations, etc. You need to fix things, and you have to prioritize what gets fixed because there aren’t enough resources to go around.

On top of it all, your fixes won’t restore things beyond a certain point, so everything gets worse, but you can at least slow it down.

But as I looked up urban decay to see if there was anything I could use to inspire the mechanics or theme, I realized that a lot of urban decay is the direct result of white supremacy, systemic racism, and redlining.

I think it would make for an excellent educational game topic, but I don’t think I have the ability to gain enough expertise on this topic to treat it with the justice and sensitivity it deserves in 48 hours.

I tweeted about it, and Jayenkai suggested I could still use the urban decay concept in a non-realistic world:

So now I am thinking about where else urban decay could apply. An ant hill? A rabbit burrow? A castle dealing with dragons, wizards, and angry villagers? An open office space?

I’m about 2 hours into the compo, and it is getting late. I think I’ll draw some concept art and then go to bed.

Categories
Game Design Game Development Games Geek / Technical Linux Game Development

LD50: The Theme is Delay the Inevitable #LDJam

The Ludum Dare compo has started, and the theme has been announced.

I am trying to remember if “Delay the Inevitable” was a theme I submitted, but I can’t seem to determine if that information is available.

My plan is to spend the first hour or so coming up with ideas. During Ludum Dare, there is usually an obvious idea that many people might try to pursue, so digging a little bit deeper should result in something more unique.

I just finished watching West Side Story (2021), so the inevitable violence and death that prevents two lovers from being together is top of mind.

Death is inevitable for all of us, and so delaying death might be one of the obvious ideas, but even so it seems like it could be a rich vein.

Taxes are also inevitable, but meh.

And in some areas people might argue that construction is inevitable. A game about constantly fixing roads? So are you delaying the construction, or is the construction delaying the entropy?

“Curse your sudden but inevitable betrayal!” That line from Firefly is classic, and perhaps a game could be built around the idea of joining forces with an enemy that you know is going to target you once your common foe has been defeated or problem has been solved.

Climate change is feeling inevitable. Perhaps a game about being a representative of a corporation trying to convince people that climate change is a personal responsibility despite that corporation being directly responsible for most of the greenhouse gases.

The expansion of the universe seems unending and ultimately results in heat death. I remember learning that Newton’s math, pre-relativity, didn’t actually work, as it predicted that the planets would spin out of orbit. Or was it Kepler? Either way, he suggested that it was God’s hand that was keeping everything in place. So perhaps a game about keeping celestial bodies in place by manually (and frantically) putting them back when they go where they aren’t supposed to. Maybe you start with the Earth-Moon system, then branch out into the solar system, then into the galaxy, etc. Might be a math/physics heavy project. But maybe it will be more enjoyable if the physics was a hand-rolled hack job anyway.

Looking at the time, I see almost an hour has passed. Eep! I want to think a bit more before deciding.

Categories
Game Design Game Development Geek / Technical Linux Game Development

Ludum Dare 50 Is Here: 20 years of #LDJam

Ludum Dare, the 48 hour game jam, is celebrating 20 years today with its 50th main event.

Or 51st, since LD#0 was a thing.

In 2008, I joined my first Ludum Dare. LD11’s theme was Minimalist, and I was very proud of the game I put together. It even had sound effects, which is more than I could say for some of my later Ludum Dare submissions. You can read the post-mortem here: https://www.gbgames.com/2008/04/29/ld11-minimalist-post-mortem/

LD11 Minimalist by GBGames

LD11 Minimalist by GBGames

My cats were there for my first Ludum Dare: Gizmo prevents me from game programming

Back then, there were a lot fewer participants, and it naturally felt a bit more intimate. Since then, it has grown quite a bit. There were MiniLDs, including #20 which I “hosted” (and got scolded by McFunkypants for not having ratings at the end). I remember meeting up with Ludum Dare colleagues at GDC 2011, putting faces to names and/or IRC handles. Instead of a hundred new games, there are thousands being made each event today. It has a dedicated website to call home instead of merely being on someone’s website. I miss my LD Trophy collection, though.

My last LD was #33 in 2015, and it was well-received and one I was very proud of (see the post-mortem here: https://www.gbgames.com/2015/11/30/ld33-free-me-you-idiots-post-mortem-ldjam/). Out of 1,199 entries, my game was rated in the top 36% overall and top 8% in innovation. Not bad.

I haven’t participated in recent years, partly because priorities made it difficult to dedicate a weekend to game development.

But thanks to my wife putting in herculean efforts to make it possible for me to focus more or less 100% on it this weekend, I will be participating in Ludum Dare 50.

I watched the LD 50 Keynote today, and it was nostalgic and inspirational. I’ve missed you all.

While her brother Diego died a few years ago, Gizmo is still alive and kicking at about 19 years old, and she’ll be next to me (or on top of my arms as I try to make a game) this LD, too

As always, I will participate in the Compo version of the event, in which I work by myself, create all of the code, art, and sound myself, and release the source at the end. I’ll be on IRC, and I’ll be blogging about my progress as I go. I will create a timelapse of my development. I will post pictures of my food. I will probably drink orange juice at some point.

In 2012, I wrote a Ludum Dare pre-compo checklist, and as I read it today, I realize it is pretty much still valid. I need to get groceries. I still need to prepare some of my tools. And we’re in the final hours before the theme is announced and the compo starts.

Are you participating? Good luck!

We’re all counting on you.

Categories
Games

Introducing the Free Toy Factory Fixer Player’s Guide

Toy Factory Fixer, the free, family-friendly game about managing a toy factory to repair toys before they ship, was released last December.

It can be challenging to play, but if you want inside-information on how the game works, then you’ll be pleased to know that the Toy Factory Fixer Player’s Guide is now available!

Toy Factory Fixer Player's Guide

The 19-page, full color PDF explains everything about how the game works, along with tips on how to play well. If you want to get the highest rating in each level, this guide will give you the edge you need to make it happen.

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, as well as other free gifts.

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report – Some Final Post-Release Tasks

Over a month ago, I announced that Toy Factory Fixer was finally published.

A few weeks ago, I even published a post-mortem.

But I still have a few tasks I wanted to finish before moving on to another project.

Sprint 54: Post-release

Planned and Incomplete:

  • Create a strategy guide
  • Update Toy Factory Fixer web page

Between the holidays, taking time to play games, planning for 2022, and taking a week long vacation with my family, I’ve been slow to get back into the swing of things this past month.

I finished January with my first week of development, and it was primarily focused on writing.

Right now, if you sign up for the GBGames Curiosities Newsletter, you’ll get a free Toytles: Leaf Raking Player’s Guide.

I want to provide a similar incentive by creating a Player’s Guide for Toy Factory Fixer.

Unfortunately, I only had a few hours dedicated to the task, so I am maybe halfway through. I expect to finish the work this coming week, but I might find myself editing it for longer than I expect.

And I think I definitely need to think about how much time a future game’s Player’s Guide will take to write.

One simple task I haven’t gotten around to yet is to update the animated GIF on Toy Factory Fixer’s webpage. It’s outdated and doesn’t show the latest game play.

My current workflow for creating animated GIFs requires recording a video, then using ffmpeg to create the GIF. It’s not difficult to do, but it is a little time-consuming in terms of trying to capture the right moments to reflect in the game.

So, in summary, I took some time away from development, and I am slowly getting back to it.

After that, I get to decide what my next project is, and I have some ideas I’d like to explore in terms of how to display the world in a unique way.

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 24-page, full color PDF of the Toytles: Leaf Raking Player’s Guide for free, and eventually the Toy Factory Fixer Player’s Guide as well!

Categories
Marketing/Business Personal Development Politics/Government

A Review of My 2021, and Looking at 2022, Already In Progress

2021 ended weeks ago, and I’m only now getting around to having a retrospective about it.

We’re in our third year of a pandemic that a lot of us thought would be over within weeks or months at most.

Once again, my immediate family somehow managed to make it through the year unscathed as far as we know. I know a number of people who have tested positive for Covid, and we’ve lost a few people we knew.

I’m still employed and working the day job from home, and since I work in software consulting, it translates into a relatively comfortable income and life for my family.

We’re all fully vaccinated, and most of us have gotten a third vaccine. Recently with developments of variants, we’ve upgraded to KN95 and N95 masks.

And since our society in general seems interested in actually helping the pandemic, it seems like this is our foreseeable future.

That said, we’ve started venturing out of the house a bit more in the last year. My children participated in sports, and I even acted as unofficial assistant soccer coach for my daughter’s team. We’ve visited with family.

Some things felt normal, despite feeling weird, and despite knowing that some people are immunocompromised and most at risk as society prematurely decides the pandemic is over. It’s disappointing.

So with the pandemic as background music, how was 2021 for GBGames?

Goals from 2021

As I wrote last year in 2020 in Review and My 2021 Vision, my goals for 2021 were:

  • 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

Increasing sales and increasing my newsletter audience aren’t things I have direct control over. They are lagging metrics, the kinds of numbers I can look at after the fact.

The only one of those goals I had direct control over was publishing games. This is a leading metric. That is, my hypothesis is that if I quickly work on and publish playable, polished prototypes, that it will lead to people finding my games and eventually subscribing to my newsletter.

And what I hypothesize is that those subscribers have shown they like my games and are more likely than random strangers to pay for Toytles: Leaf Raking and future non-free games I publish.

So how did I do?

Sales (Target: 52) – 5

In 2020, I sold 7 copies of Toytles: Leaf Raking. So, selling less means I went backwards in terms of results.

If there’s a bright side, unlike in 2020, I only released one update for the game, and most of my focus was on my new development. So 71% of the previous year’s sales despite a near-complete lack of me talking about the game?

Maybe that’s not bad, but it was clearly not anywhere near the increase I wanted.

GBGames Curiosities Newsletter subscribers net increase (Target: 84) – 6

I went from 16 subscribers to 22, about a 38% increase. Considering how the next goal’s results went, I’m taking it as a minor win, despite not hitting my goal of what now seems like a ridiculous expectation of a 525% increase.

And, no one has unsubscribed, so that’s another win in my book.

As this was probably the most important goal in terms of how much it will impact the future of GBGames, it is a bit disappointing, but again, it is a lagging metric. I can’t control it directly. Which leads me to what I could control.

Published Freshly Squeezed Games (Target: 6) – 1

Toy Factory Fixer was the only game I published last year, and it didn’t get released until mid-December.

So on the one hand, I am disappointed that I fell so far short of my original goal. Having such a late release meant that I spent most of the year not knowing how my Product Development Strategy was going to work out experimentally, which made me worry about the risk of taking so long to release something to get that feedback even more.

On the other hand, I finished and released a game I’m proud of, people are still downloading it and playing it, and I have already received some nice reviews.

And I think my regular posting about development progress has led to people signing up for the newsletter, so there is a direct connection happening there.

Analysis

Now, I think much like my arbitrary one month deadline for Toy Factory Fixer, these goals were more wishes than anything. I had no solid plan in place to make them happen, and any plan I did have was a bit vague and untested.

Literally, my plan was to release free games, hope some of the players signed up for my newsletter, and hope those subscribers eventually became paying customers.

And I think it isn’t a bad strategy overall, but in retrospect I was deluding myself with the fixed numbers I made up without anything to justify them.

I mean, I’ve made games in a weekend before, so taking two months instead of one month to make a game sounded like I was right-sizing that goal, but my experience with Toy Factory Fixer showed me that I was going to need to do something different if I wanted to make games anywhere near that fast that I would still feel good about releasing to the public. And everything else hinged one me releasing Freshly Squeezed Entertainment.

I wrote a post-mortem for Toy Factory Fixer, so you can read that post if you want to see my analysis of what I think went well and what went wrong and what I learned from it.

Otherwise, I think in general my specific goals were unrealistic. Which is frustrating because they feel like they shouldn’t be. In fact, I thought 100 subscribers was something I would hit much earlier in the year, and that what I was really hoping for was 12 games in a year.

Imagine if I made a game of the quality of Toy Factory Fixer every two or three months. Is it so unrealistic that I would have had 100 subscribers to my mailing list by the end of the year?

By my math, if I only gain 6 subscribers a year for some reason, am I really looking at 13 more years before I hit that number? That’s ridiculous.

But clearly something has to change if I want different results.

What else?

Well, I tracked 299 hours of game development, which is pretty close to almost twice what I did the previous year. 300 hours in a year might not sound like much, as it amounts to a little less than two months of full-time effort, but since I am part-time and have a family and other obligations, it represents the fact that I made it a priority to put in effort week after week.

I published 60 blog posts, slightly more than the 58 from the year before, and it was mostly weekly sprint reports. Those reports functioned almost like a combination sprint retro and demo, in which I demonstrated what I got accomplished. I got into the habit of writing the report, then planning the next sprint once I had taken time to think about how things went. Plus, people responded positively, especially when I had animated GIFs or videos to share, and since I love reading about behind-the-scenes of games, I thought others might, too.

I created an update for Toytles: Leaf Raking. It’s more compatible with modern Android and iOS systems. Otherwise, I haven’t changed anything about the game since the previous year. My expectation was that I would work on a Freshly Squeezed game, then work on a Toytles: Leaf Raking update, then work on another Freshly Squeezed game, but obviously I had no concept about how I was going to make that work.

Without contract work and with very few sales, it was very easy to have a lot more expenses than revenue. I can’t control my income, but I can manage my expenses a lot better going forward.

My personal goals for the last year were similar to the year before:

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

I successfully did 15 push-ups, 15 squats, and 30 seconds of planks every day of 2021. Look at all that green in those columns!

Morning Exercise Routine In 2021

Technically, my daily exercise streak goes back to October 19th of the previous year.

I also did yoga on most weekends, and I think my body feels more physically capable than it has in a long time. In the past I would sometimes hurt my back or side, but I’ve been able to avoid seeing a medical professional for a long time.

Unfortunately, I rarely did anything cardio-related. Once again, the best of intentions doesn’t mean much, and my goal of walking everyday was hampered by the lack of habit, the broken treadmill I’ve been meaning to repair, and a lack of commitment. I sit too much, especially since I have my day job work and then put in even more time for my business.

I read a total of 33 books last year, the most in a given year since I stopped listening to audiobooks and switched to podcasts in my car a few years ago. I count 11 books related to games, including a bunch from Ian Bogost and a couple about making games with deeper meaning. Another 10 books were productivity or business-related.

I only read four fiction books, including Seveneves and A Game of Thrones, each of which took up a significant amount of my before-bedtime reading. I also greatly enjoyed Redwall, which was seemingly even more brutal than A Game of Thrones was.

Other books were related to history, parenting, comics, or DIY renewable energy.

I continued to do a daily doodle, alternating between drawing faces, drawing objects, and body parts like hands, legs, and feet. Sometimes I did cartoony drawings, and sometimes I tried to make it as realistic as I could. Once in a great while, I would look up a tutorial online, but I felt like I was in a holding pattern of putting in the time to make the doodle but not really growing in skill.

The new thing I tried to do was make explicit time for learning. I value learning and growth, and in the past I have invested in books, conferences, online courses, and such, but I never made an explicit plan to take advantage of those investments. So I made it a daily habit. 15 minutes a day adds up over time. I tracked 137.75 hours of learning, on topics as varied as game programming, game art, game production, creativity, and various personal development and technical things. I have had a Pluralsight subscription for the past couple of years, and this goal allowed me to take advantage of it more than I have in the past.

Goals for 2022

If the last year has shown me anything, it’s that even if I were to write down all of the outcomes I would like, it means nothing without a plan and without my capacity to work on that plan.

In 2010, I quit my job and became a full-time indie game developer. After running out of cash, I went back on “corporate welfare” in 2012. My expectation then was that I would build up some savings and quit again, but I didn’t take into account how being married and having a family would affect my risk assessment (or how much my family’s risk tolerance would inform my decisions), and I have had a day job ever since.

Clearly I wasn’t going to accidentally make GBGames my main employment, so last summer I started writing a “Full-time Indie Plan.” I wrote down how much money I was currently earning from my day job and how much money our family budget currently is vs what it would look like cut to its essentials. I documented details about platforms, revenue sources, challenges, risks, what I wanted to accomplish and what I explicitly didn’t want to do (such as spy on customers or bombard them with ads) and more. And the most important part of it is answering questions about how I was going to make it happen, such as identifying exactly what needs to happen in terms of sales, marketing.

This document isn’t finished, and while I expect it to be a living document, I recognize that I am repeating mistakes I’ve made before when I’ve done similar exercises in the past. Namely, I can come up with a lot of questions or categories, but then I don’t actually address them.

So while I have documented what I value, such as privacy, encouraging curiosity, supporting creativity, and others, and while I have done a SWOT analysis (although maybe I can iterate on it some), I haven’t answered questions about who my audience is and how I can reach them. I haven’t made a solid plan for actually marketing my games besides blogging and sharing on social media. It’s a 13 page document that has a lot of TODOs and headings without content in it.

But of course, I only have so many hours in a day. Even if I could identify 100 marketing activities, if I can’t actually make time to do them or manage someone else doing them, it does me no good.

My current lack of capacity should inform my goals more than they have in the past. Any marketing I would do would be inbound in nature rather than outbound, as it is less expensive and takes advantage of doing something once, such as publishing a blog post, and distributing it multiple times for near free.

So here are my goals for 2022:

  • Release at least 2 Freshly Squeezed Entertainment games by December 31st
  • Increase my newsletter audience from 22 to at least 34 subscribers by December 31st
  • Earn at least 1 sale per month by December 31st

I still think my overall Product Development Strategy is still sound. Create free value, ask for permission to talk with people who have shown they like my games, and then use their feedback to help me make deluxe games that are more likely to sell.

Creating two games in a year should be doable if I put on my game producer hat more often. I would love to try for four games, giving each one on average about three months, but I’m already worried that I’m still overestimating my capacity with two.

My newsletter went up by 6 subscribers last year. Now that I have one Freshly Squeezed Entertainment game out and expect to have at least one more by the middle of the year, can I find 12 more fans who are interested enough in my games to sign up?

I don’t have a sales plan in place, and clearly one sale a week was too ambitious. Still, one sale a month sounds like a ridiculously small amount, but then again, it is clearly a difficult goal for me at this time. It works out to a little more than double the sales I made in 2021, which was slightly fewer than sales from 2020. Making that trend go back up will be huge.

Besides those overall goals, I do want to spend some time porting my existing games to desktop platforms, and I’ll need time for that effort that isn’t going to be going into new development. I already develop on my Ubuntu system, so creating a Linux-based release shouldn’t be difficult, but since both Windows and Mac OS are trying to be walled gardens, I need to figure out how I can create free games for them without it costing me a ridiculous amount of money.

I also want to make time to actually play games. Between all of my old consoles, Steam, Humble Bundle, GOG, and Itch, I have a lot of games, many of which I’ve paid for, that I never enjoy or even learn from. Last year I played Castles I, Sunless Sea, To the Moon, Minecraft, and Super Crate Box, and shortly after I released Toy Factory Fixer, I allowed myself to play The Legend of Zelda: The Wind Waker during my week off from the day job near the holidays.

But much like my 15 minutes of learning each day habit, I’d like to make regular time to play games, even if it isn’t daily, even if it is a dedicated part of a day once a month.

Ok, so maybe two games in a year is starting to sound ambitious…

Anyway, I hope you have a safe and healthy 2022! Happy New Year!

Categories
Game Design Game Development Geek / Technical Personal Development

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
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report – Published! What’s Next?

Last week, I reported that I had submitted the Toy Factory Fixer builds to the app stores and was waiting for them to finish reviewing the games.

Within days, the game was approved by both, and so I published it to the world!

If you missed the announcement, you can read it and find links to the free game at https://www.gbgames.com/2021/12/15/announcing-toy-factory-fixer-now-available-on-android-and-ios-%f0%9f%a7%b8/.

Sprint 53: Release criteria

Planned and Incomplete:

  • Create a strategy guide
  • Update Toy Factory Fixer web pages

When the game was approved by both the App Store and Google Play, I sent an email to my GBGames Curiosities subscribers first.

I then spent time updating my web pages that mention the game so that they no longer said “Coming soon” and had links to the app stores.

I also thought it would be good if the game’s main page mentioned the features and benefits of the game.

What I still need to do is create a new animated GIF. The one that is up is a bit outdated, as it features the third worker before I finalized how they functioned in the game, plus it has old art. I did not spend any time on making a replacement, though.

I announced the game primarily on social media, and one person already signed up for the newsletter, so that’s a good sign.

I had a lot of friends share it, too, which was nice of them, but I got to hear some amazing feedback from someone in the IGDA Des Moines chapter who loved the game.

The main thing I wanted to do was create a free Toy Factory Fixer Player’s Guide as a gift for signing up for the GBGames Curiosities newsletter.

My plan is for all of my Freshly Squeezed games to have a free strategy guide as a giveaway.

Aside from writing the announcements and making changes to my website, I spent almost no time on the planned work, partly because we’re heading into the holidays and I still have shopping to do, but also partly because after a year of development, I could use a small break.

I have read about how a lot of game developers don’t realize that a lot of work comes post-release, but as I didn’t have an audience I was hyping up, it has been a relatively quiet release, and I’m taking advantage of it.

What’s Next?

For the remainder of the year, I need to make some time to just be introspective and plan for 2022.

I like to write up post-mortems for my projects, and so after I finish writing the player’s guide and also see how the game’s metrics look in terms of downloads and how it impacted my newsletter subscriptions, a project post-mortem will be coming soon. In fact, I offered to present at the IGDA Des Moines chapter’s February meeting.

I’d like to create desktop ports of Toy Factory Fixer, so I’ll need to research the latest in terms of how to create a Windows and Mac release, especially since both of those platforms have some kind of signing requirements. I already develop on a Linux-based system, but I haven’t published anything for it in about a decade that wasn’t a Ludum Dare game, so I could probably stand to figure out if I need to do anything different. Perhaps I’ll use itch.io to distribute the games.

Speaking of Ludum Dare, I want to make sure I participate in Ludum Dare 50 in April. It will be the 20th anniversary, and I do not want to miss it.

I also have Toytles: Leaf Raking, and I should continue to create updates for it and port it to desktops as well.

As for my the next Freshly Squeezed project? I have some ideas.

I want to explore what persistence allows. Basically, if you can save progress, what does that open up in terms of possibilities? Toytles: Leaf Raking allows you to save your game, and yet I never implemented a way to save progress in Toy Factory Fixer even though it would have been nice to see how you rated on any given level and work shift. Perhaps a virtual pet kind of game would be a natural fit.

I just saw the movie Encanto, and it was gorgeous. A lot of the special effects looked like procedural animation. Basically, having a single flower pop up out of the ground is neat, but having thousands pop up one after another looks amazing. I am reminded of someone comparing the visuals of The Legend of Zelda: Ocarina of Time with some contemporary Playstation game, saying that while the Playstation game was big on massive spectacle, the Zelda game did a lot with a little, making the opening scene seem magical with subtle floating particles that chased each other like tiny fairies. One Ludum Dare game I never finished was about being a soldier who was sent to go find a giant, attract its attention, and then see if you could lead it back to trample the enemy’s base. I might tinker with the premise to see if there is a non-violent version I could explore, but I wondered if it would look great if the ground shook in ripples from the giant’s footsteps, and that your character could get tripped by those ripples.

In 2013, I worked on One Game a Month, and I have a lot of Ludum Dare and MiniLD projects. Many of those projects could be remade as Freshly Squeezed games.

And I could explore concepts such as randomness.

Of course, I definitely want to see if I can make a game much more quickly than one game per year.

But for now, I’m going to try to make time to play games and enjoy the holidays with friends and family, even if most of it will be virtual. Again.

Thanks for reading! And happy holidays to you and yours.

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 24-page, full color PDF of the Toytles: Leaf Raking Player’s Guide for free, and eventually the Toy Factory Fixer Player’s Guide as well!

Categories
Games

Announcing: Toy Factory Fixer, Now Available on Android and iOS 🧸

Available for free now on the Apple App Store and on Google Play, Toy Factory Fixer is a toy factory management game in which you hire and manage workers in order to ship toys by the deadline.

Toy Factory Fixer

Download on the App Store

Get it on Google Play

Bad Toys are accidentally getting created by the toy factory’s automated machines, and it is up to you to hire workers to separate those toys into parts and reassemble them together into Good Toys.

Toy Factory Fixer - game play

I have been working on this game for the past year, and I am so happy I can finally release Toy Factory Fixer to the world. I hope you enjoy it.

Toy Factory Fixer - game play

The game features four levels, each with an easy work shift and a challenging work shift. You can also choose to play without a deadline, or for an extra challenge, a hard deadline.

Toy Factory Fixer - game play

It plays much like a non-violent tower defense game, and it requires more thinking than dexterity.

In fact, you can hit the Stop button to plan your moves, then hit Go again when you’re ready, allowing you to take as much time as you need.

You can hire potentially three different worker types, each with their own unique abilities and capabilities, and you’ll need to strategically place them along the conveyor belt in order to handle the work.

And again, the game is free. For real.

NO ADS, NO IN-APP PURCHASES, NO INVASIONS OF PRIVACY, AND NO VIOLENCE

Have peace of mind with a family-friendly, ad-free, safe game.

Play the game, and please let me know what you think of it!

Download on the App Store

Get it on Google Play

Part of the Freshly Squeezed Entertainment line.
Freshly Squeezed

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report – Submitted to App Stores…Now We Wait…

In my previous sprint report, I changed the URLs for my Call to Action buttons so I can do some simple analytics whenever someone shows an interest in signing up for my mailing list or otherwise going to my website, and I started updating the build so that the game complies with Google Play’s latest policies and requirements.

I continued the work of creating the builds to release to the app stores.

Sprint 52: Release criteria

Planned and Complete:

  • Update Android targetSdkVersion to 30
  • Create Android bundle
  • Create Google Play store entry
  • Create App Store entry

Planned and Incomplete:

  • Create a strategy guide

Unplanned and Incomplete:

  • Update Toy Factory Fixer web pages

First, let me take a moment to look harder at that number above. Sprint 52. That’s 52 weeks I’ve tracked my work on this project. An entire year’s worth of slow and steady progress. And it is finally coming to fruition.

I think I’ll have more to say about spending 52 weeks on what was supposed to be a one month project in a post-mortem.

Anyway, in my last report, I was worried about how changing the target SDK broke the game’s ability to open a web browser and get to my website, and luckily it was a relatively quick fix.

It turned out that Android is starting to require more information about what an app might do, and so there is a new thing in the manifest file called queries, in which your app expresses its intent to use things such as ACTION.VIEW with the scheme HTTP or HTTPS. Once those were in place, the app seemed to work correctly again. I plan to write up the technical details in another post.

Next up was creating a new Android bundle, and luckily there was no real difference between the bundle I submitted for an update to Toytles: Leaf Raking and the bundle needed for a new app, or at least I didn’t need to change anything on my end, so the bundle built just fine with my existing build scripts.

Then I needed to submit the bundle to the Google Play store, and it was here that I finally decided to figure out exactly what I needed in terms of screenshots and such. I re-created the app icon and the feature image since they were originally created months ago when the game looked a little different, then I spent time playing the game and taking multiple screenshots, trying to setup good looking situations that might make someone curious enough to play the game.

Toy Factory Fixer

I had to create a privacy policy, which is a little modified from the one I used for my previous app. I needed to specify details about the data I track, which isn’t much.

Otherwise, once I had the screenshots, I was able to submit the app for review.

Next, I needed to build the app for iOS, and there were no new requirements I could find, and I was able to build, test, and upload to the App Store.

I created a store page, reusing a lot of content from the Google Play side, and the only trick is that iOS requires separate screenshots for multiple form factors. As my game does scaling, it means in practice that there are black bars at the top and bottom or the left and right edges of the screen on some devices, and so I modified the existing screenshots quickly.

I similarly had to answer some questions about the data I track and how it is not personally identifiable, and then I submitted it for review.

THIS IS SO EXCITING

At this point, all I can do is wait.

Toy Factory Fixer - In Review

Well, that’s not true. There is always more work to do.

In creating the privacy policy, I realized I needed to update the web pages related to Toy Factory Fixer. For instance, once the game is released, it shouldn’t say “Coming soon” anymore. The animated GIF is outdated. I need to provide links to the app stores. And so on.

And I still want to create a strategy guide as a free gift for people who subscribe to the Curiosities Newsletter (see below).

But basically, as soon as both app stores approve of the game, assuming they don’t find anything that I need to fix first, then I will be sending an email to my newsletter subscribers and telling them that the game is available.

So if you want to be one of the first to know, subscribe below!

Then you can wait with me, and I hope the wait isn’t too long. I’m really looking forward to you trying out my latest game.

Thanks for reading!

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