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
Personal Development Politics/Government

Are We Invested Or Just Watching?

I subscribe to the great newsletter Reimagined by Nicole Cardoza (who, by the way, turns out to be a magician and now I hope to see her whenever she tours next), formerly Anti-Racism Daily, and the latest piece was about the weird publicity stunt of Blue Origin sending Katy Perry and an all-women group up into to space, presumably to promote and normalize space tourism.

Cardoza points out that while many people think that the science that NASA does is important, space tourism isn’t exactly a priority.

Yet, the current Republican administration seems focused on doing the opposite of what we, the people, want, and the marketing campaign to send an all-women crew seems to be out of step with the demolishing of DEI and erasure of women astronauts, among other prominent women in other industries and in history in general.

These private companies need public dollars to achieve their goals – including their hopes to scale their own commercial flights. That means that for this to work, the government will have to cultivate awe – not just for space exploration, but the billionaires that now govern it. It doesn’t help that Bezos and Musk, the new faces of space exploration that own Blue Origin and SpaceX, respectively, aren’t exactly media darlings. We deserve to be treated as active investors in this endeavor, not just people in the audience.

I liked this part. I think it captures some of what bothers me so much in tech and in politics. Many years ago, I remember Microsoft was going to invest a lot of money into schools to teach copyright to the youth.

That sounds kinda great, except when I read that it was geared towards teaching them to respect the creative works of major companies such as Microsoft, instead of teaching them that they, too, can create and enjoy the protections of copyright.

Basically, instead of teaching how copyright is for everyone, they just wanted to train everyone to be good consumers.

It was gross then, and it is gross now.

The destruction of the American government that has occurred over the last few months can be summarized roughly as the incredibly filthy rich thinking that they should control the fate of everyone else. The rule of law, equality before the law, checks and balances, regulations, etc … all of that just gets in their way.

And they strongly believe that they have the right and duty to get rid of it, and that your role is to be subservient to them, to be good consumers.

They expect everyone else to passively accept it.

As Cardoza says, we deserve to be treated as investors. But the rich and powerful are moving fast, because breaking everything quickly before everyone realizes how invested they were in the existing system means it is harder to recover.

I’m not sure how many people have come to the realization that there is no reversal of course, that we can’t go back. Our reputation in the world is in tatters, our systems are broken, and the only options are to dream up a new world order that is more in line with what we, all of us, want rather than what a handful of incredibly wealthy people had come up with.

Categories
General Politics/Government

Books I Have Read: Log Off by Katherine Cross

Social media may be fun. It may provide opportunities, economic or otherwise. It may allow individuals to find others with similar interests.

But according to what Katherine Cross wrote in her latest book, Log Off: Why Posting and Politics (Almost) Never Mix, social media is pretty much only good at solving problems…that social media created in the first place.

Log Off by Katherine Cross

And the problems it creates can be big. Ugly and sometimes deadly harassment campaigns that utilize social media to be efficient and impactful can likewise get shut down thanks to social media. But again, the problem only existed because social media made it easy to exist.

Cross argues that social media is NOT good at solving other problems. Despite promising movements such as the Arab Spring that seemed to indicate that social media was good for democratic movements and for activism, most social media-based activism is ineffectual and eventually fizzles out.

Posting an earnestly written message online to spread awareness might feel impactful. You are saying something important, and the entire world might read it instantly.

But the nature of the algorithms, the interests of the people who own the social networks, and the affordances provided by the dopamine hits when you see likes and shares and reposts (as well as the angry replies) all combine to produce what is essentially nothing more than a very compelling and distracting entertainment.

It’s a form of entertainment that you pay for with your attention, time, and energy, and it can give the illusion that it was attention, time, and energy well spent.

Real collective action, real social movements, real impact comes from doing real work with real people, and social media provides a very poor substitute.

Much of the book is spent juxtaposing individualistic and collective perspectives. Social media, like much of capitalism, tends to encourage personal, individual solutions to what are collective/systemic problems. I appreciated reading the chapter about how social media seems to encourage bleakness and despair, enough that people feel the need to defend themselves by buying a gun and learning how to be self-reliant in an apocalypse.

(Of note, this book was published before the 2024 election, and reading it today, it feels kinda quaint reading about a younger Bluesky’s potential and Twitter’s meltdown and the apocalypses that we could see then)

But getting yourself a gun to protect yourself is an individual solution (one that the gun industry would happily scare you into accepting).

“In such circumstances, it can be hard not to look admiringly at the one thing that has always seemed to stop fascists dead in their tracks. Literally. Armed resistance. So why not get a little bit of that power for yourself? To protect yourself, and your family, from evil people who wish you harm? Isn’t the Second Amendment there for you too – and isn’t that what’s it’s for? Arming the citizenry against tyranny?

In the US, in this exact moment of pitched terror about the resurgence of fascism and the impending climate apocalypse, there is a very real belief among a bunch of frightened queer people and leftists that all the extremists who cheered on the execution of trans people, or the rape of a celebrity, who called a white nationalist terrorist a martyr for the cause, will come after them, and that resistance will only come from the barrel of a gun. In reality, they’re simply soothing themselves with another private non-solution to a collective problem, sold to them by social media with all the ruthless precision of a targeted ad.”

Cross goes on to argue that Second Amendment rights and the protections that goes with those rights does not, in fact, extend to everyone. The law might say one thing, but historically we’ve seen how there are double standards depending on who is wielding the weapon and who the police and the state want to wield those weapons against.

“In theory, the Second Amendment should protect all Americans’ right to own guns equally, but it doesn’t. Non-white people, leftists of all backgrounds, and anyone else who doesn’t fit the aforementioned frontiersman narratives have all taken up arms only to be literally cut down by the state, without a single peep from the NRA in defense of people who ought to be, by all rights, their fallen martyrs.”

I’ve seen discussions by some trans people and various left-leaning people talking about how banning guns would actually leave them defenseless, that they need those guns. And while Cross doesn’t think no one should be able to defend themselves, she does point out that the fantasy and illusion social media presents hides the reality of the work it would take to become the kind of person who might be willing to use a weapon in self-defense. It’s more than the cost of the gun and learning how to shoot.

Cross argues that even if weapons do sometimes become necessary, what worked against fascists before was not merely random people shooting them. It was organization. Guns and violence get valorized, especially on social media, when the real work of revolution and resistance also takes an army of non-militant roles such as nurses, translators, and more.

In the face of Project 2025 rolling back or destroying almost half (as of today) of the US government so far, we’re going to need collective action and organization to meet the needs that the government will no longer provide (and more that it wasn’t already providing in the first place). It is entirely possible, and maybe even likely, that things will get violent in the near future, but merely arming people won’t be enough.

“I can think of nothing less effective against fascism than scared, isolated people quaking with guns in hand, not talking to each other or making serious efforts to organize and pool their resources.”

What I took away from this book was that social media is fine if you treat it as mere entertainment, and it might be fine for finding others who are like you or have the same interests, but if we want real solutions to real problems, posting and doomscrolling aren’t doing enough positive things to outweigh the psychological damage and sapping of energy it entails.

Social media tends to make some minor things loom large (especially when reporters from major media outlets report on them and make them “news”) and gives the impression that “everyone” is saying something, when in fact, a few handfuls of Extremely Online(tm) trolls do not statistically represent 340 million people. We don’t take cues of what to pay attention to from a classroom of 1st graders, yet it is easy to think an equivalent-sized group of angry replies means that the world agrees with them.

I’ve long stopped actively using Twitter, and for some time I was using Bluesky as my new online home, and to a lesser extent Mastodon.

I was already questioning how much energy I was spending making these networks stronger and more valuable for others when my home on the Internet is really this website you are reading this post on right now. And I was questioning how much of my energy and time could be dedicated to doing something real and lasting.

I help put on the Central Iowa Trans Lives Fest each year, for instance, and while social media might get the word out somewhat, much of the real work is in reaching out to people and signing up vendors and coordinating volunteers and emptying the garbage bins. It is gratifying being part of the group that puts together a major event for people to celebrate being who they are, especially in the face of despair in our political reality, especially as Iowa becomes more and more hostile to families and friends alike.

But if I spent a ton of time posting online, arguing with trolls, and pretending that was helping to make that event successful or improving the conditions of life in Iowa? I’d be deluding myself, and the companies that provide social media are happy to help me in that delusion as I help them create more value for their shareholders.

And I would be squandering opportunities to make real connections and organizing for real change in my community.

There is a lot that the Internet and the World Wide Web provides that can be a force for good. Social media hasn’t really lived up to its promises, and unless your job is being a social media influencer, it probably isn’t worth all the labor of making the owners of the platforms richer while we all get poorer.

Social media can be fun, but taking it too seriously, which is seriously at all, is a waste of time.

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!