Week 46, 2024 - Solo Games
Yesterday I wrote about a topic I’m far from being immune to: Impostor Syndrome. As with many of my articles, I focused on new Engineering Managers, but the patterns and mitigation mechanisms I found working might be useful for a wider audience too.
We’ve also launched a new episode of our increasingly professional but still plenty of fun podcast, The Retrospective. This week, we’ve talked about the differences between a Senior Engineer and an intermediate one. This is a crucial development milestone, because up until now, if you were a programmer, simply focusing on the technical aspects of the job was a solid strategy. Not anymore — in fact, programming expertise is probably the “easiest” of the areas one needs to pay attention to at this career stage. If you are getting close to the Senior Engineer level, or have people in your team aiming for that promotion, our episode has useful tips on what to pay attention to. Find everything here.
📋 What I learned this week
I enjoyed the product meetup a few weeks ago so much that I decided to do something similarly far from engineering and leadership topics: a game developer lecture! Sébastien “deepnight” Benard was the lead developer and game designer of Dead Cells, a popular roguelike action game, and has been a solo game developer for a while now. The organizers of the Indie Game Masterclass invited him to talk about how games trick our brains, and lessons from his indie / solo game developer experience.
My notes from the talk:
- If something is hard in your game, ask yourself: “Is it meant to be a challenge?” If not, find ways to make it (secretly) easier for the user. For example: the hero shouldn’t fall into lava if they miss the platform a bit, because the challenge of our game is supposed to be killing enemies, not moving around.
- What seems like random is not random at all. The weapons the enemy drops when killed, what’s in the loot, how hidden is the exit - all these are based on previous gameplays and adapted accordingly, to keep us engaged. Dead Cells even has a “loot director” entity in the code to adapt the percentages and make these decisions, to secretly balance the challenge level of the game.
- Identify the key differentiating elements in your game and polish those to the max.
- A big trap for solo developers: having too many ideas, not finishing anything, starting with their dream project, and losing interest when facing challenges. All can be solved by first focusing on a simple, no-frills project, and taking it to the end.
- An interesting idea to help stay focused: dedicated Spotify playlists for various different tasks, so the brain can associate the kind of work with the music genre.
- He doesn’t work at home, but walks to a nearby office every day, to manage work-life separation. This way it’s easy to avoid working at home - it’s still hard to avoid thinking about work at home though.
- He’s using a small programming language and his own level designer and game engine to create games - but he had 25 years of experience when he started to work on these tools! If a beginner focuses on creating his own tools, it would be like a painter starting out with creating a new kind of pencil.
Overall, great talk, supernice guy, and a fun way to spend a weekday afternoon. Moving on!
As the DORA report showed, one of the most widespread uses of AI in Engineering is information summarization, and I faced an interesting problem this week in this area. I wanted to create tags for our previous podcast episodes for The Retrospective site. My original plan was that I export the transcripts, and ask an LLM to create a tag cloud. However, the verbatim transcript of more than a dozen episodes ended up being too much for the context window of the LLMs I tried (we talk a lot!). Finally, I had an idea: use AI to process the transcripts and create intermediary summaries, shorter texts that combined can still fit into the context window to create the tag cloud. It was a success - though there's a risk that without human oversight, hallucinations, and similar AI mistakes can creep into the final product and decrease its quality easier.
A small tool for the end: did you know that MacOS has a built-in program called textutil
that can convert between text file formats, so you can do textutil -convert txt *docx
to convert all the Word documents in the current folder to plaintext files? I didn’t, until today!
🤔 Articles that made me think
Give Them The Laptops They Want!
Rant from Andrew Boyagi, Head of DevOps Evangelism (what a cool title!) at Atlassian, about denying developers’ requests to work with powerful laptops. He does a great job explaining the (not so) hidden costs of making your systems run on sub-par hardware. Still, to me, the equally important factor is the message this sends to developers about the culture of their company, where they either get ignored or nobody explains to them the benefits of unified environments and large-volume purchase discounts. And they get reminded of this message every morning when they start working with the laptop that's barely usable for the task they were given.
Ben Affleck on AI in Video
I found the points around the strengths and limitations of AI interesting. When I’m doing creative work with the help of Large Language Models, I find that it shines in tasks that require the “wisdom of crowds”: validating a draft to ensure I cover all aspects, helping me get up to speed on a new topic, poking holes in my theories, etc. I used to say that the “A” in “AI” stands for “Average”: If you’re new to an area, using an LLM for creative work can elevate you to the average pretty fast. But if you’re already above that, in the best case, it distracts you, in the worst, it might dumb you down to average.
How to Stay Calm Under Pressure?
This is a nice, practical framework that can complement my Impostor Syndrome article. I especially liked the emphasis on taking a breath before any action and assessing the situation before choosing how to react. We naturally want to escape discomfort, and in many examples listed in the article, the fastest way to stop the pain would be to end the conversation — and miss both a deeper context and a chance to understand, discuss, convince, and reach a better compromise. I’ll try to keep this in mind in the future.
👾 Something cool: Game Feel Demo
Game Feel Demo is an interactive illustration that was a core part of the game developer lecture I mentioned above, about the impact of small details on the overall quality and feel of a game. The best way to see how these seemingly trivial effects add up is to only enable them one by one, and play a bit with the mini-game after each iteration. It’s amazing how the illusion is coming together from these simple building bricks!
That’s it for today, play something new this weekend,
Péter