Categories
Game Development Games Marketing/Business

Toytles: Leaf Raking v1.4.6 – More Responsive and More Compatible πŸ’πŸ‚

Just in time for the start of Autumn and leaf-raking season here in the northern hemisphere, I just released the newest version of Toytles: Leaf Raking, my family-friendly leaf-raking business simulation available for iPhones, iPads, and Android devices.

Toytles: Leaf Raking

Both Google and Apple changed certain requirements for Android and iOS devices, which meant that there were certain issues with playing the game on their latest phones and tablets.

For example, the game should play in landscape mode, but on Android 11 it was not rotating the screen correctly. On both Android and iOS, input would not always get detected properly, so you would tap the screen and it would seem like it was ignoring you.

I have addressed these issues, ensuring the game plays correctly on older and more modern devices as well as making it a lot more responsive to your actions.

Learn more about the game and where to get it at the main Toytles: Leaf Raking page.

Toytles: Leaf Raking Player's Guide

Get the 24-page, full color PDF of the Toytles: Leaf Raking Player’s Guide for free by signing up for the GBGames Curiosities newsletter!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report – Now Separating Two Bad Toys at Once

In the previous sprint’s report, I made it clearer how much a toy is worth when you ship it, and I spent time designing and thinking about some aspects of the game’s levels and UI.

This past sprint I focused on changing the way the Strong Worker behaves.

Sprint 40: Training levels

Planned and Completed:

  • Make strong worker able to work on two toys at once

Planned and Incomplete:

  • Show tooltips during game based on triggers
  • Create floor training levels/tutorial

There was a lot going on at the day job as I wrapped up a project there, so I once again didn’t put in as much time on this project as I would have liked.

As I mentioned a few sprints ago, I realized that the Strong Worker wasn’t as valuable as hiring two Normal Workers. I could try to tweak the hiring costs to balance things, but then the Strong Worker would be merely a variation on the Normal Worker, which did not feel very interesting at all.

So I decided to enhance the Strong Worker by giving them the ability to separate two Bad Toys at the same time.

And it turned out to be a bit more complex than initially anticipated, even though I spent a bit of time anticipating.

Originally toys knew if they were held by a worker, but they didn’t know whether they were being crafted or separated. Workers didn’t know about the toys they held, but they knew if they were crafting or separating. And somehow this worked fine.

But now workers had a capacity for how many Bad Toys they could separate, which meant they needed to know what toys they were holding at once. And rendering the toys required knowing if they were being held by a worker who was holding another toy so that they toys would be offset from each other.

And I noticed that when the worker threw both toys at the inventory that you couldn’t easily see it, so I added variations to the arcs of the throws.

And then I had to fix the problems I introduced in which toys would disappear if they were technically still considered “held by” a worker who didn’t think they were working on any toys resulting in messed up math.

But in the end, it looks relatively good, and now I can see how much impact on the balance of the game there is to have a Strong worker who can do the job of potentially two Normal Workers.

Toy Factory Fixer - Strong Workers separating two toys at once

Which of course got me thinking about what could make the third worker special and unique.

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!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report – Communicating Good Toy Value

In the previous sprint report, I had created a number of enhancements to make Toy Factory Fixer easier to understand and play. More importantly, I got some great insight into how the Strong Worker actually works and decided I wanted to change it.

I had some big ambitions for this past week’s sprint, but other priorities took over.

Sprint 39: Training levels

Planned and Completed:

  • Show Good Toy rewards in crafting menu

Planned and Incomplete:

  • Make strong worker able to work on two toys at once
  • Show tooltips during game based on triggers
  • Create floor training levels/tutorial

While I managed to put in more game development hours than I normally do, the lion’s share of that time was actually spent on updating Toytles: Leaf Raking, my leaf-raking business simulation game.

Both Google and Apple have updated their requirements for apps in their stores, and so I needed to update the game to work on the latest Android and iOS devices. I have been putting it off, but with autumn starting in the northern hemisphere soon, and since the game is about running a business raking leaves, I wanted to ensure the game works for everyone.

Which meant that I didn’t get to make much progress on Toy Factory Fixer.

I did spend a bit of time trying to make it clearer to the player how much Good Toys are worth AND make it clear that they need to be shipped to get that value.

So after some good advice from people on Twitter, I ended up changing how money was shown in the game in order to create as concise a visual formula as I could.

If you recall from last time, I added the new pigeon gold coin, and any monetary amounts were shown next to that coin. The problem was that the icons to show “ship something to get XYZ money” were getting kind of long and awkward.

Well, rather than have the money amount next to the coin icon, I decided to put the amount on top of the coin.

Which meant I needed to change the saturation so that the letters read better. Here’s what it looked like before:

Toy Factory Fixer - coins in UI

And here’s what it looks like now:

Toy Factory Fixer - updated coin text

And now here’s the crafting menu with the formula shown:

Toy Factory Fixer - Good Toy value formula

I think the shipping chute could use some more work to make it clear what it is. I was thinking about changing it into a van or truck, so the toys jump off the conveyor belt into the back of it, and so a small truck icon should read more clearly.

And of course, if there is a truck, it should drive away at the end of the level, right?

I otherwise spent time working on designing tooltips. First-time players seem to struggle with understanding what to do in the game, and so I think it makes sense to throw in some animated arrows or word bubbles that basically say “Tap here next!” at the appropriate times.

I was also thinking about the level design, wondering if I could create two or three separate levels using the same level layout. Basically, in an attempt to make the game challenging, I might have made it too difficult. And my first few levels are called “training levels” so maybe it makes sense for them to go easy on new players. Maybe I can make three levels and call them 1st shift, 2nd shift, and 3rd shift, and each gets progressively more challenging. Then you can move on to the next level layout’s three shifts.

And of course, I would love to implement the ability of strong workers to work on separating two Bad Toys at once. I have also been thinking about what that means for the uniqueness of the Quick Sewing Worker. Should they be able to work on multiple Good Toys at once? Is it enough that they work on one Good Toy very fast compared to Normal Workers? Should they be able to do something else entirely, such as throw Bad Toys at the nearest idle worker?

And at what point is it feature creep as opposed to merely trying to make sure this game makes a good impression when it is finally released?

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!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report – More Enhancements and Level Design Insights

Last week, I gave a report for two sprints in which I fixed a few defects, added a few enhancements to the user experience, and worked on new training levels.

My plan was to continue creating training levels this past week.

Sprint 38: Training levels

Planned and Completed:

  • Show current production number
  • Disable hire button if no workers can be hired
  • Create gear icon for Options menu in game

Unplanned and Completed:

  • Add delay when the production run button is available
  • Defect: Special effects can stay on screen if level reset while active

Planned and Incomplete:

  • Create floor training levels/tutorial
  • Show Good Toy rewards in crafting menu

You know how sometimes when you are play testing your own game that you wish you had more insight into what is going on? And you can always add debug text to help, but other times it is something that any player might want?

Yeah, I found it annoying that my levels have 9 production runs but that there is no indication which production run is currently in play. That is, I can see how many toys I’ve shipped compared to how many toys are possible to ship, but I had no in-game way to know which of the production runs I was in and which one would be next. So I added an indicator, which also has the nice bonus of giving the lever indicator a home to anchor to so it didn’t look like it was floating separate from the dispenser.

Toy Factory Fixer - production run indicator

Due to how the turn order operates, if there is a lot going on, there is a natural delay between turns. That is, if workers are grabbing toys, crafting toys, separating toys, and dropping toys on the conveyor belt in a single turn, there might be a substantial delay. But if none of those things are happening, then going from one turn to the next takes very little time.

Which is annoying when you are trying to tap the “next production run” button because you want to launch the next run early and get the sweet, sweet monetary bonus for doing so.

And in play testing, I see that people don’t generally realize they can tap that button. So I made it flash each turn, which should help highlight it to players, and I ensured that the flash will last a certain amount of time. If other things are happening, then the flash will likely be over before the turn is. If nothing else is happening, then the next turn won’t start until the flash ends.

Toy Factory Fixer - production run button flashing

It’s one of those kill two birds with one stone kind of things.

Addressing playtester feedback

Speaking of birds, I wanted to add pigeons to my games. Because I like pigeons. I also remember back when the N64 was new that every game had a penguin, and I figure there is a precedent for adding arbitrary birds to games.

While I had pictured a pigeon flying around the toy factory floor, periodically landing when the game is paused or stopped, but I couldn’t justify the time to do something like that when there is so much I still needed to do.

BUT! I decided that I could at least do something about how the cash in the game doesn’t really have any visual indicator except for the text “Money” in the UI.

While creating a visual money indicator meant that it would be easier for me to show what the reward for shipping different Good Toys would be, the real reason is because I wanted pigeons in the game.

So I created a gold pigeon coin:

Toy Factory Fixer - Gold Pigeon Coin

Blown up at full size, it looks a bit ugly and rough, but shrunk down, the coin looks decent enough.

Toy Factory Fixer - coins in UI

Toy Factory Fixer - coins in UI

Unfortunately, I wasn’t able to finish the work of indicating to the player how much a Good Toy is worth because I didn’t know a good way to do so. If I put it in the main inventory boxes, it could look like I was saying you had that much coin in there. If I put it in the crafting menu, it might look like I was saying that you would earn that money for merely crafting the Good Toys.

Maybe I needed to create a separate overlay that appears if you tap on the crafting formula or the inventory? Maybe I just put in some initial help text? I don’t know. I’m going to ask for advice from colleagues who might have more experience with UI development.

I disabled the “hire” button if you can’t afford to hire any workers, partly because I noticed that my wife would focus so much attention on managing the workers that she missed the fact that she had earned enough money to hire more workers to make it easier. So now, if the button is dark and unlit, you know it isn’t possible, but if it is orange and lit, you know you can.

I also replaced the options button with a gear icon. I’m not exactly happy with it. It doesn’t look like the other buttons, which is good because it clearly looks different enough that you won’t get confused with a regular in-game button, but now it might not look like you can press it at all.

Toy Factory Fixer - new gear icon

Learning more about the nature of strong workers

In the previous sprint, I had almost finished up work on a third training level which introduced the strong worker, who can separate toys much faster than normal workers but can’t craft as fast.

And the level seemed to work great as I did my own playtesting. Depending on how many workers I hired and where I placed them, I found more than a few strategies I could employ.

Then I decided to replay the level and not hire any strong workers at all, and I was disheartened to find out that it was actually easier to do very well without them. Whoops.

Part of this is because I didn’t do any real balancing yet. I had lowered the cost of hiring a normal worker when creating the first two levels, but I didn’t change the cost of hiring the strong worker yet. So it cost more than twice as much to hire a strong worker than a normal worker.

But strong workers aren’t twice as good at separating Bad Toys. I mean, they do take one turn to separate a small toy while a normal worker takes two turns, but you could always hire two normal workers instead of one strong worker, still be 10 pigeons ahead (haha, now my game has its own slang for money), and having two normal workers means you stop two Bad Toys from advancing while one strong worker still only stops one toy.

On top of it all? The strong worker’s role comes early in the game. That is, you want strong workers to grab toys as soon as they get dispensed, so you’ll place them near the beginning of the conveyor belt. If you want to get the best grades, you want to use as few turns as possible, so you don’t want workers near the beginning of the belt to do much crafting because then Good Toys have to travel a lot more around the conveyor belt, and therefore using more turns, before getting shipped.

But I found that the end of the level requires a lot of crafting, as your inventory is fairly full, so you’ll use your normal workers at the end of the conveyor belt to do that work, and your strong workers are fairly idle.

It makes me think that introducing strong workers should come after the workers who are experts at sewing.

I obviously need to lower the hiring cost of the strong worker, and I can model some in-game economics better in order to come up with a better number.

But I also wonder if the strong worker should have a special ability to work on two Bad Toys at once. Having a single worker who can be placed in an optimal position AND can do the work of two normal workers? And if I can create a fun animation, like the strong worker slamming the two Bad Toys together like a bouncer dealing with rowdy patrons? It seems so satisfying and fun. At least, in my head.

And this is when I worry about the difference between feature creep and must have.

I can imagine a future version of this game in which you can train workers to “multitask”, so it costs money to essentially upgrade a worker with the ability to work on two toys at once. I already have the ideas of training and purchasing items as things that won’t go into this version of the game.

But I think it would let the strong worker have more character if they aren’t just a normal worker with a different piece of art and slightly different stats. Merely lowering the hiring cost might not make them interesting enough, but having them be able to tackle two Bad Toys at once? That’s interesting.

Anyway, it’s September now, and the game is still continuing to get better and better yet hasn’t gotten to the point where I feel good releasing it yet.

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!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report – More Training Levels and Minor Fixes

I missed my sprint report last week due to being on a long weekend vacation with my family, so here’s double the report!

Two weeks ago, I reported fixing some major game play issues and getting the first level of the game into a finished state.

I continued working on the levels and addressing things as I saw them.

Sprint 36: UI enhancements and training levels

Planned and Completed:

  • Worker menu should allow other workers to get picked
  • Unpause after leaving a menu that auto-paused

Unplanned and Completed:

  • Defect: Hire menu doesn’t update when money is added
  • Defect: Clicking disabled button in crafting menu takes you to place worker menu, which crashes the game when used

Planned and Incomplete:

  • Create floor training levels/tutorial

Sprint 37: Focus on creating training levels

Unplanned and Completed:

  • Defect: Color changing doesn’t affect worker eyes, making them look weird

Planned and Incomplete:

  • Create floor training levels/tutorial

As I mentioned in the last sprint report, I made some changes to the flow of the game based on play tester feedback. One of those things was automatically unpausing the conveyor belts once you leave a menu that paused it.

Now, I’m worried it is a bit clunky, but I think part of the problem is that there is no visibility into whether you are merely paused or actually stopped. You can see the presence of the Stop button as a clue, but I think it is too subtle.

So I decided to revisit the lever widget I made, which sits on top of the dispenser sprite to indicate if the game has stopped or is playing. I want to make an intermediate state that shows the game paused instead.

I finished this work, which shows that the state is “paused” as opposed to “stopped.”

Toy Factory Fixer - paused indicator

I fixed a defect in which the hire menu would not update the buttons if you happen to earn enough money to hire a worker. Basically, when you bring up the menu, it checks the current state of the game and enables buttons if you can afford to hire a worker. But once you earned more money, you would need to exit and reopen the menu, which was ridiculous and also an easy fix.

I also apparently introduced a defect in which one of the crafting buttons, if disabled, was not using the correct value, so tapping on it would cause the wrong thing to happen, and in this case could lead to a crash. I fixed that issue as well.

One thing I found annoying was that I might be in a menu, and decide to tap on one of the workers to go to their crafting menu, but I couldn’t. I would need to exit a menu, THEN open the crafting menu. I changed it so that so long as the worker was visible on the screen, you could tap on them at any time, which made the game feel a lot less clunky to play.

And a minor defect that was really bothering me was that the blinking eye animation that I added to the workers was not changing colors with the rest of the worker. The changing color was an indicator that the worker was idle and could craft something, but since the eyes weren’t also changing color, it just looked wrong. It looks a lot better now.

Otherwise, I focused on putting together actual playable levels rather than the test levels I was using. I managed to get two training levels completed, introducing the different toy sizes and two of the three worker types.

Toy Factory Fixer - new training levels

My main challenge in creating these levels is that I want it to be possible to get A+ in each of the three grading criteria if you play perfectly, yet also get an OK grade if you make at least some effort. And I’m still figuring out what “playing well” looks like.

In one level, I set a target shipment deadline of 190 turns, and then I realized I had forgotten to add a ninth production run of toys, so I thought I would need to increase the required number of turns. Shortly afterwards I also discovered a new optimal way to place the workers which helped cut down the number of turns substantially enough that I got the level finished in 186 turns! So I kept it at 190 and did not put it at 186 because I figured a player would feel more delighted about doing better than the game suggests they could do.

I am finishing up work on the third training level that introduced the stronger workers who can separate Bad Toys faster. It mainly involves testing the game play and seeing if it needs to be more or less challenging, and then I’ll work on the fourth level which introduces the faster crafting workers.

Unfortunately, I don’t have a plan for the number of levels I want to release the game with. Perhaps I’ll add one more level with all of the elements in place.

Meanwhile, my wife play tested some of these levels, and she helped me uncover a few UI issues that I want to fix before the official release, such as how hard it is to realize you have enough money to hire more workers if you are busy paying attention to everything else.

It’s also perhaps too hard, especially for what are supposed to be “training” levels.

I had originally intended that the game play would be the opposite of frantic. It is technically turn-based, but I find that you still have to be fast to do well, stopping the advancement of turns at the right time. So it isn’t quite as forgiving as I wanted it to be, and I’m still figuring out how to address it.

The adage about the first 90% of the work being hard and the last 90% of the work being harder has some truth to it.

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!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report – UI Enhancements and Training Levels

In last week’s sprint report, I added more effects to make the workers seem more alive, streamlined the player’s start to the game, and updated the grading criteria for the end of the game. I also started work on creating the first level of the game.

My plan for the last week was to continue creating and tweaking the training levels as well as addressing some issues I noticed during recent play tests.

Sprint 35: UI enhancements and training levels

Planned and Completed:

  • Prevent worker menu from showing actions that aren’t possible
  • Make Options menu clearly separate from game play menus

Unplanned and Completed:

  • Defect: Prevent player from commanding worker until after turn is finished processing
  • Unpause after leaving a menu that auto-paused

Planned and Incomplete:

  • Create floor training levels/tutorial
  • Worker menu should allow other workers to get picked

So having other people participate in play testing is invaluable for a game’s development. I might regularly dive deep into an aspect of the game, but even if I come up for air and try to get a sense of the whole of it, I know too much.

I play the game based on my own understanding of it, which is much more comprehensive than someone hasn’t been working on it almost daily for 35 weeks.

All this is to say that it was very eye-opening to see what areas of the game made someone struggle that I wouldn’t have noticed, such as not knowing where to tap on the screen, knowing what to do at any given time, or even getting frustrated when trying to do something only to have the game simulation catch up and take the option away.

I watched my wife play the game for the first time in weeks, so there were a lot of enhancements since her last play test, and this was the first time she played on what is a candidate for a final version of a level that will make it into the game.

One thing she uncovered turned out to hide an insidious bug that I thought I had already addressed.

Preventing workers from doing two things at once

Basically, the game runs in turns. A turn runs in phases, such as moving all of the toys down the conveyor belt, or allowing idle workers to pick up nearby Bad Toys, or letting workers do their jobs, etc.

After a turn starts, it continues through the phases until it is done. So even if you tap on a button or a worker and open up a menu, the turn continues until all phases are done.

What was frustrating my wife was that she sometimes wanted to tap on a worker to open up its crafting menu, but before she could tell it to craft anything, it would pick up a Bad Toy and so would be unavailable to craft anything. Doh!

So I made a note to try to address that problem.

But what I uncovered in my own experimenting with it is that you can, in fact, tell the worker to craft a Good Toy while it is simultaneously grabbing a Bad Toy, which means two toys end up being held by the worker.

Oddly, due to how crafting and separating work, the very next turn would show the worker throwing a Good Toy on the belt, and I have no idea where the Bad Toy went.

So a minor annoyance was actually hiding a major defect.

I ended up making workers show as busy when a turn is progress, but as soon as the turn is over, the crafting menu will appear if it is available. So now it is impossible to get into that state, and despite my worries, it actually doesn’t feel terribly arbitrary.

You tap a worker, open up its menu, and you see “Worker is currently busy” for a moment, and then either the worker stays busy or the crafting menu appears.

It occurred to me only now as I write this sprint report that it is possible for certain phases to allow a pause. The reason why the turn phases finished no matter what was because when I didn’t have them do so, I ran into a similar defect. When you opened the worker menu, the crafting menu would appear, but one of the phases checks to see if a worker is idle and is ready to pick up a Bad Toy. So if you told the worker to craft after that phase, the worker would be seen as eligible when it really wasn’t, and so you would see the worker hold two toys (and sometimes lead to a crash).

But perhaps some phases, such as one before checking worker eligibility for picking up Bad Toys, could allow you to command a worker, so at the start of a turn the worker is idle, but partway through the worker would be busy, and so long as the change happens at safe times within a given turn, it would be fine AND might feel more responsive.

Well, maybe I’ll try that approach if I get more feedback about it or if the current approach starts to bother me enough.

Clearer UI and menus

I also noticed that it isn’t always clear which button to press, so I made a number of changes.

Before, the options menu looked like it was part of the game, which kind of hid the fact that it was basically asking you to quit the game.

Toy Factory Fixer - old options menu

The new options menu makes it very clear that it is separate and asking some very big questions:

Toy Factory Fixer - New options screen

I also changed the “Back” button and “Options” buttons to be more iconic and gave them a different color, which might help with communicating that they are different. I also made sure that the back button was in the same location on each menu, as before it was inconsistent, which means a player can’t use muscle memory and also means the game feels inelegant and awkward.

The back button was now a big X, which required updating the helper code that creates those standard looking buttons to allow me to pass in an arbitrary font.

And since I did so, I might a well make the bigger buttons use a bigger font.

Also, I added bigger buttons to certain menus to make it clear what the player is encouraged to do next.

Here’s the old level configuration options menu:

Toy Factory Fixer - Level Configuration

And here’s the new menu, with a bigger and clearer call to action:

Toy Factory Fixer - updated level configuration menu

Even the main menu, which already had a large button, now looks better with a bigger font:

Toy Factory Fixer - Game Play

vs

Toy Factory Fixer - enhanced main menu

A simple thing like making the font bigger on the bigger buttons really adds to the clarity of the game.

Automatically unpause the game

Another play tester gave me this same feedback across multiple builds, so I decided to experiment with a change that might address it.

The game runs in turns, but to avoid tedium, the player doesn’t have to advance turns manually. There is a Go button that starts the turns, and the turns will advance until the player hits the Stop button. Then the current turn will finish, and the next turn won’t start until the player hits Go again.

I wanted the game to be more about thinking than about dexterity, and so the expected way someone would play is that they might tap a button to open a menu, and when that happens, the continuous turns would stop automatically. Then the player can plan, tell a few workers to craft something, or even hire a worker, and do so on their own time. When they are ready, the player can hit Go.

But my play tester found that it broke the flow of the game. Basically, when he opened a menu, the game seemed to pause, but when he was done with the menu, either by taking an action or hitting back, he expected that the game would start back up again instead of requiring him to hit the Go button each time.

So I thought, “Why not?” and tried to implement a pause/unpause. So instead of a menu resulting in the continuous turns stopping, the turns would be paused, and exiting the menu would unpause. I changed the turn update code to only advance if the turns were advancing AND the game was not paused.

I needed to make sure that turns started advancing again once you unpaused, which introduced a problem.

Let’s say you have three idle workers. If you tap on one, you can tell the worker to craft a Good Toy. But as soon as you do, the next turn advances, and so you might find yourself wasting turns as you quickly try to tell the other workers to craft something.

So I decided to add the Go/Stop button to every menu, which required rearranging some things for some menus.

If the turns weren’t advancing, the Go button would be disabled in those menus, waiting until the player would get to the main in-game menu to hit Go. But if the game was merely paused, the player had the option of also stopping turns from advancing entirely.

Toy Factory Fixer - new crafting menu

Now, I’m worried it is a bit clunky, but I think part of the problem is that there is no visibility into whether you are merely paused or actually stopped. You can see the presence of the Stop button as a clue, but I think it is too subtle.

So I decided to revisit the lever widget I made, which sits on top of the dispenser sprite to indicate if the game has stopped or is playing. I want to make an intermediate state that shows the game paused instead.

Unfortunately, even though I updated the art and have all of the pieces pretty much in place in terms of code, I didn’t finish the implementation it by the end of the week.

So, expect to see it next week.

I got straight As for the first time!

On a side note, while playing the game myself, I’ve been struggling with balancing the first training level in a way that allows a player to actually ace it.

I had updated the grading criteria in the previous sprint, and I updated the level’s configuration to try to make it possible to not only ship all possible toys but also do so within a target number of turns and get a great Return on Investment.

And a few days ago, I got close to a perfect level:

Toy Factory Fixer - almost perfect grades

I know I missed those last few toys because it was impossible to get all of them with the workers I had hired and their placement. A player would not be happy to realize that it wasn’t possible, so as a developer, I need to tweak it so it isn’t impossible.

But I did recognize that I wanted to replay the level to try to get all A+ grades, which was a nudge telling me that this aspect of the game is important.

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!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report – Worker Polish and Training Levels

In my previous sprint report for Toy Factory Fixer‘s development, I had added some enhancements that make it clearer to the player (and potential viewers of a future Let’s Play or even just a family member watching over the player’s shoulder) that the Bad Toy parts get thrown into the inventory.

For this past sprint, I wanted to focus on continuing to make workers seem a bit more than static robots, as well as start work on creating actual levels rather than the test ones I have been using since the beginning.

Sprint 34: Worker polish and training levels

Planned and Completed:

  • Make worker eyes follow to nearest toy on belt

Unplanned and Completed:

  • Test feedback: not clear what you need to do (such as hire workers)
  • Finalize grading algorithms

Planned and Incomplete:

  • Create floor training levels/tutorial

I had a very productive week in terms of game development. I mean, relatively productive. I am still doing this work very, very part-time, but I found I was able to focus on the work for longer sessions and so things came together more and I was able to be more thoughtful with my efforts.

I even have to split this report into sections!

Worker Eye Tracking

Anyway, I separated the pupils from the worker sprites so that I could animate them separately, which resulted in some creepy visuals at first as at first I only rendered pupils when the eyelids were blinking:

Toy Factory Fixer - creepy worker eyes

I don’t have a one-to-one correspondence between an in-game object such as a worker and its sprite. The way the game object is rendered is handled separately from the logic related to that game object, which might sound like it is possible to overcomplicate things, but I found that it simplifies the code of each.

Retroactively adding animations such as pupils pointing towards the nearest Bad Toy required adding a way for workers to target a nearby toy, and offsetting pupils properly for each worker type. I got this work done very quickly early in the week, and I was more or less satisfied with the results.

Toy Factory Fixer - worker eyes tracking toys

And getting it out of the way early meant that I could focus on level design, something I’ve been neglecting for arguably way too long.

Intro Level Design

Up until now, I’ve had a few levels that I’ve used to test things out early on, mainly so that the game play had a place to live.

But now I wanted to work on what levels will be in the final, published version of the game.

I don’t have a lot of experience with level design. I think I’ve picked up on social media from other developers that a first level is probably something you should make after you’re almost done with everything else. As a first level, it is the main introduction to the game for your players, and if you’re still tweaking balance or game play, you could end up doing a lot of rework.

At the same time, I know that I want to introduce the game gradually to the player, so a stripped down first level seems easier to start with. And since game development is an iterative process anyway, I can start by roughing out levels and expect to come back to them as a feature of the work and not a mistake.

So I added a level configuration that limited what workers would show up as available to hire in a level. On the first level, I’ll only allow one type of worker.

Then, I wanted to make sure that there wasn’t much for the player to do. So I had the entire level consist of two Bad Toys, which the player than crafts into two Good Toys. The idea was that the player gets a super basic intro to how the game works.

Updating Grade Calculations

And then I saw the end of level performance review, which grades the player on three things.

One is based on whether or not you let any Bad Toys get shipped, which you pretty much can’t in this level. So, an easy A for quality.

Another is based on whether you completed the level quickly. Basically, I compare how many turns it takes a player to how many turns I think are optimal. This level is small, and I was able to figure out an optimal number of turns for it manually, add it to the level configuration, then change the shipping deadline option to match it as an optional challenge for the player rather than the arbitrary deadline options I had before, and even fix the grading so that it calculated it correctly (whoops, it has been wrong for weeks!).

But the third thing the player was graded on was Return on Investment. Basically, did you spend less than you earned? By how much? I needed to tweak how the grade was calculated here as well. It was failing the player (uh, mainly me) for what I thought were respectable ROI numbers. So now it’s not quite linear in that anything less than 0% ROI is a failing grade, anything under 100% is a C, and you get better grades now for doubling or tripling your ROI.

With the way the level was currently designed, it was impossible to get a passing grade here. You always spent more hiring the worker than you could earn from two Good Toys shipping successfully.

So what are my options?

  • I could get rid of ROI. I have struggled with grading the player on how well they can do by hiring fewer workers, partly because of the commentary on labor that it introduces. Then again, I think it adds a strategic element to the game.
  • I could get rid of ROI for the training levels only. So you will be graded on quality and optionally (at the player’s discretion?) speed but not on how much money you earn because, you know, the factory is paying for your training.
  • Make the training toys worth more? That way, the math works out that you ace the ROI artificially, but then that would be confusing for future levels. I’d probably need to communicate that these are special training toys, and that seems like a lot of extra work.
  • Add more toys. Basically, this goes from being a quick training level to being a full-fledged introductory level.

I decided to flesh out the level, adding more toys. It’s still limited in that it gives the player only one worker to worry about, and there are only small toys, but instead of being short and sweet and potentially boring, it gives the player more credit by making it a challenge to ace all three grading criteria while still allowing the player to get passing grades even with mediocre play.

Basically, instead of one production run of only two toys, there are now multiple production runs that gradually increases the number of toys dispensed in a row, and eventually introduces toys dispensed together in a single batch.

The nice thing about having the ROI grading criteria more nailed down is that it gives me a rough sense of how many production runs and toys a given level should have. Basically, expect that perfect play means you will get at least 300% ROI. While I still find level design is complicated, with needing to figure out the effects of conveyor belt layout, production run configurations, starting money, and more, having the A+ == 300% ROI gives me at least one thing to anchor the design to.

Toy Factory Fixer - training floor level 1

Toy Factory Fixer - end of tutorial grading

I’m finding that I am tweaking things such as the cost to hire a worker, both to make it easier to hire more workers (it is more fun to see lots of workers than fewer workers) and get a good ROI (getting a good grade is more fun than not).

As I said, I probably should have been doing a lot of this work earlier, but I am glad I got to focus on it as much as I did last week. There were a lot of questions that came up that had no wrong answers and a lot of potential areas to explore, such as how long a given level should take or how optional some of the grading criteria should be.

Streamlining New Player Experiences

Finally, as I was trying to play the game as if I was completely new it, I decided to address a concern pretty much every tester brought up more or less directly: it is not clear what you’re supposed to do when you first play the game.

The very first thing you should do is hire a worker, but it is easy to miss the “Hire” button. I could add tooltips, or a bouncing arrow pointing at the hire button, or otherwise make it clear you should go there right away.

Or, what I ended up doing was changing the default menu to the Hire Worker menu instead of the main in-game menu. So right away, the player knows to hire a worker, instead of being expected to figure out that they should do so AND how to do so.

I even disabled the “Go” button until there is at least one worker hired, so if the player exits out of the hire menu, they can’t really start the level until they go back to it and hire a worker.

Summary

The game has a little bit more polish, some tweaks to how it rewards the player’s performance, and a more streamlined introduction to the game play that doesn’t leave the player wondering what to do.

I also gained a lot more insight into what the level design work is going to look like going forward.

That’s not bad for a week’s worth of part-time work.

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!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report – More Worker and Inventory Animations

Last week, I reported that I focused on enhancing the workers by animating their arms, which helps make Toy Factory Fixer just a little more enjoyable to play. I wanted to continue making the workers more interesting in the next sprint.

Sprint 33: Worker polish and training levels

Planned and Completed:

  • Move toy parts towards inventory

Planned and Uncompleted:

  • Make worker eyes follow to nearest toy on belt
  • Create floor training levels/tutorial

A big part of what the workers do is separate Bad Toys into parts. I had the toy parts merely fall off the bottom of the screen, but the inventory count on the right would increase. Yet, it was not very clear that there was a connection.

So I fixed it. Toy parts now fly from the worker’s hands to the inventory, making it clearer that the parts are added to the inventory.

I even animated the icons in the inventory so that you knew which ones were getting increased.

And I made the toy parts rotate because everyone loves things flipping through the air.

Toy Factory Fixer - throwing toy parts at inventory

I decided to try adding particle effects, because why not?

I wanted to create a cartoony cotton fluff to represent the stuffing coming out of the toy parts, but trying to draw them from real references was awkward. I ultimately ended up looking at Winnie the Pooh and the Honey Tree.

But my cotton fluff looks more like a dust cloud, especially since it fades over time. I’m not entirely pleased with how it looks, and so I think I’ll change it.

Ultimately, I spent all of my time on getting the toys to move to the inventory and getting things to animate that I didn’t get to other worker enhancements such as eye movement. The arms move, but they still look dead inside, and I would like to make them look more emotional.

But more importantly, and perhaps in hindsight what I should have been doing for many months, I need to focus on creating levels.

I’ve been tweaking a few things as I have been play testing, especially once I added the new worker types a few weeks ago, but I need to create a few solid intro levels.

In the meantime, I’ve gotten more play tester feedback, and some of the things I want to do to address that feedback seems critical for a first public release.

It feels simultaneously like I am so close to creating that first publishable version and also so far away because it takes me weeks of part-time effort to do what would probably take me mere days if I was focused on it full-time.

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!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report – Worker Animations

In last week’s sprint report for Toy Factory Fixer, I added new worker types.

I continued to focus on the workers last week.

Sprint 32: Worker polish and training levels

Planned and Completed:

  • Animate worker putting down toy

Planned and Uncompleted:

  • Make worker eyes follow to nearest toy on belt
  • Move toy parts towards inventory
  • Create floor training levels/tutorial

After adding some simple yet effective enhancements to the toy movement that I thought made the game a lot more enjoyable to experience, I thought it seemed odd that the workers continued to stay stationary, so I thought I should do something.

Early in the week I managed to separate the arms from the workers, and I created a way to rotate the arms based on time relative time it takes for a toy to move.

But first, I had some fun with them. You know, to test it out:

Toy Factory Fixer - worker arm animations

Ultimately, I ended up creating a specific motion for the arms to flip toys into the air, which works for both throwing separated toy parts into the inventory and throwing a crafted Good Toy onto the conveyor belt.

Toy Factory Fixer - worker arms animated

Before I could work on anything else, I found that there was a strange flicker with the arms that occurred if there were multiple workers. It took a bit of investigation, but the arms animate if the worker has finished either crafting a Good Toy or separating a Bad Toy. Crafting and separating happen at the same time, but toy parts will go into the inventory first, then Good Toys will be thrown onto the conveyor belt.

All well and good, except I reuse the same variable to manage a timer to move toys in each step, and I reused that same timer to manage the rotation of the arms.

Now, each step only occurs if it needs to. That is, if there is no worker putting down toys, then those sequences and the use of the timer for those sequences won’t happen.

So when you have one worker, or when you have multiple workers who all finish separating toys at the same time, nothing goes wrong, but when you have multiple workers who aren’t doing the exact same thing at the same time, then the timer, which governs the rotation of the worker’s arms, rotates the arms during an irrelevant step. It was too easy for things to go wrong due the overuse of a single variable.

So, for example, a worker who just finished separating toys will launch the toy parts into the inventory, raising their arms and lowering them back down based on the same timer that is moving the toy parts into the inventory. But then that same timer starts over for the next phase, and so that worker will raise their arms again even though they shouldn’t.

In the end, I ended up adding more states for the worker to represent when they “celebrate” finishing the job of separating or crafting a toy, and it made it easier to manage. The arms only animate when the worker is in one of those celebration states, and immediately after that animation ends, I change the worker’s state so that they don’t animate the arms anymore.

The next thing I started to look at was changing what happens to separated toy parts. Currently, they fall offscreen, but I think it would be more intuitive if they were thrown at the inventory on the right side of the play area. So a small bear head would get thrown at the small bear head inventory icon, and perhaps it would animate to really make it clear that the small bear head quantity is going up.

It turns out that it would take quite a bit of work to change the static inventory widget that only redraws when there is a potential for the inventory numbers to change, and I ran out of time to work on it this past week. I expect to get it done early this coming week.

I didn’t purposefully mean to do any work on creating the training levels, but between having new worker types and testing their animations, I ended up playing through a few different sessions and figuring out that I actually have a fairly enjoyable game coming together, even with it being unbalanced. I need to create a solid set of levels before I release it to the world, but it’s exciting when you realize that you got distracted from testing something because the game itself distracted you.

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!

Categories
Game Design Games Geek / Technical

Books I Have Read: The Works of Ian Bogost

A couple of years ago, I purchased a number of books by Ian Bogost, the game designer, author, and professor who also created the parody game Cow Clicker and one of my favorite things on the Internet: buns.life, which lets you put words between buns.

I read some of Ian Bogost's Books (words in buns)

I can’t remember why I decided to buy multiple books by Bogost at the same time. I imagine it was because Racing the Beam was on my wishlist for a very long time, and when I finally decided to get it, I thought, “Yeah, I could stand to read more books about games.”

I finally got around to reading these books recently. In fact, I read each book within a week before moving on to the next, so I felt I got quite immersed in Bogost’s world in a little over a month. I could trace lines of his thoughts as they evolved over time and also recognized the same references he makes across multiple works.

Here are some brief thoughts on each.

Racing the Beam

Racing the Beam

Racing the Beam: The Atari Video Computer System, co-written with Nick Montfort and published in 2009, was a joy to read as someone whose first experience with video games was my family’s own Atari 2600 that I still have in my possession.

The book covers both the technical details of the Atari VCS, what I always knew as the Atari 2600, as well as analyzing how it impacted what kind of culture was being created by the developers who worked on the games for it.

I learned a lot about the history of Atari and the people involved in it, the reason why games worked the way they did for this platform, and how the system was flexible enough that it allowed for such a wide variety of games to be made for it, way beyond what could have been expected when it was designed.

There were times when I wished to dive even more into the technical details of how the system worked, but what was provided was probably deep enough for the target audience. Besides, I am sure there are actual manuals and guides for that kind of depth.

But I also enjoyed reading about the Atari 2600’s place in terms of the time period, the market, the politics, scandals, and more. I liked the insight that came from what were seen as poor quality arcade ports in terms of what it takes to make something successful as an adaptation. I liked learning about the names of the people behind some of my favorite games for that system, as well as learning more about the constraints they worked their magic within.

Despite diving into the details of a piece of hardware, I found this book to be one of the more accessible ones to this non-academic.

It’s also part of a series at MIT called Platform Studies, and I know I have copies of a few of those books thanks to Humble Book Bundles, so I look forward to diving into them soon.

Unit Operations

Unit Operations

While I found Racing the Beam to be accessible, I found Unit Operations to be a challenging read. I felt smarter within a few page partly because I had to look up a few words because the rest of the sentence or paragraph that they were encountered didn’t seem to give me enough clues to their meaning.

This was a book written for an academic audience. I had to work for it, and I’m glad I did.

Unit Operations has a copyright date of 2006, and if I managed to successfully understand it, it was Bogost’s attempt to create a grand unifying theory of criticism that would work for not only games in particular and computation in general but also cover typically criticism-comfortable ground such as literature and poetry and film.

This book covered everything from philosophy to art to computer science to psychology to film and of course games.

Much like with Racing the Beam, I enjoyed the placing of context of different pieces of work. I happened to listened to a course on Western philosophy a few years ago, and so I was able to get references to major thinkers and writers.

As for a unit operation, well, my understanding, which might be wrong and not nuanced enough, is that a unit operation is a “thing that has meaning.” Specifically, a thing that can be combined with other things and understood with its relationship with those things in that specific combination.

That “thing” can be a cog in a wheel, or the wheel itself, or the concept of machinery in general. Bogost talks at one point about object-oriented software You can write a piece of code as a component of a larger system. Maybe that system is a component of an even larger system. But each component can be understood both in isolation and as part of the system it operates within. And the components work together differently if they were combined in a different way. The components in a particular configuration allow for certain operations and meaning-making. I wasn’t sure if I followed his understanding of “object technology”, but the general idea of procedural meaning seemed to make sense.

He talked about the Baudelaire poem “A une passante” which “expresses a unit operation for contending with the chance encounter.” It’s love poetry about the fact that the woman walking away in the busy and modern Parisian atmosphere will never be someone the author will meet. Walter Benjamin named this idea “a figure that fascinates” as it isn’t about the woman so much as a lost chance at connection.

Baudelaire was trying to figure out how to make sense of this new modern city life. This chance encounter idea was kind of new. The loneliness despite being among so many people was new.

Decades later when Charles Bukowski wrote “A woman on the street” it similarly was about that figure that fascinates, that lost chance to connect. Bogost argues that this concept went from being a novel experience to a meme-like cultural understanding. In a way, everyone understands this concept now, as everyone knows what living in modern society is like, and so instead of needing to describe it in detail, you can use shorthand.

It became a unit operation, a way to help us understand the meaning behind it all.

And then Bogost explored how it applies to The Sims expansion Hot Date, exploring the unit operation in the simulation that the game provides of modern urban living.

And the book was filled with similar analysis across multiple types of media.

I think one major takeaway I got from Unit Operations was the idea of simulations, and games in particular, being necessarily subjective. Bogost’s definition of a simulation focuses on the gap between what the simulation represents and what the user brings to understand it.

But I think that in light of complaints by some gamers that politics should stay out of games, I think it is interesting that there is this idea that all games are necessarily political because the game creators had to decide what to simulate and what not, what to put in and what to ignore, what to model and what not to.

I think I am glad that I read this book now as opposed to when it was released, because I don’t think I would have understood nearly as much. I expect that if I reread this book in five or 10 years that I’ll pick up some nuances or learn that I completely misinterpreted an aspect of it that I would grok much better then.

But I really appreciated how this book brought together so many seemingly different subjects. I find I can be fascinated by anything, and this book put a lot of anythings within easy reach and allowed me to see them all next to each other in a very satisfyingly holistic way. I remember finishing it and thinking, “I wonder how often unit operations will come up in other works” but I did not see them mentioned in his other books, and I wondered if it meant that the concept did not catch on.

How to Do Things with Video Games

How to Do Things with Videogames

In 2011, Bogost published How to Do Things with Video Games and explored the relevance of games as a medium by analyzing what spectrum of possible uses they can be employed.

I mean, you can play games, sure, but more than that, games can be used to make art, or to train, or to persuade, or sell, or exercise, or anything in between.

Each chapter explores one use that games have already demonstrated they are capable of. Rod Humble’s The Marriage usually comes up when talking about games as art, but there was a chapter about using games for politicking that touched on Bogost’s own work in creating a game for a U.S. Presidential election. There was one chapter on promotion that focused a bit on Burger King’s series of Xbox games, comparing it to similar efforts at promotion in the 80s and demonstrating that games have a long history of allowing people to do a variety of things with them.

I think one thing that struck me was that Bogost argues that games aren’t just for the stereotypical gamers anymore. The idea of the gamer will be as silly as the idea of the movie watcher. You just have people, and people might play games. A few years after this book came out, there was an ugly and sometimes violent backlash against women who wrote essentially the same thing. I don’t recall hearing Bogost getting the same vitriol thrown at him, but I could be wrong.

How to Talk About Video Games

How to Talk about Videogames

The next book I read was 2015’s How to Talk About Video Games, which addresses the idea that games, while different from other media, shouldn’t be treated as either special or less than.

Specifically, Bogost was unhappy with the idea of “games writing” or “games criticism” because it risks isolating games from the rest of the world. People can look down on games, and they can get away with it because society as a whole looks down on games.

In the intro, he says “This is a book full of … attempts to take games so seriously as to risk the descent into self-parody. Or even, to embrace that descent, since caricature is another means to truth.”

And it is here that I have to say, at the risk of offending Bogost, that multiple times in the previous books I thought to myself, “Ok, are we actually being serious here, or is this an elaborate joke?”

Around the time I was reading Unit Operations, I saw Bogost tweet “Sbarro Studies, Year One.” Clearly, THAT was a joke, but there were times where I fully expected it to be mentioned in the wide array of topics and subjects that the book addressed.

How to Talk About Video Games is a series of chapters that offer some kind of analysis or criticism about games or game publishers or the culture in which a particular type of game is popular.

My favorite chapter is the one about Ms. Pac-Man titled “Can a Gobbler Have It All?” It covers the pre-history of the game, going back to insights about the Atari 2600 again, the way arcade machine enhancement kits functioned both technically and economically, and finally argues that the creation of Ms. Pac-Man the game and the character has a deep connection to the roles women have in society.

Bogost admits that making parallels to the creation of Eve from Adam and to women who want to excel at a career and a family life seems absurd, but then proceeds to make a very compelling case by talking about how the game character was marketed, the story within the game, the origins of “Ms.” both as an abbreviation and as part of the title of the game, and more.

She is, after all, the first female lead in a videogame. Everything Pac-Man can do, she can do – and better. Her job is less predictable and more exciting, making it more challenging and rewarding. And yet Ms. Pac-Man is a traditionalist, a family woman willing to make a home with the right man – one whom she chases as much as he chases her – and a mother, able and willing to care for her Pac-progeny.

Bogost argues that the culture around games has fooled itself into thinking it is bigger than it really is. I am reminded of an article I once read in The Escapist when it was new and still trying to recreate a print magazine experience awkwardly on a web page, in which someone was surprised that there were gamers who didn’t read enthusiast magazines and websites about games. That people showed up at GameStop or Babbage’s and just didn’t know what the heck they were about to buy.

But there are a lot of people who don’t know inside baseball about the game industry, and it is easy to think, with an industry that has eclipsed Hollywood’s revenues, with more people playing games than ever, that it’s them who are weird.

I think the conclusion for Bogost follows from How to Do Things with Videogames, that rather than double-down on insisting that games are the most important medium of expression, and therefore marking them as different and special from the world, we can just live with games. There is no need to insist on the one true game that only gamers play. Games are for everyone, and there can be some games that appeal to only certain audiences, and games don’t need to be a sole focus, and that’s OK.

Play Anything

Play Anything

Play Anything, published in 2016, is one of the deepest dives into the concept of play that I’ve ever read. Which, as I already admitted I am not an academic, might not mean much, but still.

It also surprised me because it was about how to enjoy life, and as I turn 40 and keep an existential crisis at bay each day, this was an important message for me to receive.

I loved the beginning in which he talks about the modern popular use of irony as a way for people to avoid deciding whether or not they “mean to mean” something, as a way to avoid engaging with something to protect against disappointment or disaster.

Are you wearing that t-shirt of that brand as an expression of how much you like that brand or as a parody of people who would do that? With irony, you don’t have to choose. You can be neither of them. You can avoid what you are afraid of, which might be that brand betraying you by turning out to be a terrible faceless corporation after all, or that rejecting the brand isn’t very interesting.

So there’s an indecisiveness to engaging with things that comes out of fear, and our world today has a lot of things. Bogost argues that rather than hoping for something to be more than or less than it is, we can take it and accept it for what it is.

Perhaps the problem that afflicts us is not having too many possessions (or too few), or too many choices (or too few), but in failing to know how to treat anything with enough respect that its existence feels like an opportunity rather than a burden. And not an opportunity because we get something back from it or because we can put it to maximally optimized use, but because we can train ourselves to approach it for exactly what it is, rather than wishing it – or we – were something different.

The theme of treating reality honestly, of accepting what is, and of entering into relationship with that very real reality instead of trying to manipulate it into something it isn’t comes up a lot.

Play for Bogost isn’t compatible with irony, in which you hold things at a safe distance, neither accepting nor praising nor rejecting them.

Bogost argues that play is an inherent property of things. Irony’s position is that things aren’t going to be sufficient, and play’s position is that, duh, of course they aren’t, and that limitation in things is interesting and potentially enjoyable if you come at it the right way. Play is about doing what you want with what is there, and fun comes from exploring the possibility space there, especially when you think you’ve seen it all.

It’s not just mindfulness, about being aware of my own thoughts about them, but an awareness of everything else that isn’t me.

It’s about seeing things, really seeing them, paying attention to them, and doing what we can with them without being disappointed that they don’t offer something they can’t.

Conclusion

I felt a sort of kinship with Bogost. Here’s a person who also seems to love to explore a wide variety of topics, seeing and finding connections between different areas of study, and expecting to find that those connections exist.

As a game developer, as someone who is trying to create meaningful experiences through entertainment, I think I have gained a much greater appreciation for what is at stake, what the work involves, and how it relates to life in general.

I recognize certain modern debates as continuations of discussions that have been happening for centuries related to other media. I’ve found that my understanding of games as a medium has been grounded a lot more.

I think it is interesting to see how some things have borne out over a decade after he wrote about them, such as how relevant games are in politics or how the concept of the gamer is still alive and well despite the fact that pretty much everyone plays games.

And I think I’ve gained an appreciation for living a life in a way that I can appreciate living. People say life is short, that you should do what you love, that you can stop and smell the roses or practice gratitude or whatever. Maybe it is also due to the pandemic revealing a lot of the absurdities we as a society have tolerated needlessly and sometimes fatally, but I’ve found myself more and more seeing situations for what they are. While I can’t say I’ve found a way or motivation to play in a dysfunctional corporate environment or play in the misinformation surrounding COVID-19, I’ve given myself permission to have some agency in whether I participate in someone else’s constraints or my own.

Life is more enjoyable when it is honest and authentic, when you can explore the possibilities it provides, and when it is well played.