Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report: Upgrading to SDL3

Last time, I reported that I had started working on my first sprint for a Major Update(tm) for my strategic leaf-raking business simulation game, Toytles: Leaf Raking.

This past week I started the work of migrating my code from libSDL2 to libSDL3.

Sprint 2025-MJ_2: Preproduction

In progress:

  • Update SDL2 to SDL3

Toytles: Leaf Raking

Technically, this work started in the previous sprint, but it was a very short sprint that started near the end of the week.

Also, this is a somewhat technical update.

Years ago, I wrote an abstraction over my usage of SDL2. SDL3 is a major change from SDL2, but I anticipated that the impact should be isolated to a few files that directly reference SDL2.

Even so, I’m finding that while many variables, constants, and functions are merely renamed, there are some areas in which SDL3 changed how it does things, or at least there is enough change that it requires me to spend time digging into it to determine if the changes are relevant to what I am trying to do.

For instance, the SDL2 to SDL3 Migration Guide mentions that “SDL_WINDOW_FULLSCREEN_DESKTOP has been removed” and that “Windows now have an explicit fullscreen mode that is set, using SDL_SetWindowFullscreenMode()” which makes it sound like I can’t do what I did in SDL2, which is use SDL_CreateWindow() for either fullscreen or resizable windows.

But when I looked into it, SDL_CreateWindow() still lets me pass in a SDL_WINDOW_FULLSCREEN flag. Creating a fullscreen window is still fine, but the way to set an existing window as fullscreen is different…something I never do in my code, so I don’t have to worry about handling this change in my own code.

It’s a little tedious, but the migration guide is very helpful, and the error codes are incredibly helpful:

include/SDL3/SDL_oldnames.h:1168:26: error: ‘SDL_RendererFlip_renamed_SDL_FlipMode’ does not name a type
 1168 | #define SDL_RendererFlip SDL_RendererFlip_renamed_SDL_FlipMode

That’s very thoughtful of the SDL3 developers!

And it also gives me an opportunity to look through some of my oldest parts of my code to see if there is anything I can also cleanup.

My hope is that I can get this migration work accomplished quickly early this week, and then I can make sure that the game still runs the same as before. Then I can start the work of updating the game itself.

Thanks for reading, and stay curious!

Want to learn about future Freshly Squeezed games I am creating? Sign up for the GBGames Curiosities newsletter, and download the full color Player’s Guides to my existing and future games for free!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report: Logos and Infrastructure

In my last report, I was concerned about how much work I identified for a Major Update(tm) for my strategic leaf-raking business simulation game, Toytles: Leaf Raking.

Last week, I put together an initial roadmap and started work on the first sprint.

Sprint 2025-MJ_1: Preproduction

In progress:

  • Update SDL2 to SDL3

Early in the week, I started looking into fun fonts to use for a new logo for the game.

The current logo, if you can call it that, is pretty simple and uninteresting:

Toytles: Leaf Raking old simplistic logo

So early in the week I started looking into fun fonts to use for a new log for the game.

I found quite a few, fell in love with one, then had to abandon it when it turned out that the font in question required me to pay a license fee for use in a logo for a limited number of uses.

So I found a few others and found that I can love a different font. Here’s an initial stylized logo that I really like:

Toytles: Leaf Raking new logo prototype

I toyed a bit with the kerning and outline, and a colleague added some iconography that showed some potential. Basically, don’t expect it to be the finished logo.

At the same time, though, I got really excited about the project upon seeing it. I think in the future I will spend time making a nice logo early in development of any new projects.

Later in the week, I set to work to finally update libSDL2 to libSDL3. I anticipate it might be tedious work, but I hope it isn’t going to require major surgery on my game’s code.

Thanks for reading, and stay curious!

Want to learn about future Freshly Squeezed games I am creating? Sign up for the GBGames Curiosities newsletter, and download the full color Player’s Guides to my existing and future games for free!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report: How Is this Backlog So Huge?

Last time, I reported that I was grappling with big questions regarding the scope of a Major Update(tm) for my strategic leaf-raking business simulation game, Toytles: Leaf Raking.

I started by putting together everything I currently would like to see in a Major Update(tm) and would worry about what to cut or streamline later.

For my last few projects, I have found that I tend to have close to 100 high-level tasks.

But those were new projects, built from scratch, and with my part-time efforts, they can take me sometimes a year to develop.

A Major Update(tm) to an existing game shouldn’t be so bad, right?

So why do I already have 70 tasks identified? It’s almost like I might as well create an entirely new project!

Many of these tasks are actually quite big, with some unknowns that I will need to identify and break out into their own tasks.

For instance, if I want to create a better looking town, it isn’t enough to just redraw the background, streets, and sidewalks. I would also need to redraw the houses in the neighborhood, including their yards, and the trees.

And of course the general store will need a facelift.

Store

And that’s just what I can think of offhand.

I’ve also been giving considerable thought to the general art direction as well as audio. I originally thought I would try to preserve the slapdash nature of the art while making it a bit more appealing, but now I am considering really focusing on the “toy” part of Toytles.

What if the game looked like it was a bunch of toys being played with by a kid with an active imagination? The houses would need to look like toy houses, with decals and painted blocks. The characters should look like action figures talking to each other with perhaps barks that sound like a kid is mimicking all of the voices.

Which of course might also impact the scope. But I’m taking my time with figuring this all out before I commit to development.

Thanks for reading, and stay curious!

Want to learn about future Freshly Squeezed games I am creating? Sign up for the GBGames Curiosities newsletter, and download the full color Player’s Guides to my existing and future games for free!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report: Asking the Big Questions

First, don’t forget that I’m asking for fan submissions for Clown Alley Creator. Send me your clowns, and I might share them here and on social media! See details at that link.

In my previous report, I broke down some of the ideas I had for a Major Update(tm) for my strategic leaf-raking business simulation game, Toytles: Leaf Raking, into a few major categories.

Toytles: Leaf Raking

This past week I had other priorities for my time and energy, so I didn’t make much progress on fleshing out the plan, but I did find myself chatting with a few people about what I am trying to do.

And it got me thinking about all sorts of things, such as:

  • What is the exact impact that I hope to have with this Major Update(tm)?
  • How much time do I want to commit to it?
  • Should I look into contracting an artist, which will cost money but save time (hopefully)?
  • Does one big release make sense, or should I break it up into frequent, smaller releases?
  • Even with the new look and feel I hope to go for, how do I find customers who want to play it?

No matter how big of a Major Update(tm) I want to do, I am confident that I can create a solid game development project plan for it.

But how do I determine how big of a Major Update(tm) to do?

Because I also have to think about opportunity cost: time spent on trying to improve the appeal of Toytles: Leaf Raking is time not spent making a new game.

The faster I can make this update, the sooner I can put it out there and promote it.

But I don’t work on GBGames full-time (yet), so I know that there is only so fast I can go. It takes me months to do what a full-time game developer might do in days or weeks, which means that while I might want to only dedicate a month, realistically I might find that I would put hardly a dent in the update in that time.

In the end, I’m trying to determine how much I want to invest in this Major Update(tm). It’s hard for me to determine because I do not have a ton of market research and insight that justifies such an investment.

It is entirely possible that my strategy game about running a leaf-raking business aimed at pre-teens and teens won’t benefit significantly from significantly improved production values. I want to see what happens if it does, but I also recognize that I don’t want to spend years of effort on it.

Thanks for reading, and stay curious!

Want to learn about future Freshly Squeezed games I am creating? Sign up for the GBGames Curiosities newsletter, and download the full color Player’s Guides to my existing and future games for free!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report: Getting Expansive with Ideas

Last time, I reported that I was starting to prepare for a Major Update(tm) for my strategic leaf-raking business simulation game Toytles: Leaf Raking‘s 10 year anniversary next year.

Toytles: Leaf Raking

This past week I spent time going through my old notes for the project, some of which date back to 2014.

I had some ideas that sounded good but got cut or changed as progress was made, and other ideas are…less good.

But I’m going through all of them to help me determine what I might want to put into this Major Update(tm).

I had a number of ideas that could be implemented relatively quickly, and other ideas that would require me to add entire features or systems.

At this point, I wanted to think about all the possibilities before limiting the scope by looking at the calendar, my capabilities, and reality.

But I’ve already started to categorize some ideas. Low-hanging Fruit are things like replacing background graphics, updating the font, using better sound effects, adding music, and updating the general user interface. These are things I can do without substantially changing the code or worrying about impacting the game play, but that I think will enhance things quite a bit.

Requires Some Effort to Enhance the Game are things that require me to add or modify code and art to support things that can’t be done yet. For instance, the game supports one save file, but there is no reason not to support multiple saves. There is no way to mute the audio, which makes sense since the game has no music yet, but I should allow the player to not only mute sound effects and music but also adjust their volumes. And I should create a proper ending, as right now the ending is quite anticlimactic.

And then there are Game Play Improvements, which not only require updates to the game but some hard design work to make sure that things are improved and not broken accidentally. I’ve mentioned this before, but I think the main game play of potentially getting interrupted by rain while raking leaves and needing to wait it out can be quite clunky. There are also awkward edge cases that result in what might be seen as unfair situations, such as finishing a yard at midnight and not getting paid because technically midnight is when leaves get added for the next day.

The first two are mostly technical in nature, as in I am doing art swaps or adding features with known constraints and parameters. The third is likely to be the most challenging because there is a risk of potentially unbalancing things and anticipating that I might need to do more work to rebalance the design.

I also have plans to update the app icon:

Toytles: Leaf Raking - app icon

Seriously, it could be a LOT better.

And I want to create a proper trailer and even add translations.

If you’ve played Toytles: Leaf Raking, I’d love to hear from you. What did you love about it, and what do you wish you could do in it?

Thanks for reading, and stay curious!

Want to learn about future Freshly Squeezed games I am creating? Sign up for the GBGames Curiosities newsletter, and download the full color Player’s Guides to my existing and future games for free!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report: Preparing for a Major Update

I recently released a few minor updates for my games on both Google Play and the App Store. As far as I know, any current requirements are met, and I have time before I need to worry about the next required update.

So I started turning my attention to planning a Major Update ™ for Toytles: Leaf Raking, my leaf-raking business simulation game that was originally released in 2016. I want to release that Major Update for its 10 year anniversary next year!

Toytles: Leaf Raking

So, what is going to be in this update? I’m still figuring it out, but the main pillars of the update will be improving the game play and enhancing the visuals and audio.

I still think Toytles: Leaf Raking is a good game, but there is a lot of room for improvement.

The gist of the game is that you are balancing a number of resources: time, energy, money, yard bags, the durability of your rakes, and your responsibilities to your clients. The weather plays a factor as well, as the wind on a given day will determine how many leaves you might need to rake to earn money, but any precipitation will slow you down as you can’t rake while it is actively raining.

But in practice, it is kind of clunky. If it is drizzling out, you’re supposed to wait 10 minutes and see if it stops. If the drizzle continues, you can’t rake leaves. So wait some more. And if you do get a dry spot, you might find that you need to stop raking if it is drizzling again. While drizzle operates in 10 minute increments, actual rain is an hourly event, so waiting 10 minutes doesn’t make sense unless it is to get to the top of the next hour.

And heavy rain is an all day event, which is likely combined with heavier leaf fall that you can’t actively manage until potentially the next day. Other than getting to rest earlier or meet new clients and shop for supplies, such days don’t let you do much, which isn’t exactly fun.

Later on, I wanted to retroactively make the game feel more alive, so I tried to give the neighbors personalities. Today, if you speak to them, they say different things throughout the season, but it was still quite limited, and in terms of your goal of earning enough money to purchase the Ultimate Item(tm), such dialogue wasn’t relevant.

I also recall that when I was making it that I purposefully made the graphics quickly. That is, I am no artist, and you wouldn’t mistake me for one when you look at this game. I found that I would spend way too long trying to make my art look less bad, and it was still bad, so I tried to avoid wasting time on improving the art and instead focused on making the game.

For example, here is a kitchen scene featuring your parents who give you advice and tips:

Toytles: Leaf Raking - the kitchen scene

I want to say that the background was a 2nd pass effort, but I also remember putting blobs of color on their plates without really having any idea what they might be eating.

In a way, the art has its charm (I hope?), and I want to try to keep it, but I also recognize that there isn’t a lot of consistency and it could be greatly improved. The HUD, menu buttons, and menu frames all look pretty basic and terrible.

The game doesn’t look too great in motion, which means it isn’t fun to watch someone else play and it is probably hard to follow what is happening. I added transitions between screens for one of the updates, which helped to make the game feel more user-friendly and intuitive, but most menus do not have it, so it is still quite jarring at times.

Music doesn’t exist, and the sound effects are very simple and minimal. There is a lot of room for improvement here.

I expect that the art and audio will be the easiest to improve, although it will still be a lot of work to add animations and effects.

But the hardest work will be improving the game play. I want to keep the core strategic focus on balancing resources, but I am considering a complete overhaul of the mechanics to make it more intuitive and more playful. I expect that I’ll be doing quite a bit of prototyping.

I am still figuring out just how much scope is going to be in this Major Update(tm). Maybe this should be a proper sequel? For those of you who have played Toytles: Leaf Raking, I will definitely be looking to hear from you about what you love and what you wish was better. 10 years is a long time, and I really want to celebrate.

Thanks for reading, and stay curious!

Want to learn about future Freshly Squeezed games I am creating? Sign up for the GBGames Curiosities newsletter, and download the full color Player’s Guides to my existing and future games for free!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report: More Google Play Updates

Last time, I reported that I was creating Google Play updates for all of my games to support 16KB memory pages.

I published those changes last week, so now you can play Toytles: Leaf Raking, Toy Factory Fixer, and Clown Alley Creator on your newer Android devices.

And if you’ve tried out Clown Alley Creator, send me your clowns! I shared my first fan submission last week, and I can share yours next! Learn how at this page, and I look forward to seeing what you come up with!

And don’t forget you can play all of my games on iOS, Windows, Mac, and Linux as well!

Meanwhile, I have started working on a major update for Toytles: Leaf Raking, which will be 10 years old next year. As I said before, I want to update the visuals and streamline the interface to celebrate, and I hope you look forward to it as well.

On a side note, I also did some decluttering of my office to make some of my game design prototyping tools more accessible for me to quickly pick up and use. I’ve been getting some ideas for new game concepts that are starting to excite me. Stay tuned!

Speaking of staying tuned…

Want to learn about future Freshly Squeezed games I am creating? Sign up for the GBGames Curiosities newsletter, and download the full color Player’s Guides to my existing and future games for free!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report: Updating My Other Games

Because Google Play imposes new requirements each year, I find myself updating my games to make sure they can continue to be available and updateable.

I recently released a new version of Clown Alley Creator on Google Play which is mainly updated just for this reason.

I have submitted an update for Toytles: Leaf Raking, which is waiting for a review. It took a lot longer to get the game updated, partly because my homemade underlying framework code that I use from project to project needed to get updated with the latest version, which required me to update the game’s code, then test it out to make sure the game runs like it used to.

I expect to have an update for Toy Factory Fixer this week, and I hope it isn’t as challenging to update.

The original deadline to get these compliance updates done was August 30th. Despite plans to get it done earlier, priorities were such that I couldn’t start addressing them until fairly late, and reviews may take even longer. Whoops.

Luckily I was able to request an extension, so now I have until the end of October, but I do plan to get the game updates out earlier.

Also due by the end of October is compliance with a different Google Play policy related to supporting 16KB memory page sizes. I believe I just need to use a later version of Android’s development tools to get that support automatically, but I will work on getting my games compliant sooner rather than later.

Meanwhile, I feel a little behind when it comes to my plans to create a major update for Toytles: Leaf Raking. Next year will be its 10-year birthday, and I’d like to celebrate with improved graphics and a streamlined interface for fans.

Thanks for reading, and stay curious!

Want to learn about future Freshly Squeezed games I am creating? Sign up for the GBGames Curiosities newsletter, and download the full color Player’s Guides to my existing and future games for free!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report: The Other 90% of the Work

In my last report I was working on ports for the various platforms I wanted to release my second Freshly Squeezed Entertainment project called Clown Alley Creator, a creativity tool about creating your own fun clowns.

I put in some major effort to finish the porting work, and I have released the game!

Sprints 2024-34 and 2024-35: Polish, Porting, and Publication Preparations

Completed:

  • Create iOS port
  • Create Windows port
  • Create Mac port
  • Create Player’s Guide

That’s right. I released Clown Alley Creator! You can get it right now.

Clown Alley Creator - feature graphic

But if you want to learn about the end of the project’s development, read on.

But seriously, go get it! It’s free, and it’s available for iOS, Android, Windows, Mac, and Linux. And when you create your own clowns, please take a screenshot and send them to me! I’d love to see what you come up with.

Anyway, I found the porting work in general was simultaneously straightforward thanks to the earlier porting work I’ve done on previous projects and also frustrating because each year there seems to be something new that I didn’t have to worry about.

The iOS port was fairly quick, once I got the latest SDL2 libraries. I had essentially made some scripts that handle most of the work for me, and so I was able to get the build up and in the App Store using Mac in Cloud without too much trouble.

The Windows port was similarly quick.

The Mac port, however, didn’t have as many scripts to handle things for me, and so most of the time was spent trying to automate and cross-compile, and ultimately I did a lot by hand. I will unfortunately need to replicate that manual effort for any updates in the future until I can figure out how to automate it. But I created a universal binary, which means it will run on Intel-based Macs as well as the new Silicon-based Macs.

Finally, I created the Clown Alley Creator Player’s Guide, which is a 18-page, full color PDF you can get for free if you sign up for the GBGames Curiosities Newsletter (see below), along with all of the other Player’s Guides I have created for other games.

Clown Alley Creator Player's Guide

With all of the ports done, I published Clown Alley Creator this past weekend, which if you were already subscribed to my newsletter you would have gotten an announcement about because I told subscribers about the release first! Another reason to subscribe, right?

All that’s left is telling people about the game. You know, the other 90% of the work.

So other than needing to address any issues as they come up and potentially creating a patch for the game, I anticipate that my current efforts are exclusively focused on reaching out to players, reviewers, and various other people in roles involved in talking about games.

If you know a favorite reviewer who covers creativity tools, cozy games, and such, please let me know!

Thanks for reading, and stay curious!

Want to learn about future Freshly Squeezed games I am creating? Sign up for the GBGames Curiosities newsletter, and download the full color Player’s Guides to my existing and future games for free!

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report: Linux and iOS Ports

Last time, I reported that I was working on the Android port of my second Freshly Squeezed Entertainment project called Clown Alley Creator, a creativity tool about creating your own fun clowns.

The porting work continues!

Sprints 2024-33: Polish, Porting, and Publication Preparations

Completed:

  • Create Linux port

In Progress:

  • Create iOS port

My goal was to submit the iOS version for review, but I found myself spending more time on the Linux port than I expected.

I had expected it to be pretty quick. After all, not only do I do my main development on a Linux-based system, I also setup build scripts to automate the work of building all of the custom libraries so I can bundle them together with the game in order to make the game work out of the box.

Unfortunately, my build scripts didn’t support the latest SDL2 libraries that I depend on, which required me to update quite a few things and change the process a bit to get things working. And then I had to figure out how to get the custom-built SDL2_ttf to not be 100+ MB.

For those curious about doing so, I had to run configure in a way that said not to build libharfbuzz:

            --disable-harfbuzz
            --disable-harfbuzz-builtin

Anyway, once I got the Linux port squared away, I focused my attention on the iOS port.

Luckily, my existing build scripts seem to still work mostly fine. I can build it and test it on my old iPhone.

Clown Alley Creator on iOS

Unfortunately, like the last time I needed to create an iOS port, my current Mac Mini is Intel-based and even though it is otherwise a perfectly fine and underutilized computing machine, Apple has decided it is obsolete and stopped supporting it with new OS updates years ago. And I need newer OSes and Xcode SDKs in order to publish or update my games in the App Store.

As I never use a Mac except to port my projects, and I don’t currently earn enough to cover the costs, buying a new Mac or even a used Mac feels too expensive at the moment. Last time, I used Mac in Cloud, and it worked out well, and I plan to do the same this coming week to finish the iOS port.

Hopefully I can do so quickly, get it up for review, and get it approved before the end of the month.

Thanks for reading, and stay curious!

Want to learn about future Freshly Squeezed games I am creating? Sign up for the GBGames Curiosities newsletter, and download the full color Player’s Guides to my existing and future games for free!