• When I brought HashtagLove to a local meetup, I got a valuable opportunity to observe new players interacting with the game for the first time. While watching them play, I noticed something interesting—and concerning. Many players seemed to get stuck in a loop, picking tweets almost at random. Of course, this made sense: they had no prior knowledge of the system and didn’t necessarily have a strong preference for one of the three main topics right away.

    This observation led me to analyze the underlying recommendation algorithm. Was the game guiding players toward a satisfying outcome, or was it leaving them aimless? To answer this, I ran a simulation to determine how likely it was for a completely random player to reach the endgame.

    Analyzing the Old Algorithm

    To get a concrete sense of the issue, I reimplemented the recommendation logic in Jupyter and simulated 10,000 playthroughs where players chose posts entirely at random. The results were shocking: only 3% of these random players managed to “finish” the game by consistently comboing one topic.

    Clearly, something needed to change. If players had no guidance, they were unlikely to progress toward any meaningful endgame state. At the same time, I didn’t want to make the game feel too forced or railroaded—I still wanted players to have the freedom to explore different perspectives.

    Defining the Ideal Player Experience

    Before implementing a fix, I took a step back and outlined the core requirements for a better recommendation system:

    • Must not feel too railroaded or forced
    • Should allow a random player to reach an endgame state in ~35 steps (~20% chance)
      • Endgame means achieving a combo count of 10+ in any main topic (except neutral posts)
    • Should allow players to switch to another path later in the game
    • Should be flexible enough to support more than three main paths in the future

    With this framework in mind, I began experimenting with changes.

    A New Approach to Recommendations

    The major change I introduced was shifting the recommendation system from purely random chance to a history-aware approach. Instead of purely random post selection, the algorithm now always includes at least one suggestion from the color of the last selected post. This simple tweak ensures that players are subtly encouraged toward a particular path without being locked into it.

    Additionally, I revamped the scoring system. The old design used a slow-ramping Fibonacci scale, which made progression feel sluggish. I replaced it with a simple count-based system, where the number of combos directly reflects progress. This change makes it clearer how players are building momentum toward an ending.

    The Results: A More Engaging Experience

    After implementing these changes, I reran my 10,000-game simulation. The results? The probability of a random player reaching the endgame within 35 steps jumped from 3% to 30%. This means that even players who start without a clear direction are much more likely to have a satisfying playthrough while still allowing for exploration and strategic shifts.

    This update achieves a better balance between guidance and freedom. Players are nudged toward a conclusion, but they still have room to explore alternative paths.

    Try the Update!

    The improved recommendation system is now live in HashtagLove! If you’d like to experience the updated version, check it out here:

    🎮 Play HashtagLove: https://thenerdautomaton.itch.io/hashtaglove

    I’d love to hear your thoughts—does the new system feel more intuitive? Let me know your feedback!

    #GGJ2025 #GameDev #IndieGames #ProceduralDesign #HashtagLove

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

  • Lessons from Global Game Jam 2025

    Last weekend, I took part in the Global Game Jam 2025, diving into 48 hours of creativity, problem-solving, and game development. This year’s theme, bubbles, inspired me to create HashtagLove, a game that explores social media echo chambers and algorithm-driven interactions. It was also my first time doing the jam solo, which led to some interesting challenges and insights. After finishing to read, check out the product at https://thenerdautomaton.itch.io/hashtaglove

    From Vision to Reality: The Game I Set Out to Make vs. The Game I Finished

    Initially, I had a much bigger idea in mind: a dating sim where players crafted social media posts, gained followers, and engaged in private messaging to develop relationships. But as the jam progressed, I followed the fun and pivoted toward a more focused mechanic—simply liking posts. Instead of forcing the broader concept, I built a polished, narrative-driven game around this one core interaction.

    Liking posts as the core mechanic, which leads to the user ending up in a bubble.

    In hindsight, this was the right choice. In past jams, I’ve ended up with games that had more content but less polish. This time, I cut features early enough that I could spend Sunday refining what I had, leading to a smoother, more cohesive final product—and even a relaxed submission process (a rare jam experience!).

    The Challenges of Solo Development

    Going solo had its pros and cons. On one hand, I had complete creative control and could move fast without debates or compromises. On the other hand, I lacked the outside perspective that helps filter out overambitious ideas early on.

    A turning point came on Saturday evening when a fellow jammer gave me feedback. I realized that my original scope was too large, and thanks to their input, I cut the dating sim aspect and doubled down on the “like” mechanic. This was a moment of “killing my darlings” and embracing the reality of a game jam: not every idea fits in 48 hours.

    Technical Takeaways: Godot 4 & GDScript

    This was my first time using Godot 4 for a full project, and while I love the engine, I ran into some unexpected learning curves. Many online resources still reference Godot 3, which led to confusion and wasted time searching for answers. Eventually, another jammer helped me debug an issue, proving that sometimes, a five-minute discussion beats an hour of Google searches.

    I also used GDScript, but found its loose typing frustrating. Despite working with TypeScript daily, the flexibility felt more like a drawback than a benefit. Next time, I’ll probably switch to C#, which aligns more with my coding style and makes debugging easier.

    The Social Side of a Solo Jam

    Even though I worked alone, I wasn’t isolated. I sat near another team, and we kept the energy up with chats, jokes, and shared frustrations. I also asked other participants and friends over the weekend to help me by adding tweets as content to the game, and some made hilarious texts that I happily added. This balance—having personal focus time while still being part of a social environment—made the experience much more enjoyable.

    Content provided by the community

    I had an interesting conversation with a late-joining jammer about my game. While they were helpful in refining my scope, I got the feeling that my idea—or the way I explained it—was a bit overwhelming for someone coming in fresh. They ultimately joined a different team, which might have been because the social media theme didn’t really resonate with them. It made me wonder: how much of that was the topic itself, and how much was how I presented it? While I don’t think every game needs to appeal to everyone, this experience reminded me that framing an idea clearly and concisely can help spark better discussions—whether in a jam or beyond.

    Looking Ahead: Back to Team Jamming

    While this solo experience was valuable, my favorite jams have been the ones with a strong artistic aspect—like my previous project, QubistQropQuest, a one-button game inspired by Mondrian paintings. I enjoy making sure a project is cohesive and aesthetically unified, and I think that’s easier to achieve in a small, focused team.

    Next time, I’ll be looking to jam with people I already know, balancing creativity with collaboration. And who knows—maybe I’ll finally make that dating sim after all!

    Please consider playing the game on itch io and thanks for reading https://thenerdautomaton.itch.io/hashtaglove

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

  • Game jams and hackathons are not just about coding marathons or technical problem-solving. These dynamic environments provide unique opportunities for developers to break away from their usual routines, explore new ideas, and grow in unexpected ways. The idea for this blog post came from my entry into the code.talks 2024 conference. It took way to look to still publish it, but here it is: seven invaluable lessons I’ve learned from participating in such events over the years:


    1. Creativity Can Flourish in Constraints

    In preparation of the Massim Multi-Agent contest in 2008, I have been working for the CIG group at my university. So strictly speaking this was not a developer event, but I was working to implmenent the game rules for an AI contest. While designing levels, I shaped one of the levels to resemble a cow’s skull, inspired by the cowboy-themed scenario. What started as a joke turned into a beloved feature that remains on the contest page to this day. This experience taught me that constraints can spark creative solutions, and even playful ideas can make a lasting impact.


    2. Repetition Can Be Rewarding

    At the Code Dojo in Frankfurt (2016), we were programming Conway’s Game of Life over and over again for a whole day, learning test-driven development in the process. Initially, I disliked repetitive tasks, but this event shifted my perspective. Repetition became a path to mastery and even joy. Since then, I’ve embraced repetition in various areas—from running to painting—understanding that practice hones skills and builds confidence.


    3. Sometimes, Thinking Differently Wins

    From 2020 to 2022 I was living and working in Tokyo Japan. My company had internal contests such as one where, participants were tasked with identifying valuable NFTs on the market. Instead of searching for existing NFTs, I created my own, leveraging our startup’s expertise. By developing a tool for colleagues to design and mint custom bunny NFTs, I demonstrated that innovation isn’t about following instructions — it’s about redefining the problem.


    4. Team Dynamics Shape Success

    During the Global Game Jam (2023), I experienced the phases of team development firsthand: forming, storming, norming, performing, and adjourning. As a newcomer in my town, I teamed up with strangers and navigated the challenges of collaboration under pressure. This taught me the importance of communication, adaptability, and leveraging individual strengths for collective success.


    5. Resilience is Key to Finishing

    At the IfGameSh Autumn Jam (2023), our team hit a low point on Saturday afternoon. With little to show for our efforts, the temptation to abandon the project was strong. By Sunday, only two of us remained. Despite this, we pushed through and delivered a completed game. This experience reinforced the value of perseverance and finishing strong, even when motivation wanes.


    6. Pre-Planning Can Still Be Derailed

    For the Global Game Jam (2024), I pre-formed a team and planned a board-game-inspired couch co-op experience. However, the revealed theme didn’t align with our vision, and we struggled to pivot. This highlighted the importance of flexibility and adaptability, even when you think you’re prepared.


    7. Volunteering Adds a New Dimension

    For the IfGameSh Summer Jam (2024), I volunteered as an organizer in addition to participating. This dual role offered a behind-the-scenes perspective and taught me how much effort goes into creating these events. It deepened my appreciation for the community and underscored the importance of giving back.


    Final Thoughts

    Game jams and hackathons are much more than technical exercises. They’re opportunities to grow creatively, emotionally, and professionally. Whether you’re embracing repetition, navigating team dynamics, or learning resilience, these events provide lessons that extend far beyond coding.

    What lessons have you learned from participating in similar events? Share your experiences in the comments below!

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

  • Or something like that. Recently I spent some weekends on a small NFT generation project. One could say, it was for work, but it really wasn’t. In truth I built it for me.

    You can find the source code here: https://github.com/DyosTheNerd/SRRNFTVoucherService

    And a running prototype on the mumbai polygon testnet here : https://feather-diamond-virgo.glitch.me/

    Engineering the project

    Why do I say, it could be for work?

    Because I implemented a website that uses the new “Issue” API we lauch at work. The demo uses the API to issue SRR (Startrail Registry Record), the core NFT product of my current employer Startbahn, as well as the provided webhooks.

    So, why is it not for work then?

    Because while I implemented a website that uses my employers API, its not the only thing.

    • I learned about how to set up SVG files and generate images for the SRR NFTs I am building.
    • I automated many manual processes about the generation of the images, such as:
      • how to generate preview images for the features
      • how to generate the form of the generation website
    • I am happy with the separation between the generation process and the technical plumbing. I can easily make a different art project with the same infrastructure, and only change a few files for that.

    About the Art

    I enjoy being around visual art. There are pictures in my room of things I enjoy, like boardgames or Japanese aesthetics. I would not pay the obscene prices needed to own what one could consider “fine art”. Its ok for me, that other people do. Art has to mean something, and is not an object of speculation for me.

    I guess I was never good at creating art myself, and hated it in school as much as my art teachers hated me. Since a few years now however I started to enjoy creating art , although it was never a focus of mine. The Pixelart of my previous game was a lot of fun. Its probably not good, but its also not how I choose to make a living. Art is an outlet for me to focus on things other than work, and it refreshes my mind.

    Building the Startbahninchen was just a lot of fun. Contrary to many NFT projects, I am not in particular interested in having any kind of rarity. Its more the quest to give my users some influence over their own custom bunny. If in the end all take the black rabbit with the white spot, that would be fine for me….

    So what does this have to do with business?

    While the art is maybe enough to show somebody else, it might not be enough to sell it. And that is fine. But the system proves a point: I was able to build a service, that can be integrated into my companies services in so many levels.

    • Use it as a service to send welcome SRR to new customers
    • Use it during pitches
    • Use it to onboard clients and give them a headstart against classical api documentation
    • Use it to build an internal motivation program that also gives feedback to the core products, by helping to onboard the employees to use the Startbahn services.

    For me, this shows the value of giving engineers and developers time to follow their passion projects and build something aside from their regular projects.

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

  • I created a new Gitlab project under https://gitlab.com/JDWTheNerdAutomaton/opendecentralisedtrust/

    Its about the question whether or not a system can be build that allows a rating of its users by other users and preserves privacy of data and interactions for all users.

    There are a lot of problems when trying to build this without a centralized point of trust, first and foremost the question why you should participate in such a system.

    Then there is the question of how it can be build in such a way that the rater, ratee and their specific data is protected in the maximum possible way, and making it hard or ideally impossible to track who a user is interacting with (rating or being rated by).

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

  • ·

    So, Blockchain is all the rage. I am getting into development. Currently I work as a freelancer for a Ethereum based Blockchain startup. It is interesting work, and a whole new set of problems and ideas follow out of it.

    Regardless what happens to the freelance project, I am planning to learn more about it. Especially Cardano seems like an interesting project, which ties in to some of the things I enjoyed during my studies: Provable correctness of code for example.

    Seeing blockchain technology in a production environment is really a different beast than other applications I worked with before, since you should get it right, as its hard to patch.

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

  • This must be the thousandth time, I came here again after a while to post something, but I hope the next post will not be too far in the future. This post is more about myself and my current life situation and not directly related to software development. However, I believe, that personal growth and mental health are important for everyone of us working in the IT industry.

    So I moved to Japan with my wife, and I am currently working on opening up income possibilities for my self, which may be a employed position, or if that does not work out, finding ways to continue generating income independently from where I live.

    Another reason why did I not write much, is maybe related to things not working out as easily as I had hoped. The work situation admittedly has been dragging me down for a while now, and if I am honest to myself, it probably started before we moved here, but its hard to pinpoint a real starting point. Getting into my mental health situation is a bit of a longer story that might come some other day.

    However, since almost two months now (starting 2021-04-08) I commited myself to wake up at 5 every morning for what is called “the miracle morning“. A kind of ritual, to start your day on a positive note.

    Since then I have missed just a single day, which was when we were on trip to Sendai, and the hotel room was to small to perform my ritual comfortably and be mindful of my wife, who was initially a bit doubtful whether or not waking up so early was one of my best ideas, but has been supporting me .

    screenshot of my health app showing may 2021 result of 108km from running

    Last month both of us added a second ritual, which I would have never thought I would enjoy: We are making it a system or habit to have our 10000 steps in before 10 AM (we call it “10 vor 10”), building up on the one positive thing that corona started for us, which is the somewhat irregular going for a run feeling: Since March 2020 we went out for shortish runs – probably around once a week if I am being generous to myself, and less if I am being honest.

    This is the total result of our last month May 2021. To make it to work at a reasonable time, we decided, to try “10 vor 10” mostly with a 5km runs on most mornings, and complete the rest the way to work. We missed maybe one day per week for whenever there was a lot of other activities planned, but took morning walks instead.

    I had never thought to be able to do this, but here I am at 108km of running in a single month, feeling physically healthier than I have for a long time, happily bragging about forming some probably not too bad rituals for my life.

    But what now?

    I believe that I am incredibly blessed to perform tests on my on life without much restrcitions, and that this makes it currently possible for me to experience personal growth and becoming a better software engineer. Where it takes me, is not yet sure, but I want to continue to explore what life has to offer and write about it occasionally. I was a software person, and I still am and will continue to be. But I want to be a happy software person, and the best version of myself I can be.

    I hope to start a different long term project in the near future, but the final idea is not yet decided. How I get there, is maybe part of some future blogposts here, and other media, whereever the specific content makes sense to share. I am looking forward to the next steps on my journey.

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

  • I made a little pixel art concept for a space elevator hotel, which is the scene for an adventure game I am planning to work on.

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

  • This is Part 2 of the computer science theory behind the Train Automaton game. It describes the impact of player input on the automaton as well as the thing that makes a language a language: symbols or in this cases: train stations. The first part will covers the initial state machine.

    Under the hood, the game is based on non deterministic finite automata (NFA), a computational model to describe regular languages or the more commonly used regular expressions. In Computer Science a language consist of a set of words, which themselves consist of symbols (or more casually “letters”).

    figure 1: a switch as shown to the player.

    The first post explained the internal wiring of the single tile <3,2> and its surroundings. Lets look what changes on player input.

    If the player inputs a switch like in figure 1, the game will wire the internal states of the tile together as shown in figure 2.

    The blue transitions are the ones added by the switch. Similar to the inter tile transitions, railways can be used both ways: for horizontal railway two transitions <x,y,W,I> to <x,y,E,O> and <x,y,E,I> to <x,y,W,O> are created. Note that, contrary to the inter tile transitions, the intra tile transitions lead from “I” to “O”.

    The inter tile transitions not only directly represent the rails in the tile but perform a second function: the transition symbols in figure 2 are shown as variable x. Depending on the given tile x internally assumes the following values.

    • a, b, c… : if the tile contains a (red, green, blue) station.
    • ε : if the tile contains no station.

    Due to the nature of the game, most of these transitions will remain ε-transitions: The board is quite small and there needs to be some place to navigate the rails without moving through stations. This leads to the next post, where I will explain the difficulties that came with those ε-transitions.

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

  • Finally after a long pause, I got back up to release the Train Automaton. To celebrate this, have a look at the trailer, and maybe download the game from the google playstore or for Windows PC on itch.io.

    Find the game here for Android: https://play.google.com/store/apps/de…

    and for PC: https://thenerdautomaton.itch.io/trai…

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶

    ¶¶¶¶¶