Ian Durra

Ian Durra

@freddifish.bsky.social

game dev by night, game dev by day

223 followers427 following1.2K posts

I’ve been really enjoying the Tao of programming. There is something spiritually fulfilling about writing a piece of software. The sense of mastery I get when writing a loosely coupled module. The joy of having a finished product. There’s something both futuristic and ancient about coding.

Power goes out, and player has to find the fuse box. Horror game players expect a couple of these tropes in a game. Now I need to add a jump-scare when the player turns around.

Planet Zoo 2 has a setting option where you can switch which Display your game is on (1, 2, etc..). I like this feature so much I'm putting it in all my games moving forward. Totally a QOL feature, but easy to implement, and solves that awkward dance of switching a fullscreen game between monitors.

In godot I don't know of a way to determine if the game is paused in the debugger? Just spent hours thinking my code was busted only to realize the game was paused, would never have figured that out except for running across some old forum post.

Is this 'fake' flashlight effect convincing? I am using vertex lighting for a ps1 aesthetic and have to get creative with my flashlights. Player needs to find a generator to turn on the lights. #godot

writing a core set of walking-sim modules (dialogue, interaction, etc..) that I’m hoping to take forward into future games of same genre. id primarily like to be writing custom middleware for pre-existing modules.

Paratopic... wow! very abstract. Not sure I understand what happened, but it was terrifying. Also did an incredible job with the interaction mechanics. So much to learn.

the vibe coded decompilations are sloppy, but they are functional. Throws a gigantic wrench into any company obsessed with protecting their IP.

Today I played Simpsons Hit & Run in the browser courtesy of an AI decompilation. The implications are staggering. IMO any game pre-2026 is vulnerable to a vibe coded decompilation.

unlike the usual AI hype with no results, getting Simpsons Hit & Run to run well in browser is not easy. we might be about to enter a golden age of piracy, equivelant to Limewire‘s heyday.

as with all things piracy, it’s about availability. People are happy to pay for stuff if they are getting a fair bargain. I don’t think this impacts ethical creators/companies. But it sure will be disastrous for the unethical actors in AAA games, as piracy is trivial.

Ordered a Morse code keyer for a gamejam. I’m thinking of a railroad operator game, where you have to tell trains which track to use in Morse Code

I got short on time at the end, so there lots of things I would have liked to do that got scrapped that would have sold the player fantasy of cruise ship better. I'm pretty sure based on early feedback this is not the "one" to commit to a full release. But I think it's more an issue of

not delivering on the cruise ship fantasy hard enough. I think the idea is strong, the characters are fun, but the content is lacking, and player agency is weak. I'm going to try posting some clips on social media, but then I'll move on to next prototype with all the systems I built

Did I mention these guys are all fully voice acted? wanted to see how hard it would be to record + act. Getting normalized audio levels was tough, and maintaining a consistent character is hard. but overall I think it turned out good.

tomorrow will be two weeks working on a Cruise Ship horror game. 70% was spent writing modular/re-usable code, 30% art/writing. I'm going to close this prototype this weekend with a playable build on itch, and post it on youtube/instagram. Depending on response, I'll either continue or scrap it.

Next prototype I'll be spending 90% on the art/writing and 10% programming. This will be possible because I'm sticking to same genre/mechanics as prototype #1. Basically I am just scrapping the player fantasy and art-style until I find one that works on social media.

Hearing that the ps5 was cracked only for a bunch of vibecoded homebrew apps to be added is ideologically disheartening. The whole point of the homebrew scene is gaining autonomy over the hardware you purchase, which is just antithetical to Ai coding.

View full thread

Switching to a loosely coupled architecture means if there’s a problem with the quest system, changing that script will not impact the music system etc… it’s gonna enable me to respond to changes found during playtesting faster than before.

to be clear a loosely coupled architecture is not for game jams, and is not for complete beginners (I was one very recently). but it makes large complex projects easier to manage, at the expense of additional overhead early on.

I was writing tightly coupled code for my first two games using the event-bus pattern (a global script containing every signal). This made it impossible to re-use even simple modules like a quest system across games. Also made debugging a nightmare as complexity grew.

oops accidentally didn't put the Korean translation in with the final Lucky Break build, despite paying for it... welp here the comes the Korean Language patch!

forgot how much I like game writing, really can just put whatever you want, and the zanier the better. #godot also implementing a simple dialogue system was neat.

“Signal up, call down” gets passed around very casually in the Godot circles. But imo 90% of people are not following this, as the implications of adhering to this pattern significantly change your codebase. imo the Godot docs don’t go far enough in explaining this best practice.

I’ve been writing tightly coupled code up until now and it’s benefitted me while learning, as it enabled me to ship games. However once the projects grew in complexity it became hell to maintain. also made responding to player feedback very difficult as the code was one big knot. but no longer!!

For next game I want to spend the majority of dev cycles on responding to playtesting feedback, and iterating. To do this, I need clean architecture that is loosely coupled. Because if I need to remove/add a feature, I want it to be entirely independent of other systems in the game.

This means I’ll be sacrificing some time early on in the next game to establish a code architecture that prioritizes loosely coupled modules by taking advantage of the Observer pattern, and dependency injection. I’ll be posting my architecture diagram when it’s finished. ✅

Anyone know how to flip the right and left motion of a Bluetooth mouse connected to an iPad? Up and down is correct but because of the mirror involved, mouse right is now left etc… all the text is backwards in game to compensate but mouse is still flipped left/right #godot #peppersghost