Sign in

Ben Britten

@benbritten.bsky.social
1.3K followers 2.5K following 866 posts

Previously worked on many, many games; gamedev for nearly 20 years. I am old. I post random 3d printing stuff and sometimes bunnies. He/Him. Australia. Also birds apparently. (All projects/code/art/games I post are human made, genAI is garbage.)

PostsRepliesMedia
Ben Britten @benbritten.bsky.social · 15/10/2026
More boring indie gamedev: cuz everything costs too much, I spent some time scavenging various bits of old hardware. Managed to find a few old drives, an old mac mini, and got a cheap enclosure: now I have a RAID 10 NAS that will house our build artefacts and backups locally so I can cut my AWS use.
A pile of old hard drives: two 3.5 inch spinning drives, three 2.5 SSDs, a 2.5 spinning drive, and even an old mSATA ssda cute little 3d printed caddy holding a 4 drive enclosure, a 2012 mac mini, an external drive and power brick. Not visible: this all runs linux and the drives are raided together for extra redundancy
160 0
Ben Britten @benbritten.bsky.social · 15/10/2026
had a bit of time for the prototype this week. Got some super exciting work done: added an in-game log view that mirrors what the #godot log output looks like. This is super boring but handy as i have also started to do proper builds and quick access to logs makes debugging a build much quicker.
160 0
Ben Britten @benbritten.bsky.social · 10/10/2026
since it was GCAP this week I havent had any time to work on the game prototype. I am instead taking this opportunity to upgrade all my VMs and Linux boxes. Truly the most exciting part of being a gamedev 😅 Tho you do get to feel like a haxor with lots of terminals all doing stuff.
The world's most boring screenshot. Four terminal windows showing various stages of ubuntu upgrade.
140 0
Ben Britten @benbritten.bsky.social · 02/10/2026
Last tweak for today on the #godot roguey-likey-blocky-breaky prototype. I added enemies in and got their health working and got some decent damage numbers popping out of em. Combat is almost kinda fun! will be interesting to see when there are more enemies! Anyway, lots of good chaos!
040 0
Ben Britten @benbritten.bsky.social · 02/10/2026
One thing I did add was just the slightest 'bounce back' when the blocks are hit. Without this it feels real dead. It is subtle but makes a huge difference.
110 0
Ben Britten @benbritten.bsky.social · 02/10/2026
Ok, after many minor rabbit holes, I have added the enemies back into the game. For now the just spawn when I tell them to for testing, and much like a procgen level, when and where to spawn enemies will be an algo that gets tweaked forever and ever.. anyway. I do like the blocky movement.. #godot
140 0
Ben Britten @benbritten.bsky.social · 01/10/2026
Here it is with the lights on, and some lights added to the shots. interesting! I like where it is going. Needs some more tweaks of course. I will need to add a wall glow pass to the projectiles so that they illuminate the walls as they go as well.
020 0
Ben Britten @benbritten.bsky.social · 01/10/2026
Finally, I added a bounce limit, so after a certain number of bounces they will also return to you. this number could be tweaked, perhaps by the player? dunno.. but different weapons would have different properties of course. Maybe have a 'pull all balls back now' skill? lots of options
110 0
Ben Britten @benbritten.bsky.social · 01/10/2026
Since it is a blocky-breaky kinda game, there is lots of bouncing around, and if you can only shoot a certain number of things, then having them get lost in the maze would suck a bit. So if they go offscreen then they will boomerang back to you automatically.
100 0
Ben Britten @benbritten.bsky.social · 01/10/2026
More work on the #godot prototype. playing with a limited clip approach where you have a number of projectiles and once they are thrown you have to wait till they come back before you can throw again. If they 'hit' you then you will reclaim them..
131 0
Ben Britten @benbritten.bsky.social · 01/10/2026
Right! I made a super quick fix where I basically just give the objects a single frame reprieve from collision detection after a collision. And that seems to have (mostly*) fixed my getting-stuck-in-geo problem, and also hugely increased perf. So that is probably optimal enough for now!
110 0
Ben Britten @benbritten.bsky.social · 01/10/2026
Tho I actually did this test not for perf, but to replicate this issue with the weapons getting 'stuck' in the geo. (this is going to look like shit on bsky probably, but here is a closeup where I frame step through it, you can see one of the axes gets jammed in the geo here).
100 0
Ben Britten @benbritten.bsky.social · 01/10/2026
Some stress testing this morning: it fails pretty quickly but holds up actually better than I had thought it would. Those particle effects are not actually particle effects, just a bunch of sprites being animated that I bodged together. if I fix that then this should be plenty performant 😅 #godot
110 0
Ben Britten @benbritten.bsky.social · 30/09/2026
love the smell of vibe coding in the morning
a bluesy error 503 on the discover tab, so like not that important at all. Good job Claude!
010 0
Ben Britten @benbritten.bsky.social · 30/09/2026
And I added a handy debug panel that you can call up that has a handful of useful info in it so I can stop scrolling endlessly through the logs 😅 Not much there yet, but it is all nice and extensible so I can quickly bodge on things I need to look at in real time to figure stuff out.
000 0
Ben Britten @benbritten.bsky.social · 30/09/2026
Did not get too much time to work on the #godot prototype today but still managed to do some small tweaks. lighting: I changed the function that calculated the wall glow from distance to be a proper easing function with some adjustment available so I could adjust it and make it a bit less gloomy.
140 0
Ben Britten @benbritten.bsky.social · 29/09/2026
Once we have that all sorted out, the corners are in and it feels much more like it _should_ feel. Here we see me going through a narrow corridor without corners and with corners. with corners feels so much more 'correct' (even tho, algorithmically it is not correct! stupid math!)
100 0
Ben Britten @benbritten.bsky.social · 29/09/2026
So we add yet another edge case pass to our line of sight algo. This is specifically looking for that edge case where we have a corner that is not technically visible, but should be! Here we can see the LoS pass with and without the new corner edge case code.
100 0
Ben Britten @benbritten.bsky.social · 29/09/2026
More tweaks on my #godot roguey-likey-blockey-breaky prototype. Now that my lighting is 'done' (lol) I will proceed to tweak the shit out of it forever. First up: fix the corners! The algos to calc the visible walls always leave out corners because they are technically not visible! Boo! Bad corners!
131 0
Ben Britten @benbritten.bsky.social · 28/09/2026
Once you have all the visible tiles, then you can use a second tileMapLayer that renders just above the main one, and you can draw the wall tiles without illumination, and modulate their brightness based on the player's light cone. I bumped up the wall brightness a bit to make it a bit more readable
120 0
Ben Britten @benbritten.bsky.social · 28/09/2026
So, I am also going to do a traditional tile-ray-cast to calculate the visible tiles. Usually you would use a Bresenham line algo, but since I can move through fractional tiles you need to use something like the DDA Amanatides + Woo algo. (which is what I am using here)
100 0
Ben Britten @benbritten.bsky.social · 28/09/2026
Turns out adding lights to a tileMapLayer in #godot is easy! Just add a PointLight2D and then set the tile occlusion in the same way you set collision. easy peasy. The problem of course is that the occluded tiles are in their own shadow. Makes for a very stylized look, but a bit hard to see. 🧵
180 0
Ben Britten @benbritten.bsky.social · 25/09/2026
these Xbox game release -> studio closure cycles are getting shorter and shorter
a quote post saying 'coming soon' and the quoted post has been deleted
01141 0
Ben Britten @benbritten.bsky.social · 25/09/2026
And here is a finished level. Finished in as much as it has both walls and floors I guess. there is nothing else in it 😅
010 0
Ben Britten @benbritten.bsky.social · 25/09/2026
Anyway, here is me running this at high speed to find some really bad maps:
000 0
Ben Britten @benbritten.bsky.social · 25/09/2026
The trick is that the floodfill needs to start somewhere, so I just use the first room I place. However, sometimes this room is the one that is disconnected and you prune a huge number of rooms, or maybe the map is just badly formed and like half of it is just not connected to the other half.
a 'bad map generation' showing that one half of the map is disconnected from the other half.Another bad map generation showing a large area to be pruned
200 0
Ben Britten @benbritten.bsky.social · 25/09/2026
One thing that will happen when you are doing this sort of procgen for levels is that you can get disconnected areas. They are mostly harmless, but will cause problems in some extreme cases. The solution is to do a validation pass* using a floodfill algo.and prune any unconnected areas. #godot 🧵
1100 0
Ben Britten @benbritten.bsky.social · 24/09/2026
You can use any image really... this is kinda fun! I love me some wacky procgen!
120 0
Ben Britten @benbritten.bsky.social · 24/09/2026
Ok, now that I have added arbitrary base shapes to my level procgen, I can finally do what I have set out to do: make every level vaguely mitten-shaped. As a player you probably would not even notice, but I will know it is there! Totally worth two days of extra dev 😅 #godot
1151 0
Ben Britten @benbritten.bsky.social · 24/09/2026
New day, new tweaks to the procgen for my roguey-likey-blocky-breaky game prototype. I changed it so that it no longer just uses rectangles and can use any arbitrary collection of contiguous points. Here I am just using primitives but it can generate a map inside any cloud of points really. #godot
0101 0
Ben Britten @benbritten.bsky.social · 23/09/2026
Right, here is the 'final' (not really final) algo. Make rooms, generate maze in the voids, connect rooms and maze, then remove all dead ends. Makes for a decent level generator! Lots to tweak, and it is not close to perfect, but pretty good for a few hours work! #godot
020 0
Ben Britten @benbritten.bsky.social · 23/09/2026
RIght, got the rooms connecting to the maze now. You can tweak how connected you want it to be. Next up: sparsify the maze and make it look a bit cleaner (and probably way more tweaking) #godot #procgen
110 0
Ben Britten @benbritten.bsky.social · 23/09/2026
Ok, turns out it was pretty easy to shmoosh the maze generator into the cracks between the rooms. Now to connect the rooms to the maze, and finally to sparsify the maze and clean it up.
130 0
Ben Britten @benbritten.bsky.social · 23/09/2026
Here is the maze, this is using the recursive backfill with a few funky changes to make it nice and spaced out and tweaked to generate long winding passages. There is something hypnotic about watching mazes autogenerate. #godot
120 0
Ben Britten @benbritten.bsky.social · 23/09/2026
My gaunt-like is sorta evolving into a roguelike+ block breaker (rogue breaker?) so I need some procgen. Got my room generator and my maze generator (next post)! just gotta combine them now. #godot
180 0
Ben Britten @benbritten.bsky.social · 22/09/2026
what if my gauntlet-like (gauntlike?) was actually a block breaker (which is where this art is from anyway) 🤔 Feels like a weird vampire survivors vibe. Maybe even Diablo-ish, (Diablocko?)
010 0
Ben Britten @benbritten.bsky.social · 05/09/2026
I am just re-using the already existing debris system to show damage to baddies. When you hit a non-enemy you get debris, when you hit an enemy, you get red debris, which looks enough like blood that it will be fine for now was a nice easy bit of juice that only took me about 5 minutes to add.
000 0
Ben Britten @benbritten.bsky.social · 05/09/2026
Workin on the #godot prototype so I can learn godot: Today I bodged together some very placeholder overworld tiles so I can have my starting area be 'outside' the dungeon. I also added baddies who currently just sit there and get murdered and then vanish. But all the systems work, so that is good.
110 0
Ben Britten @benbritten.bsky.social · 04/09/2026
I decided my #godot prototype needed a name and a paper-thin story. You have to venture into the dungeon and retrieve the Mitten of Yendor. So that is happening.
1100 0
Ben Britten @benbritten.bsky.social · 02/09/2026
Because this is a silly #godot prototype and I can do what I want, I am adding some juice before there is even any actual gameplay 😅 Juice makes the game more fun to play, and it also importantly makes the game more fun to dev! This is programmatic, and random based on the bounce angle.
020 0
Ben Britten @benbritten.bsky.social · 02/09/2026
stupid bugs are always fun 🐛 I seem to have broken my mouse and keyboard controls for throwing axes 😬
000 0
Ben Britten @benbritten.bsky.social · 02/09/2026
ok, now my 'learning #godot prototype 0002" has gamepad support (also WASD and arrows of course), movement, collisions, and ranged attack. Tomorrow I will add some things that you can smash :)
060 0
Ben Britten @benbritten.bsky.social · 01/09/2026
Trying to learn #godot. I am moving on to prototype-0002, now with things that move and bounce! Astute moots will notice that the art looks very similar to proto-0001, cuz I am using the same art 😅 I was thinking of making this one vaguely Gauntlet-shaped? This is only a few hours of work so far.
2100 0
Ben Britten @benbritten.bsky.social · 24/08/2026
This is NOT a large game, but still: building anything in Godot is generally pretty fast (compared to a similar scoped project in unity), and on an M4 is stupid fast. This is a linux build with minor changes: (In unity I would expect a similar build would be ~1min on this rig)
a screenshot of the end of a jenkins build that says: total build time 13s
110 0
Ben Britten @benbritten.bsky.social · 23/08/2026
Now for the most exciting part of gamedev: builds! whee! I am a big believer in just getting your CI/CD system up and running from the start. I have a Jenkins control node running in a VM on a linux box, and an M4 mac mini as my main build box. the m4 is a surprisingly capable build machine.
a relatively boring screenshot of the middle of a jenkins console log for a godot build using my custom builder code.
281 0
Ben Britten @benbritten.bsky.social · 21/08/2026
Also added localisation because why not? (this is all placeholder google sheets translated, so it is rubbish, I would get real translators if I ever shipped this) but it is really good to be able to see where the strings overflow the containers 😬 basically the same thing as like scratch audio.
the main menu of my little protptype, localised into korean, probably badly because it is google sheets translated. Also it overflows the container and looks badthe main menu of my little protptype, localised into french, probably badly because it is google sheets translated. Also it overflows the container and looks really bad
030 0
Ben Britten @benbritten.bsky.social · 21/08/2026
Workin on my level builder tools the last few days. Now levels have nice preview images (actually all the level meta data is saved into that png, into the low-bits of the alpha channel) Also it is super quick to jump into play mode and back out while editing, which is nice
181 0
Ben Britten @benbritten.bsky.social · 13/08/2026
I was trying to make the main menu look just a tiny bit less programmer-arty, but somehow made it worse I think.. apologies to @cronobreak.bsky.social who did this art originally way back in the day 😬
030 0
Ben Britten @benbritten.bsky.social · 13/08/2026
Made some more progress on my 'prototype-so-I-can-learn-godot' project. Added some anims for the pickups so it is clear what you are doing, added a bit of level info at the start of levels to give you a hint as to what your goals are, and made what could be considered a 'proper' first level maybe.
040 0
Ben Britten @benbritten.bsky.social · 10/08/2026
Added some boomy blocks, which do pretty much what one would expect. Check out those sweet sweet explosion animations. frikkin rad. They also cascade, as exploding boxes tend to do.
040 0