Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report: Transition Effects

Last time, I reported that I had started adding pizzazz to my second Freshly Squeezed Entertainment project called Clown Alley Creator, a creativity tool about creating your own fun clowns.

I managed to create a simple yet effective animation in the few hours I had last week.

Sprints 2024-27: Adding pizzazz!

In progress:

  • Create special effects when option changes clown preview

I know some people have access to a talented animator or use fancy shader effects, but I am pretty proud of this closing and opening curtain animation that I created using nothing but some math:

Clown Alley Creator - curtain animation

Basically, there is a static image of the valance above the curtains, then the curtains slide in, with the bottom easing in trailing the top to give the appearance of weight, then the bottom lags the top on the way back out. It’s a simple effect, and the animation is quick enough that it looks pretty good, and it is performant enough to run on machines that aren’t my more beefy development machine.

Meanwhile, I’ve sent off a build to my testers, and I am looking forward to getting feedback soon. I’ve got some more transition animation work to do, such as adding something to make it clear how the valances and curtain are staying up in the air.

I’m looking forward to the day you get to play it! To be the first to learn when Clown Alley Creator is released, sign up for my newsletter by clicking the link below!

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: Animating Transitions

In my last report, I had finalized the color options and fixed a defect in my second Freshly Squeezed Entertainment project called Clown Alley Creator, a creativity tool about creating your own fun clowns.

I had started and continued working on some transition animations.

Sprints 2024-26: Adding pizzazz!

In progress:

  • Create special effects when option changes clown preview

Clicking on different clown noses or hairstyles and seeing them immediately change in the clown preview is nice and all, but it’s not quite satisfying.

It doesn’t feel fun yet.

Particle effects are the obvious thing to add, but I wanted to add some fun transition animations. Some of the ideas I have in mind include clown pigeons carrying noses in and out, or a giant hand with a giant brush slapping on make-up.

I spent some time trying to figure out how to make sure that if the player has somehow picked a second or third option while the first animation was still occurring that multiple transitions can occur simultaneously and everything ends up fine in multiple scenarios.

Luckily I found that the transitions were quick enough that it wasn’t necessary. They are very fast transitions and aren’t meant to be an entire song and dance, after all. Any strange overlap isn’t likely to be noticed in less than a quarter of a second.

I ended the week without finishing the work, but I have a proof of concept with a red rectangle sliding in and out that shows it can work just fine.

Clown Alley Creator - proof of concept for transition animation

I expect to finish the work this week. It’s already May, and I’m trying to wrap everything up before this project’s expected release in June. Sign up for the newsletter (see below) to be the first to know when it is going to be available!

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
Geek / Technical Politics/Government

I’m Ending my 1700+ Day Duolingo Streak and Uninstalling

I’ve had Duolingo for many years. My goal was to learn Italian, and while I am still not conversational, I do find myself understanding some music more easily, and I can more easily understand the variety shows my parents watch on RAI on TV when I visit. But enough has changed with the company’s priorities that I stopped using Duolingo, despite having a 1734 day streak, and I plan to uninstall it soon.

Duolingo is very aggressive about ensuring that I stay engaged

Duolingo is very aggressive about ensuring that I stay engaged

My mom says Italian was my first language and that I “spoke it beautifully” when I was a toddler. Legend has it that I came home from pre-school one day and said I didn’t “want to talk Italian anymore”, that I didn’t like the language. Supposedly she slapped me for saying that, but I don’t remember the slap, and I didn’t remember any Italian.

Since then, I had taken a Saturday Italian class when I was in elementary school for a couple of months, but it wasn’t very rigorous.

I took three years of Italian in high school, and while I did well in the class, there is only so much you can do with memorizing vocabulary and Italian Christmas songs. I still found myself unable to follow any conversation between my parents and other members of my family and their friends.

So enter Duolingo. Self-paced language learning using the latest understanding in learning technology? Nice.

Before they completely overhauled the system a few years back, I remember it said I was 18% fluent at one point, and while walking in San Francisco with my wife, I remember overhearing a couple of older women speaking and realizing that they were speaking Italian because I could pick up about 18% of what they were saying.

The new system encouraged me to keep doing new lessons rather than keep reviewing older ones like I had been, and I think it really did help. They don’t pretend to grade your fluency anymore, but I’m confident that I can mostly parse sentences I encounter in real life.

I kept thinking that I should pay for it. The ads were annoying. But then one day, I discovered that I had finished the Italian course.

Instead of lessons on a trail, there was a now a “Daily Refresh”, and while it seems to cover past mistakes, it was repetitive and seemed divorced from the lessons in question. I am aware, for instance, that there are two words for table: the feminine tavola and the masculine tavolo. There is an appropriate time to use one or the other, but I was long past that lesson and cannot tell you today when I should use one or the other.

I’ve been doing Italian lessons twice a day for many, many months. I resented the gamification because there seems to be a subtle difference between encouraging me to learn vs encouraging me to be engaged with the app, and many of the changes feel like they have started leaning into the latter. And it works, which is what really annoys me. I want to learn Italian, but I sometimes realized I couldn’t go to sleep because I had a streak to maintain and hadn’t done my Duolingo lesson yet. I started caring about keeping the streak, or getting ahead in the leaderboards.

A good piece on how obnoxiously effective these kinds of user engagement practices can be on Duolingo is from Aftermath’s Riley MacLeod’s. My favorite line:

I absolutely do not want to engage in this cursed feature and turn my learning into a competition against strangers, but also damned if I’m not gonna beat the person below me.

Anyway, despite finishing Italian, I was about to finally start paying for it, if only to stop getting ads, but then I saw ads pushing their AI-powered Duolingo Max offering. While it sounds like it could be a really good use for AI, it just makes me think about all of the water and other resources used to pretend to have a conversation with an AI agent, plus knowing how much of AI is trained through plagiarism. It completely turns me off.

And then there was the recent news that Duolingo was getting rid of all of their contractors and replacing them with AI, and that’s when I decided I was done with Duolingo.

Learning a new language is hard, and I imagine creating a platform to learn many languages is really challenging. Each language has unique quirks, idioms, and more, and so I am impressed with the system existing at all. Still, I found myself struggling with the app badly pronouncing some words occasionally. It’s frustrating to find out that I got something wrong in a way that wasn’t my fault, especially since sometimes it means losing my ability to keep learning until I wait long enough to gain a heart back.

Clearly the course only take you so far and I wasn’t going to measurably learn more at this point, and yet I was compelled to stick to the top of the Diamond League and keep my streak alive. The lessons sometimes introduce concepts without explaining them well, which meant encountering idioms with no chance of getting them right or words without a way to learn what they mean without just purposefully getting them wrong to get the feedback. And of course the ads are obnoxious and slowly stealing precious minutes of my life.

Basically, I realized that I was tolerating quite a bit already.

Now that there was a push for using AI instead of real people, I can only imagine the kinds of errors I already encountered only multiplying with no real way to submit feedback that will get meaningfully handled. I can’t see the app getting better, and I no longer wanted to support the company.

As for actually learning Italian? I might just need to make plans to travel to Italy, take actual classes, and just immerse myself in books, movies, and music. Maybe I can even turn on Italian language options in the games that I play.

I’ve seen some people talk about replacing Duolingo with other tools, such as Mango Languages, which is supported by my local library. Let me know if you know of a good alternative that you love, although I worry that more and more, it seems good technology goes bad, whether you believe it is due to “enshittification” or “The Rot Economy”.

But for now, I’m exercising my ability to opt out.

Categories
Game Design Game Development Geek / Technical

Follow Along with this Game Feel Book Club

Full-time indie game developers Tim Beaudet and Justin Six are starting a book club focused on game development-related books.

The first book will be Game Feel by Steve Swink, and Episode 0 was released yesterday.

In this episode, they haven’t read the book yet, but they did go through the chapter titles and talked about what they think the book will cover, plus they gave an outline and schedule for when they will live-stream their discussions.

It was insightful to hear them talk about how they think learning about Game Feel may or may not help in terms of what impact it might have on sales, especially since someone has to have already bought the game before they experience the feel of a game. Tim posits that any multiplier for a game’s success that comes from an investment in game feel is probably more downstream once the game already has a critical mass of players.

The next episode will be May 2nd at 11am Eastern Time.

I read the book a few years ago, but I think it would be great to reread it and follow along with Tim and Justin, and I look forward to seeing Justin learn what Metaphor Metrics are.

Categories
Game Design Game Development Geek / Technical

Freshly Squeezed Progress Report: Even More Colorful Options

Last time, I reported I had started adding shades of gray options and was figuring out how to add more colors to my second Freshly Squeezed Entertainment project called Clown Alley Creator, a creativity tool about creating your own fun clowns.

I managed to create something I feel satisfied with.

Sprints 2024-25: Color options

Completed:

  • Create wider variety of primary/secondary color options
  • Defect: Creator mode menus blank out sometimes based on what options were last selected

As I mentioned before, I had come up with a way to programmatically create the various color options. Originally I had 19 pages worth of color options to go through.

Clown Alley Creator - multiple color options

I showed my wife, and her immediate reaction was that it was too much. And she was right, especially when I looked at two different pages of green options that looked identical to me but that were in fact slightly different shades. It is possible to have too much of a good thing.

So I tried to reduce it to 10 pages, but then ultimately decided on 5 pages.

Clown Alley Creator - a sufficient number of color options

It feels like a good way to provide a wide enough variety of colors while also preventing the player from being overwhelmed with the options.

Once I finished this work, I then handled a defect involving menus disappearing in certain contexts, and I addressed it quickly.

So the next thing I started to work on was adding some pizzazz! When you make a selection in creator mode for a new nose or make-up option, there should be some feedback besides the clown instantly changing.

The simple thing is to add particle effects, but I wanted to add other possible animations as well. I ended the week in the middle of creating some code to support such animated transitions, and I expect to finish it this coming week.

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 Color Options

In my previous report, I was working on logic for managing all of the extra colors I want the player to have access to for my second Freshly Squeezed Entertainment project called Clown Alley Creator, a creativity tool about creating your own fun clowns.

Despite other obligations, I managed to make some good progress, but I’m not finished yet.

Sprints 2024-24: Color options

In progress:

  • Create wider variety of primary/secondary color options

Most of the logic and infrastructure for this work is complete, so it is basically a matter of creating all the colors.

And I would like to provide a large variety of color options, and doing so has become one of those “Oh, I had no idea that there was some design and purpose needed” kind of things.

How hard is it to just provide a bunch of color options in various hues?

Well, I didn’t want to provide a bunch of colors in a seemingly random order, and I wanted it to be easy for a player to find the color they might want, so I can’t provide infinite options or I would risk overwhelming them.

So I decided that each hue might get a set of shades. Adding shades of grey is easy enough:

Clown Alley Creator - color picker with pages

I’m still in the middle of coming up with a good solution for more colorful options. If you are interested in the technical details, currently I’m trying to start from a particular H value for a color in HSL (hue, saturation, lighting) format, then creating variations by modifying the L value, then converting to RGB format.

I got to the end of the week before I got to finish the work, but I’m hoping it provides a variety of shades for each color that feels intuitive for the player while also letting me generate a decent quantity of options easily.

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: At Least There Is Forward Motion?

Last time, I reported that I was working on adding more color options for my second Freshly Squeezed Entertainment project called Clown Alley Creator, a creativity tool about creating your own fun clowns.

I wasn’t able to spend as much time on it as I would have liked, partly due to preparing my taxes, but I did put a small dent in it.

Sprints 2024-23: Color options

In progress:

  • Create wider variety of primary/secondary color options

Unfortunately, I don’t have too much to report as I only managed to dedicate a couple of hours of effort.

Basically, I needed to update the color picker menu so that it is paginated, which means adding the previous and next buttons to navigate those pages. Not a big deal, but it was still a set of tasks to work on.

But most of my effort was on behind-the-scenes logic for handling this menu in a more robust way in order to support the wide variety of colors I want in the game.

I already feel like I am moving too slow as a solo developer with a day job, so when I have a very unproductive week, even if I have good reasons such as being on vacation or as in this case focusing on taxes, I still feel like I’m doing a terrible job. I had expectations that I would have released this game to testers already, and so I feel like I am weeks behind.

But I need to remember that the smallest effort in the right direction is still forward motion. And I’m still easily on track to publishing this game by June, as I had originally planned. It’s not like I have a publisher breathing down my neck. It’s just me, breathing on my own neck (you know what? This metaphor feels weird. Don’t try to picture that). Everything is fine.

Anyway, if you want to learn about the game’s release, look below for how to sign up for that announcement!

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: Expanding Color Options

In my last report, I was trying to create an Android port for play testers to try my second Freshly Squeezed Entertainment project called Clown Alley Creator, a creativity tool about creating your own fun clowns.

I continued working on it, especially after discovering a defect that I wanted to address first.

Sprints 2024-22: Color options

Completed:

  • Create skin color options

The ability to customize colors for everything was put into the game quite early. While I have been spending time adding plenty of hair, nose, and make-up options, I haven’t address the placeholder colors until now.

So I added options for skin color.

Clown Alley Creator - skin color options

Meanwhile, since the placeholder colors were quite saturated and limited, it made it difficult to create clowns that didn’t come off as a bit too intense, which is not my intention at all!

Clown Alley Creator - original highly saturated colors

Here’s the same clown but with some more subdued colors:

Clown Alley Creator - new colors

It is subtle, and maybe there are more extreme examples I could show, but the bigger point is that more colors means more options for player creativity.

Adding more color options seems like such an easy thing to do at first, but updating the color picking interface to allow for pagination hasn’t been so straightforward. I don’t want to give the player infinite options because that could be overwhelming and hard to navigate, but I also don’t want to give too few options.

Clown Alley Creator - more color options

I shrank the buttons so that more can appear on the menu at a time, but I still need to add menu page navigation controls. Figuring out the order in which I lay out the colors is also something I’ve never had to do before. While I am sure that there might be examples from other games or apps to look at, it seems like thing kind of thing to be more thoughtful about.

Meanwhile, I thought I had addressed it already, but I discovered a defect in which the menu buttons all seem to disappear if you navigate the creator mode menus in just the right way, so I want to fix that issue before handing it off to testers.

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: Android Audio Woes

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

Sprints 2024-21: Android port for play testing

Completed:

  • Create Android port

At the end of the previous week, I had created an Android port that functioned but that was missing audio. Mostly.

As I suspected, I forgot to update my Android build scripts to deal with some subdirectories I made for Music and Sounds, so once I addressed it, I had sound effects.

But I still had no music. Weird.

My initial investigations told me that my code definitely thinks that the music is playing. It wasn’t a volume issue.

But eventually I looked at the logs and found a line that said that there was, in fact, a problem loading the music file. “Unrecognized audio format” was not the error I was expecting, though.

Most of my sound effects are .wav files, and my music file is also a .wav file. What gives?

Well, it turned out that libSDL2_mixer has a configuration flag that you can use to specify that you want to support .wav music files. My custom-built version does not have it. Oddly, .wav sound effects are supported just fine out of the box.

Do I want it? No, the point of limiting support to .ogg files primarily is that I want as slim a library bundled with my app as possible.

And speaking of slimming things down, that .wav music file? It was 9+ MB! THAT’S HUGE!

So I created a .ogg file instead, which doesn’t even take up 1MB, and music works in my Android build just fine.

I also made sure to use the latest libSDL2 and related libraries, which required a few minor updates in code.

Clown Alley Creator - Android build

At this point, I want to test things out on my end before releasing it to testers, but I expect to have a build ready for them this week. I’m looking forward to the feedback.

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: New App Icon

In my previous report, I worked on adding consistency to the visuals as well as providing more options for eyes for my second Freshly Squeezed Entertainment project called Clown Alley Creator, a creativity tool about creating your own fun clowns.

There’s still a lot of polishing to do, but I wanted to focus on getting an Android port ready for playtesters.

Sprints 2024-20: Android port for play testing

Completed:

  • Create eye options
  • Create Android/iOS/Windows icons

I added some more eye options, thanks to some code I added to take advantage of SDL2’s ability to render sprites flipped, something my code has never had a need to do before. Instead of having left and right eyes that are identical, they are now mirrored, which means I can show eyes that are slanted or that have eyelashes streaked in one direction.

Clown Alley Creator - clowns with mirrored eyes

As I head into the final week of March, I’m focused on getting the game ready for playtesters, and the easiest way is to make sure that the Android port functions.

Which means it was time to work on an app icon. I came up with a few options, and I asked a few people for feedback.

Clown Alley Creator - app icon

Clown Alley Creator - app icon

And I ultimately went with this one:

Clown Alley Creator - app icon

My wife says that the colors are inadvertently creepy, and I am very much trying to avoid the ability to make creepy clowns. So what this told me was that I needed to add a wider variety of colors.

Building the Android version worked just fine, thanks to me creating automated build scripts for previous projects. I found, however, that there was no music and almost no sound effects, which probably means that I forgot to include them in the final Android build and it should be an easy fix for this week.

I expect to have the first Android build available for testers in the coming week.

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!