# game

Published articles for game.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## A custom virtual machine for the Stars! 4X game

DevFeed: [A custom virtual machine for the Stars! 4X game](<https://devfeed.tech/articles/a-custom-virtual-machine-for-the-stars-4x-game-41277.md>)

Original publisher: [Read original article](<https://nullprogram.com/blog/2026/09/17/>)

Published: 2026-09-17T02:00:00Z

Content type: opinion

Language: en

Sources: [Chris Wellons](<https://devfeed.tech/sources/chris-wellons.md>)

Topics: [Emulator](<https://devfeed.tech/topics/emulator.md>), [win32](<https://devfeed.tech/topics/win32.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [x86](<https://devfeed.tech/topics/x86.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [c](<https://devfeed.tech/tags/c.md>), [emulator](<https://devfeed.tech/tags/emulator.md>), [game](<https://devfeed.tech/tags/game.md>), [github](<https://devfeed.tech/tags/github.md>), [releases](<https://devfeed.tech/tags/releases.md>), [vm](<https://devfeed.tech/tags/vm.md>), [win32](<https://devfeed.tech/tags/win32.md>), [windows](<https://devfeed.tech/tags/windows.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

The article presents Stars!VM, a custom virtual machine for running the 1995 16-bit Windows 3.1 game Stars! on modern systems. It combines an 80286 emulator with a Win16-to-Win32 bridge, embeds the original game in signed GitHub releases, and provides 32-bit builds with features such as a modern file chooser and 4K scaling.

### Source excerpt

Stars! is a 1995 4X game (explore, expand, exploit, exterminate) for 16-bit Windows 3.1 that I first played ~28 years ago. While Windows is famously backwards compatible, it's notoriously difficult to play Stars! today. Windows x64 cannot run 16-bit applications, and playing requires either retro hardware or emulation (otvdm, DOSBox), sometimes paired with Wine. My new, exciting solution, Stars!VM, or Stars! Virtual Machine, embeds a custom 80286 emulator and a Win16 to Win32 bridge. As native Win32, the game looks and feels exactly as it did originally, except sporting a modern file chooser and 4k scaling. It's indistinguishable from a genuine 32-bit or 64-bit port of the game, especially with the original 16-bit game embedded inside the VM executable. The signed releases on GitHub embed a compressed copy of the original 16-bit game, so that single EXE is ready to play out-of-the-box with no further setup or downloads. I'm distributing 32-bit builds (but requires SSE2) because there's no advantage to 64-bit here, and these builds work (almost) everywhere except 16-bit Windows. 32-bit Windows could run the original 16-bit game, but the VM-encapsulated version is better behaved. It doesn't dump a Stars.ini under C:\WINDOWS, it interacts properly with the task bar, and copy protection is neutralized via the OS bridge. If you ever been curious about Stars!, now's the time to try it. The game has a thorough, built-in tutorial, but also check out the wiki, the official strategy guide, and AutoHost (play-by-email service). The game predates the modern search engine concept, otherwise they might have chosen a better name. I suggest using "stars 4x" in your searches. If you want to build from source and hack on the VM yourself, the best tool for the job is w64devkit, of course, because it comes with everything you'll need. Plus the game itself: stars.exe from stars27jrc3.zip. Implementation details The emulator itself requires x86 or x86-64 because it does not implement x87

## GPT-6 Astra Is Both Incredible and Frustrating

DevFeed: [GPT-6 Astra Is Both Incredible and Frustrating](<https://devfeed.tech/articles/gpt-6-astra-is-both-incredible-and-frustrating-34993.md>)

Original publisher: [Read original article](<https://creatoreconomy.so/p/gpt-6-astra-is-both-incredible-and>)

Author: Peter Yang

Published: 2026-09-09T14:27:15Z

Content type: opinion

Language: en

Sources: [Behind the Craft](<https://devfeed.tech/sources/behind-the-craft.md>)

Topics: [gpt-6-astra](<https://devfeed.tech/topics/gpt-6-astra.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [OpenAI](<https://devfeed.tech/topics/openai.md>), [computer-use](<https://devfeed.tech/topics/computer-use.md>), [blender](<https://devfeed.tech/topics/blender.md>), [Godot](<https://devfeed.tech/topics/godot.md>), [Demo](<https://devfeed.tech/topics/demo.md>), [Tutorial](<https://devfeed.tech/topics/tutorial.md>), [3D](<https://devfeed.tech/topics/3d.md>)

Tags: [3d](<https://devfeed.tech/tags/3d.md>), [ai](<https://devfeed.tech/tags/ai.md>), [blender](<https://devfeed.tech/tags/blender.md>), [computer-use](<https://devfeed.tech/tags/computer-use.md>), [game](<https://devfeed.tech/tags/game.md>), [games](<https://devfeed.tech/tags/games.md>), [gpt-6-astra](<https://devfeed.tech/tags/gpt-6-astra.md>), [openai](<https://devfeed.tech/tags/openai.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A hands-on opinion piece about OpenAI's GPT-6 Astra, describing strengths in games, 3D model creation, strategic thinking, and computer use, while noting problems that prevent it from becoming the author's daily driver. The article also outlines a workflow using Blender, Godot, and ChatGPT to build games.

### Source excerpt

What OpenAI's new model does well, where it falls short, and how I'm using it.

## Tips for Saving Game Data in Godot

DevFeed: [Tips for Saving Game Data in Godot](<https://devfeed.tech/articles/tips-for-saving-game-data-in-godot-40649.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2026-08-21-tips-for-saving-game-data-in-godot/>)

Published: 2026-08-21T00:00:00Z

Content type: tutorial

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [Godot](<https://devfeed.tech/topics/godot.md>), [saving](<https://devfeed.tech/topics/saving.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [data](<https://devfeed.tech/topics/data.md>), [JSON](<https://devfeed.tech/topics/json.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [code](<https://devfeed.tech/tags/code.md>), [disk-space](<https://devfeed.tech/tags/disk-space.md>), [game](<https://devfeed.tech/tags/game.md>), [games](<https://devfeed.tech/tags/games.md>), [json](<https://devfeed.tech/tags/json.md>), [mutex](<https://devfeed.tech/tags/mutex.md>), [os](<https://devfeed.tech/tags/os.md>), [saving](<https://devfeed.tech/tags/saving.md>), [testing](<https://devfeed.tech/tags/testing.md>), [thread](<https://devfeed.tech/tags/thread.md>), [tips](<https://devfeed.tech/tags/tips.md>)

### AI overview

This tutorial describes a save-data approach for Godot games, based on experience shipping two games. It compares custom binary and JSON formats, recommends frequent debounced saves on a separate thread, checks available disk space, and discusses temporary-file replacement to reduce corrupted save-game reports.

### Source excerpt

Saving game data is easy. Making your save code survive every kind of hardware failure is not. A lot of these issues will never show up during testing, but if your game reaches a wide audience with many different kinds of hard drives in different states of degradation, you will start to get bug reports about save games not working. I decided to write up my approach, learned over the course of shipping two Godot games, that has reduced our corrupted save game bug reports to virtually nothing.

## Relative velocity and closing speed

DevFeed: [Relative velocity and closing speed](<https://devfeed.tech/articles/relative-velocity-and-closing-speed-35144.md>)

Original publisher: [Read original article](<https://eli.thegreenplace.net/2026/relative-velocity-and-closing-speed/>)

Author: Eli Bendersky

Published: 2026-08-04T03:01:00Z

Content type: tutorial

Language: en

Sources: [Eli Bendersky](<https://devfeed.tech/sources/eli-bendersky.md>)

Topics: [Simulation](<https://devfeed.tech/topics/simulation.md>), [Game engine](<https://devfeed.tech/topics/game-engine.md>), [3D](<https://devfeed.tech/topics/3d.md>)

Tags: [3d](<https://devfeed.tech/tags/3d.md>), [game](<https://devfeed.tech/tags/game.md>), [math](<https://devfeed.tech/tags/math.md>), [misc](<https://devfeed.tech/tags/misc.md>), [physics](<https://devfeed.tech/tags/physics.md>)

### AI overview

A tutorial on closing speed, defined as the normal component of the relative velocity between two objects. It explains vector projection, the role of the connecting line between the objects, and how the sign indicates whether they are approaching or separating.

### Source excerpt

In Physics simulations or game engines it's sometimes useful to determine the speed with which two objects are approaching each other. This post will discuss the concept of closing speed, which is the normal component of the relative velocity of two objects. Relative velocity and its components Suppose we ...

## Hermes Co-Founder on Building an AI Agent That Improves Itself | Karan Malhotra

DevFeed: [Hermes Co-Founder on Building an AI Agent That Improves Itself | Karan Malhotra](<https://devfeed.tech/articles/hermes-co-founder-on-building-an-ai-agent-that-improves-itself-karan-malhotra-34994.md>)

Original publisher: [Read original article](<https://creatoreconomy.so/p/hermes-co-founder-on-building-an-ai-agent-that-improves-itself-karan-malhotra>)

Author: Peter Yang

Published: 2026-08-02T14:01:52Z

Content type: article

Language: en

Sources: [Behind the Craft](<https://devfeed.tech/sources/behind-the-craft.md>)

Topics: [AI Agent](<https://devfeed.tech/topics/ai-agent.md>), [context](<https://devfeed.tech/topics/context.md>), [builds](<https://devfeed.tech/topics/builds.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [ai-agent](<https://devfeed.tech/tags/ai-agent.md>), [building](<https://devfeed.tech/tags/building.md>), [context](<https://devfeed.tech/tags/context.md>), [game](<https://devfeed.tech/tags/game.md>), [models](<https://devfeed.tech/tags/models.md>), [skills](<https://devfeed.tech/tags/skills.md>), [sonic](<https://devfeed.tech/tags/sonic.md>)

### AI overview

An article about Hermes, an AI agent whose context remains portable across models and whose skills can be built and cleaned up autonomously. It also describes how Hermes helped Karan Malhotra modify a childhood Sonic game.

### Source excerpt

How Hermes keeps your context portable across models, builds and cleans up its own skills, and helped Karan modify his childhood Sonic game

## Technical Development of The Incident at Galley House

DevFeed: [Technical Development of The Incident at Galley House](<https://devfeed.tech/articles/building-galley-house-40648.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2026-07-28-building-galley-house/>)

Published: 2026-07-28T00:00:00Z

Content type: article

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [HTML](<https://devfeed.tech/topics/html.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>), [interface](<https://devfeed.tech/topics/interface.md>), [Game engine](<https://devfeed.tech/topics/game-engine.md>)

Tags: [blog-post](<https://devfeed.tech/tags/blog-post.md>), [development](<https://devfeed.tech/tags/development.md>), [game](<https://devfeed.tech/tags/game.md>), [html](<https://devfeed.tech/tags/html.md>), [interface](<https://devfeed.tech/tags/interface.md>), [steam](<https://devfeed.tech/tags/steam.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

A technical development post about The Incident at Galley House, covering its origins as a Twine and HTML prototype, iterative content and puzzle testing, and adaptation of its typing-based gameplay for a controller interface.

### Source excerpt

Evil Trout's second game, The Incident at Galley House, is out now on Steam! Last year, after The Roottrees are Dead shipped, I wrote a technical blog post about its development, which was well received, so I decided to do the same thing for this game. Note: The images in this post have minor spoilers for the beginning of the game. If you want to be 100% spoiler free, now's your chance to run away.

## I had two weeks, an 8-foot keyboard, and a Wordle Workflow

DevFeed: [I had two weeks, an 8-foot keyboard, and a Wordle Workflow](<https://devfeed.tech/articles/i-had-two-weeks-an-8-foot-keyboard-and-a-wordle-workflow-35875.md>)

Original publisher: [Read original article](<https://temporal.io/blog/i-had-two-weeks-an-8-foot-keyboard-and-a-wordle-workflow>)

Author: Shy Ruparel

Published: 2026-07-21T00:00:00Z

Content type: article

Language: en

Sources: [Temporal Blog](<https://devfeed.tech/sources/temporal-blog.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [keyboard](<https://devfeed.tech/topics/keyboard.md>), [Figma](<https://devfeed.tech/topics/figma.md>)

Tags: [conference](<https://devfeed.tech/tags/conference.md>), [figma](<https://devfeed.tech/tags/figma.md>), [game](<https://devfeed.tech/tags/game.md>), [keyboard](<https://devfeed.tech/tags/keyboard.md>), [temporal-voices](<https://devfeed.tech/tags/temporal-voices.md>), [usb](<https://devfeed.tech/tags/usb.md>)

### AI overview

Temporal describes building and presenting a Wordle clone driven by Temporal Workflows, using an 8-foot USB-C keyboard and holographic fans to demonstrate durable execution at AI Engineer World's Fair.

### Source excerpt

A Wordle clone, an 8-foot keyboard, and a holographic fan display made Temporal's Durable Execution visible at AI Engineer World's Fair.

## Obfuscated Rhythm Games

DevFeed: [Obfuscated Rhythm Games](<https://devfeed.tech/articles/obfuscated-rhythm-games-38399.md>)

Original publisher: [Read original article](<https://blog.danlew.net/2026/06/23/obfuscated-rhythm-games/>)

Author: Dan Lew

Published: 2026-06-23T14:17:46Z

Content type: opinion

Language: en

Sources: [Dan Lew Blog](<https://devfeed.tech/sources/dan-lew-blog.md>)

Topics: [obfuscation](<https://devfeed.tech/topics/obfuscation.md>), [standard](<https://devfeed.tech/topics/standard.md>)

Tags: [game](<https://devfeed.tech/tags/game.md>), [games](<https://devfeed.tech/tags/games.md>), [music](<https://devfeed.tech/tags/music.md>), [obfuscation](<https://devfeed.tech/tags/obfuscation.md>), [standard](<https://devfeed.tech/tags/standard.md>)

### AI overview

The article examines three rhythm games released in 2025 that intentionally obscure which buttons players should press and when. It discusses how Rift of the Necrodancer, Rhythm Doctor, and Unbeatable derive much of their challenge from less legible note charts and altered visual or auditory cues.

### Source excerpt

I've been a rhythm game fiend since my introduction to Dance Dance Revolution in the early 2000s. I spent years obsessed with DDR, took a detour into Beatmania, then played Guitar Hero / Rock Band nonstop for years. I haven't gone deep on any rhythm games recently,

## SpaceDeck X is coming to an arcade cabinet

DevFeed: [SpaceDeck X is coming to an arcade cabinet](<https://devfeed.tech/articles/spacedeck-x-is-coming-to-an-arcade-cabinet-37357.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/spacedeck-x-on-arcade-cabinet/>)

Author: Stanko

Published: 2026-05-21T00:00:00Z

Content type: release

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [arcade](<https://devfeed.tech/topics/arcade.md>), [3D](<https://devfeed.tech/topics/3d.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [pixel](<https://devfeed.tech/topics/pixel.md>)

Tags: [3d](<https://devfeed.tech/tags/3d.md>), [3d-printing](<https://devfeed.tech/tags/3d-printing.md>), [game](<https://devfeed.tech/tags/game.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [pixel-art](<https://devfeed.tech/tags/pixel-art.md>), [release](<https://devfeed.tech/tags/release.md>), [steam](<https://devfeed.tech/tags/steam.md>)

### AI overview

The article announces that SpaceDeck X will be released on a physical arcade cabinet at Blast Galaxy in Amsterdam on June 14, with a release party and high-score tournament. The author also describes a 3D-printed trophy modeled in JavaScript with Replicad and mentions work toward a Steam release.

### Source excerpt

I want your coins! I'm making a game. It is called SpaceDeck X and you can try it online. But thanks to Amsterdam Indie Arcade, it will be available on a physical arcade cabinet at Blast Galaxy. It will be released on the 14th of June with a small release party and hi-score tournament. If you are in Amsterdam, be sure to come and check it out. It will be available for the next two months, then a new indie game will take its place. Hi-Score Tournament # We are going to organize a hi-score tournament. The Indie Arcade organizer asked me if I could come up with a fun prize for the winner, so I did: I designed and 3D printed the main player ship from the game on a little pedestal. It was super fun figuring out how to bring my pixel art to the real world and break it down for 3D printing. The model is made in JavaScript using Replicad. Come and claim the trophy on the 14th! Steam Release # The arcade release is just a pit stop. I'm actively working towards a Steam release, so stay tuned!

## Marc Andreessen Egg Game

DevFeed: [Marc Andreessen Egg Game](<https://devfeed.tech/articles/marc-andreessen-egg-game-40769.md>)

Original publisher: [Read original article](<https://eieio.games/blog/marc-andreessen-egg-game>)

Author: Nolen Royalty (eieiogames@gmail.com)

Published: 2026-05-07T00:00:00Z

Content type: article

Language: en

Sources: [eieio.games](<https://devfeed.tech/sources/eieio-games.md>)

Topics: [Image](<https://devfeed.tech/topics/image.md>), [object](<https://devfeed.tech/topics/object.md>)

Tags: [game](<https://devfeed.tech/tags/game.md>), [images](<https://devfeed.tech/tags/images.md>), [lighting](<https://devfeed.tech/tags/lighting.md>)

### AI overview

A playful developer article about Marc Andreessen Egg Game, a game for drawing eggs that resemble Marc Andreessen. It describes the game's manifesto and explains technical challenges including egg lighting with a normal map and scoring its speedrun mode.

### Source excerpt

Marc Andreessen Egg Game helps you make eggs that look like Marc Andreessen.

## Anatomy of a Room

DevFeed: [Anatomy of a Room](<https://devfeed.tech/articles/anatomy-of-a-room-40646.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2026-03-23-anatomy-of-a-room/>)

Published: 2026-03-23T00:00:00Z

Content type: article

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [3D](<https://devfeed.tech/topics/3d.md>), [blender](<https://devfeed.tech/topics/blender.md>), [layout](<https://devfeed.tech/topics/layout.md>), [structure](<https://devfeed.tech/topics/structure.md>)

Tags: [3d](<https://devfeed.tech/tags/3d.md>), [blender](<https://devfeed.tech/tags/blender.md>), [game](<https://devfeed.tech/tags/game.md>), [layout](<https://devfeed.tech/tags/layout.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

The article explains how the team designed rooms for The Incident at Galley House, an adaptation of the text-based game Type Help. It covers creating a believable floor plan, modeling the house and rooms in Blender, preparing art briefs with references and game-specific requirements, and producing illustrations from 3D scenes.

### Source excerpt

Background Our next game, The Incident at Galley House, is an adaptation of a text-based game called Type Help. It takes place at Galley House, a dwelling in the English countryside, during a dinner party where things go sideways. Galley House is divided into many rooms, and the core gameplay involves following characters from room to room, listening in on their conversations, learning their motives, and eventually piecing together a mysterious incident.

## Building a Simple Tetris Game with Phaser, React, and Zustand

DevFeed: [Building a Simple Tetris Game with Phaser, React, and Zustand](<https://devfeed.tech/articles/really-easy-tetris-40770.md>)

Original publisher: [Read original article](<https://eieio.games/blog/really-easy-tetris>)

Author: Nolen Royalty (eieiogames@gmail.com)

Published: 2026-02-27T00:00:00Z

Content type: opinion

Language: en

Sources: [eieio.games](<https://devfeed.tech/sources/eieio-games.md>)

Topics: [Phaser](<https://devfeed.tech/topics/phaser.md>), [Game engine](<https://devfeed.tech/topics/game-engine.md>), [React](<https://devfeed.tech/topics/react.md>), [Zustand](<https://devfeed.tech/topics/zustand.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [game](<https://devfeed.tech/tags/game.md>), [games](<https://devfeed.tech/tags/games.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [react](<https://devfeed.tech/tags/react.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

The author describes making a simplified Tetris game using only I-block pieces to explore the Phaser game engine. The article explains how Phaser handles gameplay while React renders the surrounding UI, with Zustand sharing state between them, and reflects on Phaser's trade-offs compared with larger engines such as Godot and Unity.

### Source excerpt

tetris, but you only get the good pieces

## Balatro's Least Erratic Decks

DevFeed: [Balatro's Least Erratic Decks](<https://devfeed.tech/articles/balatro-s-least-erratic-decks-38394.md>)

Original publisher: [Read original article](<https://blog.danlew.net/2025/11/03/balatros-least-erratic-decks/>)

Author: Dan Lew

Published: 2025-11-03T13:00:52Z

Content type: article

Language: en

Sources: [Dan Lew Blog](<https://devfeed.tech/sources/dan-lew-blog.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [Rust](<https://devfeed.tech/topics/rust.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Lua](<https://devfeed.tech/topics/lua.md>), [optimize](<https://devfeed.tech/topics/optimize.md>), [LÖVE](<https://devfeed.tech/topics/love2d.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [bug](<https://devfeed.tech/topics/bug.md>), [cpu](<https://devfeed.tech/topics/cpu.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [bug](<https://devfeed.tech/tags/bug.md>), [code](<https://devfeed.tech/tags/code.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [game](<https://devfeed.tech/tags/game.md>), [games](<https://devfeed.tech/tags/games.md>), [jit](<https://devfeed.tech/tags/jit.md>), [lua](<https://devfeed.tech/tags/lua.md>), [optimize](<https://devfeed.tech/tags/optimize.md>), [rust](<https://devfeed.tech/tags/rust.md>)

### AI overview

The author searches for the least erratic Erratic deck in Balatro by examining every possible game seed. After finding Lua too slow for the 2.3 trillion-seed search, they optimize the Lua implementation and then port it to Rust, using all CPU cores to reach about 100 million seeds per minute. The article also explains a bug that can produce decks filled with the ten of spades.

### Source excerpt

My most recent "just for fun" project was to find the least erratic of the Erratic decks in Balatro (a poker-ish roguelike deckbuilder game). Before each game, you pick a deck that has a special power. The Erratic deck completely randomizes the ranks/suits of the cards

## How to implement a random coroutines challenge generator

DevFeed: [How to implement a random coroutines challenge generator](<https://devfeed.tech/articles/how-to-implement-a-random-coroutines-challenge-generator-39312.md>)

Original publisher: [Read original article](<https://kt.academy/article/game-coroutines-how-to>)

Published: 2025-10-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Learning](<https://devfeed.tech/topics/learning.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [game](<https://devfeed.tech/tags/game.md>), [generate](<https://devfeed.tech/tags/generate.md>), [generator](<https://devfeed.tech/tags/generator.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implement](<https://devfeed.tech/tags/implement.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [learning](<https://devfeed.tech/tags/learning.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial describes the implementation of a random challenge generator for learning Kotlin Coroutines. It covers representing challenges with a sealed class hierarchy, generating random statements and sub-blocks, supporting different game levels, and improving the algorithm to produce more meaningful challenges.

### Source excerpt

A behind-the-scenes look at how to implement a generator of interesting challenges for learning Kotlin Coroutines.

## Effective Learning

DevFeed: [Effective Learning](<https://devfeed.tech/articles/effective-learning-39990.md>)

Original publisher: [Read original article](<https://www.saiyangrowthletter.com/p/effective-learning>)

Author: Tiger Abrodi

Published: 2025-08-03T10:40:58Z

Content type: article

Language: en

Sources: [Saiyan Growth Letter](<https://devfeed.tech/sources/saiyan-growth-letter.md>)

Topics: [Learning](<https://devfeed.tech/topics/learning.md>), [Code](<https://devfeed.tech/topics/code.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Library](<https://devfeed.tech/topics/library.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [React](<https://devfeed.tech/topics/react.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [game](<https://devfeed.tech/tags/game.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [learning](<https://devfeed.tech/tags/learning.md>), [notes](<https://devfeed.tech/tags/notes.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [side-projects](<https://devfeed.tech/tags/side-projects.md>)

### AI overview

The article offers practical advice for learning software development more effectively. It recommends reading error messages and documentation carefully, discussing documentation with AI, following curiosity through projects, building breadth across technologies, recreating systems from scratch, shipping projects, and asking questions in communities.

### Source excerpt

Notes when people ask me how to learn more effectively

## Building The Roottrees are Dead

DevFeed: [Building The Roottrees are Dead](<https://devfeed.tech/articles/building-the-roottrees-are-dead-40645.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2025-01-27-building-the-roottrees/>)

Published: 2025-01-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [Game Development](<https://devfeed.tech/topics/game-development.md>), [Godot](<https://devfeed.tech/topics/godot.md>), [Homelab](<https://devfeed.tech/topics/homelab.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Gitea](<https://devfeed.tech/topics/gitea.md>), [Docker](<https://devfeed.tech/topics/docker.md>), [Git](<https://devfeed.tech/topics/git.md>), [Windows 11](<https://devfeed.tech/topics/windows-11.md>), [tailscale](<https://devfeed.tech/topics/tailscale.md>), [blender](<https://devfeed.tech/topics/blender.md>), [Synology](<https://devfeed.tech/topics/synology.md>)

Tags: [diskstation](<https://devfeed.tech/tags/diskstation.md>), [docker](<https://devfeed.tech/tags/docker.md>), [game](<https://devfeed.tech/tags/game.md>), [game-development](<https://devfeed.tech/tags/game-development.md>), [git](<https://devfeed.tech/tags/git.md>), [gitea](<https://devfeed.tech/tags/gitea.md>), [homelab](<https://devfeed.tech/tags/homelab.md>), [linux](<https://devfeed.tech/tags/linux.md>), [tailscale](<https://devfeed.tech/tags/tailscale.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

The developer describes the technical considerations behind building the Steam version of The Roottrees Are Dead. The supplied excerpt covers the game's release and reception, a homelab using Linux, ZFS, Gitea, Docker, and Git LFS, backup practices, remote access through Tailscale, and development hardware. It also identifies Godot as the game's engine.

### Source excerpt

The Roottrees are Dead was released on January 15, 2025 and it did much better than I ever expected. The reception has been amazing. In just over a week, the game hit the magic mark of 500 reviews on Steam, and triggered the "Overwhelmingly Positive" status. On BlueSky, Bloomberg writer Jason Schreier blew me away when he posted: "Seven days into 2025 and I've already played what I suspect will be one of my favorite games of the year: The Roottrees Are Dead." Wow!

## The problems of Kotlin/Wasm I had when making a game

DevFeed: [The problems of Kotlin/Wasm I had when making a game](<https://devfeed.tech/articles/the-problems-of-kotlin-wasm-i-had-when-making-a-game-39315.md>)

Original publisher: [Read original article](<https://kt.academy/article/game-story-collection-processing-wasm>)

Published: 2025-01-20T00:00:00Z

Content type: article

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [wasm](<https://devfeed.tech/topics/wasm.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [compose-multiplatform](<https://devfeed.tech/topics/compose-multiplatform.md>), [multiplatform](<https://devfeed.tech/topics/multiplatform.md>), [CSV](<https://devfeed.tech/topics/csv.md>)

Tags: [challenges](<https://devfeed.tech/tags/challenges.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-multiplatform](<https://devfeed.tech/tags/compose-multiplatform.md>), [csv](<https://devfeed.tech/tags/csv.md>), [game](<https://devfeed.tech/tags/game.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-wasm](<https://devfeed.tech/tags/kotlin-wasm.md>), [wasm](<https://devfeed.tech/tags/wasm.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

An account of building a fruit-based collection-processing game with Compose Multiplatform and publishing it to Kotlin/Wasm. The author describes limitations in Kotlin reflection on common modules, an illegal cast exception occurring on Wasm, and an alternative approach involving generating challenges on the JVM and loading them from a CSV file.

### Source excerpt

A short story of the problems I needed to face when publishing a simple game made with Kotlin/Wasm.

## Jetpack Compose Modifier Guessing Game!

DevFeed: [Jetpack Compose Modifier Guessing Game!](<https://devfeed.tech/articles/jetpack-compose-modifier-guessing-game-39314.md>)

Original publisher: [Read original article](<https://kt.academy/article/game-modifier-guesser>)

Published: 2024-12-09T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>)

Tags: [compose](<https://devfeed.tech/tags/compose.md>), [game](<https://devfeed.tech/tags/game.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [learn](<https://devfeed.tech/tags/learn.md>), [modifiers](<https://devfeed.tech/tags/modifiers.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

A fun game for learning about Jetpack Compose modifiers, with difficulty levels based on the number of modifiers and answer options.

### Source excerpt

A fun game to learn about Jetpack Compose modifiers.

## The Roottrees are (still) Dead

DevFeed: [The Roottrees are (still) Dead](<https://devfeed.tech/articles/the-roottrees-are-still-dead-40644.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2024-03-03-the-roottrees-are-dead/>)

Published: 2024-07-17T00:00:00Z

Content type: opinion

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [Godot](<https://devfeed.tech/topics/godot.md>), [Unity](<https://devfeed.tech/topics/unity.md>), [3D](<https://devfeed.tech/topics/3d.md>), [ui](<https://devfeed.tech/topics/ui.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>)

Tags: [3d](<https://devfeed.tech/tags/3d.md>), [game](<https://devfeed.tech/tags/game.md>), [generative-ai](<https://devfeed.tech/tags/generative-ai.md>), [unity](<https://devfeed.tech/tags/unity.md>), [user-interface](<https://devfeed.tech/tags/user-interface.md>)

### AI overview

The author explains how discovering The Roottrees are Dead led them to collaborate with Jeremy Johnston on a Steam version. The update replaces the game's generative AI art with professional illustrations, adds a hybrid 3D/2D interface, remastered audio, redesigned user interface, and a port from Unity to Godot.

### Source excerpt

Last year I broke my elbow. This meant that I had to take a break from programming for about six weeks, and The Secrets of Skellig, my indie game, was put on hold. After a couple of weeks, I recovered enough to do some basic keyboard and mouse movements, and I stumbled on a free game called The Roottrees are Dead by Jeremy Johnston. It was exactly my kind of thing: a thinky game where you have to use your brain to fill in a family tree, based on results from a search engine. It was Her Story meets Return of the Obra Dinn meets The Case of the Golden Idol, and it consumed my free time for several days in a row.

## Fixing the iterative damping interpolation in video games

DevFeed: [Fixing the iterative damping interpolation in video games](<https://devfeed.tech/articles/fixing-the-iterative-damping-interpolation-in-video-games-26115.md>)

Original publisher: [Read original article](<http://blog.pkh.me/p/41-fixing-the-iterative-damping-interpolation-in-video-games.html>)

Published: 2024-05-18T12:22:15Z

Content type: article

Language: en

Sources: [The Last Static Blog RSS](<https://devfeed.tech/sources/the-last-static-blog-rss.md>)

Topics: [Game Development](<https://devfeed.tech/topics/game-development.md>), [Godot](<https://devfeed.tech/topics/godot.md>), [callback](<https://devfeed.tech/topics/callback.md>), [function](<https://devfeed.tech/topics/function.md>), [Mathematics](<https://devfeed.tech/topics/mathematics.md>)

Tags: [callback](<https://devfeed.tech/tags/callback.md>), [fps](<https://devfeed.tech/tags/fps.md>), [game](<https://devfeed.tech/tags/game.md>), [game-development](<https://devfeed.tech/tags/game-development.md>), [games](<https://devfeed.tech/tags/games.md>), [math](<https://devfeed.tech/tags/math.md>), [physics](<https://devfeed.tech/tags/physics.md>), [prog](<https://devfeed.tech/tags/prog.md>)

### AI overview

This article explains why repeatedly applying linear interpolation for damping can make game behavior depend on the refresh rate. Using Godot examples, it analyzes the iterative formula and motivates a frame-rate-independent solution.

### Source excerpt

As I'm exploring the fantastic world of indie game development lately, I end up watching a large number of video tutorials on the subject. Even though the quality of the content is pretty variable, I'm very grateful to the creators for it. That being said, I couldn't help noticing this particular bit times and times again: a = lerp(a, B, delta * RATE) Behind this apparent banal call hides a terrible curse, forever perpetrated by innocent souls on the Internet. In this article we will study what it's trying to achieve, how it works, why it's wrong, and then we'll come up with a good solution to the initial problem. The usual warning: I don't have a mathematics or academic background, so the article is addressed at other neanderthals like myself, who managed to understand that pressing keys on a keyboard make pixels turn on and off. What is it? Let's start from the beginning. We're in a game engine main loop callback called at a regular interval (roughly), passing down the time difference from the last call. In Godot engine, it looks like this: func _physics_process(delta: float): ... If the game is configured to refresh at 60 FPS, we can expect this function to be called around 60 times per second with delta = 1/60 = 0.01666.... As a game developer, we want some smooth animations for all kind of transformations. For example, we may want the speed of the player to go down to zero as they release the moving key. We could do that linearly, but to make the stop less brutal and robotic we want to slow down the speed progressively. Linear (top) versus smooth/exponential (bottom) animation Virtually every tutorial will suggest updating some random variable with something like that: velocity = lerp(velocity, 0, delta * RATE) At 60 FPS, a decay RATE defined to 3.5, and an initial velocity of 100, the velocity will go down to 0 following this curve: Example curve of a decaying variable Note velocity is just a variable name example, it can be found in many other contexts If you

## Simulating dice casting, to calculate Risc game fairness

DevFeed: [Simulating dice casting, to calculate Risc game fairness](<https://devfeed.tech/articles/simulating-dice-casting-to-calculate-risc-game-fairness-39372.md>)

Original publisher: [Read original article](<https://kt.academy/article/risc-dice-dilemma>)

Published: 2024-01-03T00:00:00Z

Content type: article

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Programming](<https://devfeed.tech/topics/programming.md>), [Algorithm](<https://devfeed.tech/topics/algorithm.md>), [Simulation](<https://devfeed.tech/topics/simulation.md>)

Tags: [algorithm](<https://devfeed.tech/tags/algorithm.md>), [game](<https://devfeed.tech/tags/game.md>), [programming](<https://devfeed.tech/tags/programming.md>), [simulation](<https://devfeed.tech/tags/simulation.md>), [strategy](<https://devfeed.tech/tags/strategy.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

The article examines whether the Risc battle dice-resolution algorithm is fair. It enumerates all 46,656 possible outcomes for five dice and finds that the attacker loses an average of 0.92 soldiers per fight, while the defender loses 1.08.

### Source excerpt

Using programming to simulate a battle in Risc, and learn about its fairness.

## How to Play Grand Poo World 3

DevFeed: [How to Play Grand Poo World 3](<https://devfeed.tech/articles/how-to-play-grand-poo-world-3-37489.md>)

Original publisher: [Read original article](<https://davidwalsh.name/play-grand-poo-world-3>)

Author: David Walsh

Published: 2023-11-28T00:35:41Z

Content type: tutorial

Language: en

Sources: [David Walsh](<https://devfeed.tech/sources/david-walsh.md>)

Topics: [coding](<https://devfeed.tech/topics/coding.md>), [Emulator](<https://devfeed.tech/topics/emulator.md>), [patches](<https://devfeed.tech/topics/patches.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [file](<https://devfeed.tech/topics/file.md>)

Tags: [coding](<https://devfeed.tech/tags/coding.md>), [emulator](<https://devfeed.tech/tags/emulator.md>), [game](<https://devfeed.tech/tags/game.md>), [games](<https://devfeed.tech/tags/games.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [mario](<https://devfeed.tech/tags/mario.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [patches](<https://devfeed.tech/tags/patches.md>)

### AI overview

A tutorial explaining how to assemble the files and utilities needed to patch a clean Super Mario World ROM with Grand Poo World 3, including validation and emulator options for macOS and Windows.

### Source excerpt

The underground world of creating and streaming Super Mario World-based ROM hacks continues to gain popularity. This popularity is a tribute to the creativity of gamers and the quality of the original 30 year old video game's mechanics. Over the past decade, incredible ROM hacks like Grand Poo World 1 and 2, Invictus, and Dram [...] The post How to Play Grand Poo World 3 appeared first on David Walsh Blog.

## Socks, a matching game based on an additive combinatorics problem

DevFeed: [Socks, a matching game based on an additive combinatorics problem](<https://devfeed.tech/articles/socks-a-matching-game-based-on-an-additive-combinatorics-problem-40478.md>)

Original publisher: [Read original article](<https://www.jeremykun.com/2023/10/14/socks-a-matching-game-based-on-an-additive-combinatorics-problem/>)

Published: 2023-10-14T06:00:00Z

Content type: article

Language: en

Sources: [Jeremy Kun](<https://devfeed.tech/sources/jeremy-kun.md>)

Topics: [math](<https://devfeed.tech/topics/math.md>), [structure](<https://devfeed.tech/topics/structure.md>)

Tags: [additive-combinatorics](<https://devfeed.tech/tags/additive-combinatorics.md>), [board-games](<https://devfeed.tech/tags/board-games.md>), [card-game](<https://devfeed.tech/tags/card-game.md>), [combinatorics](<https://devfeed.tech/tags/combinatorics.md>), [game](<https://devfeed.tech/tags/game.md>), [games](<https://devfeed.tech/tags/games.md>), [group-theory](<https://devfeed.tech/tags/group-theory.md>), [math](<https://devfeed.tech/tags/math.md>), [mathematics](<https://devfeed.tech/tags/mathematics.md>), [structure](<https://devfeed.tech/tags/structure.md>), [xor](<https://devfeed.tech/tags/xor.md>)

### AI overview

This article introduces Socks, a matching game modeled using six-dimensional binary vectors and additive combinatorics. It proves that any seven cards contain a valid zero-summing set, while six specific cards can avoid one, so the minimum guarantee is seven cards.

### Source excerpt

Can you find a set of cards among these six, such that the socks on the chosen cards can be grouped into matching pairs? (Duplicate pairs of the same sock are OK) Spoilers: If the cards are indexed as 1 2 3 4 5 6 Then the following three subsets work: $\{ 1, 2, 4, 5, 6 \}$, $\{ 2, 3, 6 \}$, and $\{ 1, 3, 4, 5 \}$.

## The Secrets of Skellig

DevFeed: [The Secrets of Skellig](<https://devfeed.tech/articles/the-secrets-of-skellig-40643.md>)

Original publisher: [Read original article](<https://eviltrout.com/blog/2023-07-17-the-secrets-of-skellig/>)

Published: 2023-07-17T00:00:00Z

Content type: release

Language: en

Sources: [Robin Ward](<https://devfeed.tech/sources/robin-ward.md>)

Topics: [Game Development](<https://devfeed.tech/topics/game-development.md>), [Godot](<https://devfeed.tech/topics/godot.md>), [blender](<https://devfeed.tech/topics/blender.md>), [3D](<https://devfeed.tech/topics/3d.md>)

Tags: [blender](<https://devfeed.tech/tags/blender.md>), [development](<https://devfeed.tech/tags/development.md>), [game](<https://devfeed.tech/tags/game.md>), [game-development](<https://devfeed.tech/tags/game-development.md>), [games](<https://devfeed.tech/tags/games.md>), [puzzle](<https://devfeed.tech/tags/puzzle.md>)

### AI overview

The author announces The Secrets of Skellig, a puzzle game inspired by crosswords, while noting that the project is currently on indefinite hold. The article describes learning Blender and Godot while developing the game primarily alone.

### Source excerpt

Note: The Secrets of Skellig is on indefinite hold now while I work on other things. I've wanted to dip my feet back into game development for a while, and last year I decided to put my money where my mouth is. I resigned from my full time job at Discourse and pulled up a bunch of YouTube tutorials on Blender and Godot. It's been a ridiculous amount of fun, and I've learned so much about how modern 3D games are made. I'm finally ready to announce what I've been working on. It's a puzzle game, inspired by crosswords, called "The Secrets of Skellig."

[Next page](<https://devfeed.tech/tags/game.md?cursor=WyIyMDIzLTA3LTE3VDAwOjAwOjAwKzAwOjAwIiwgIjhjNjQwZTM3LTc0NGYtNGY0Yy04MGZmLTYyMGY3MWUyYTNhOCJd>)