Sign in

Khemi

@khemitron-industries.net
36 followers 15 following 182 posts

He/Him Senior Software Engineer by day, parent in the evening, Amateur Game Dev by night. Building my own game by spending at least 30 minutes a day on it after years of playing other amazing games and procrastinating.

PostsRepliesMedia
Reposted by Khemi
0x20 @play0x20.bsky.social · 25/09/2026
Excited to announce that Rift Rat, one of my entries for the Underwater jam, is now available to play on Itch. play0x20.itch.io/rift-rat #gamedev #indiedev #GodotEngine #UnderwaterJam
play0x20.itch.io
Rift Rat by 0x20
EXPLORE // FIGHT // SURVIVE
2167
Khemi @khemitron-industries.net · 23/09/2026
Rubber Duck Bath Defence Day 44 Actually a late update from yesterday. I have my directional aoe firing. It does damage to what it fires at... usually. There is a bug where it fires at a new set of targets, but damages the previous target. Bugs are just a fact of #gamedev #godot #indiedev
0126
Khemi @khemitron-industries.net · 20/09/2026
Rubber Duck Bath Defence Day 43 Today, I've set up my line aoe attack to rotate, following the primary target. It also detects that there are enemies within the line. However, the way I wrote my tower firing code doesn't work well with this. So I'll have to rewrite it. #godot #gamedev #indiedev
0126
Khemi @khemitron-industries.net · 19/09/2026
Rubber Duck Bath Defence Day 42 Had a couple of days with no time for #gamedev, but I'm back. Today sees the start of directional aoe attacks. My prototype is a simple rectangle line attack. To finish the prototype, I want it to rotate and hit everything in the line. #godot #indiedev
0166
Reposted by Khemi
Marsu @marsusu.bsky.social · 18/09/2026
Finally got around drawing this animation idea based on the video of a very hungry rabbit.
4591743034
Reposted by Khemi
Marsu @marsusu.bsky.social · 17/09/2026
Commission work for @khemitron-industries.net a design of a gnome merchant & Scumble the mouse. Thanks again! :D
0113
Khemi @khemitron-industries.net · 16/09/2026
Rubber Duck Bath Defence Day 41 Today's 30 minutes #gamedev brings important tower stats - damage dealt (in-wave and overall), and kills. Having these stats available will let the player compare their towers and help with placement, selling, and upgrade decisions. #godot #indiedev
041
Khemi @khemitron-industries.net · 15/09/2026
Rubber Duck Bath Defence Day 40 A couple of changes today. I set up a base level scene from which all levels inherit. This lets me easily create levels with consistent behaviour. I also changed enemy spawning so the number of enemies automatically increases each wave. #godot #indiedev #gamedev
1121
Khemi @khemitron-industries.net · 14/09/2026
Rubber Duck Bath Defence Day 39 In today's 30 minutes #gamedev, I now have clean, working scene transitions. With that comes a "title screen" (just a new game button), and a Game Over screen. Now the player can start a new game, watch their base die, and restart if they want. #godot #indiedev
042
Khemi @khemitron-industries.net · 13/09/2026
Rubber Duck Bath Defence Day 38 I'd intended to set up a New Game button in today's #gamedev time. However, I realised that the cleanest way to do this is to delete and recreate the level scene. To do that, I'm building my overall scene manager. It'll save me work in the future. #godot #indiedev
0102
Khemi @khemitron-industries.net · 12/09/2026
I do enjoy the odd cloud of projectiles that floats around an enemy for a while at 15x engine speed. It's not something I really want players to experience though since the enemy gets much further into the level than they should!
001
Khemi @khemitron-industries.net · 12/09/2026
Rubber Duck Bath Defence Day 37 It's frustrating waiting for enemies to walk to your carefully constructed defences. I've added controls to let the player speed/slow time. This goes to a maximum of 3x speed, unless you've got debug mode on, when you can break the engine. #gamedev #godot #indiedev
152
Khemi @khemitron-industries.net · 11/09/2026
Rubber Duck Bath Defence Day 36 On to pausing and resuming the game today. There are now game speed controls, which can currently be used to pause or resume the game during a wave. While the game is paused, enemies and upgrades pause until the game is resumed. #gamedev #indiedev #godot
071
Khemi @khemitron-industries.net · 10/09/2026
Rubber Duck Bath Defence Day 35 Stomped some bugs in today's #gamedev Now the player can close and reopen the upgrade tree, and upgrade mid-wave without crashing. I also added a tween to show that a tower is upgrading while a wave is in progress, which disables shooting. #godot #indiedev
091
Khemi @khemitron-industries.net · 09/09/2026
Rubber Duck Bath Defence Day 34 Upgrade cost is now deducted from the player's resources on purchase. The upgrade button is disabled if the player can't buy it - e.g. it's too expensive, already bought, prerequisites not bought, or a mutually exclusive upgrade was bought. #gamedev #godot #indiedev
195
Khemi @khemitron-industries.net · 08/09/2026
I have a Trello board with my planned tasks, and I'll move a specific task into my "In Progress" column and work on that until it's done, at which point I can pull something else in. I've got tags to indicate whether it's something I need for prototyping, first playtest, or later.
100
Khemi @khemitron-industries.net · 08/09/2026
Rubber Duck Bath Defence Day 33 Back to the test level for today's #gamedev time! Clicking on a duck shows its upgrade tree. From there, the player can buy upgrades. The upgrades are applied to the duck, although it doesn't deduct the cost yet, or add to the duck's sale price. #godot #indiedev
092
Khemi @khemitron-industries.net · 07/09/2026
Since this is a hobby for me (although the goal is to actually release a game at the end of it), I'm not going to beat myself up too much if I miss a day. Sometimes I do more than 30 minutes anyway, or get a second gamedev session in, so it probably evens out.
120
Khemi @khemitron-industries.net · 07/09/2026
It's been quite easy to find 30 minutes, often at the start of the day, or during my lunch break on weekdays. That's the idea behind it being just 30 minutes. I'm sure I'll miss days to illness or childcare eventually. But it's a creative outlet, so if I've formed the habit, I should come back.
110
Khemi @khemitron-industries.net · 07/09/2026
Rubber Duck Bath Defence Day 32 Reworked my upgrade tree prototype to be manually configured with today's 30 minutes #gamedev. Drafted some upgrades to populate it. I used the Tooltips Pro #godot addon, adapted for C# interface, to show the description below the tree. #indiedev
1123
Khemi @khemitron-industries.net · 06/09/2026
It's very easy to fall into the sunk-cost fallacy. It's important to take a look at what you're doing and consider if it's the right choice. This idea would save me time organising upgrades. But I think that time would be lost chasing down bugs later. So it would be cool, but not worth it overall.
000
Khemi @khemitron-industries.net · 06/09/2026
Rubber Duck Bath Defence Day 31 With today's #gamedev, I've considered how I show tower upgrade information. I think I'm over-engineering my upgrade tree displays. Generating them is a cool idea, but I foresee many bugs. It'll be easier, and look better, to do each tree manually. #godot #indiedev
152
Khemi @khemitron-industries.net · 05/09/2026
Rubber Duck Bath Defence Day 30 Built my first prototype tower upgrade tree display in today's 30 minutes #gamedev! I can create a list of configured upgrades, set up their prerequisites, and the code automatically puts them in tiers. One step closer to upgrading towers! #godot #indiedev
073
Reposted by Khemi
puck_psx @puszke.bsky.social · 03/09/2026
I've released an all-in-one tool that lets you extract textures from any perspective, turn them into seamless textures, and use them on your 3D models. #gamedev #indiedev #gamedevtools #itchio #indiegame
252735860
Khemi @khemitron-industries.net · 04/09/2026
Rubber Duck Bath Defence Day 29 In today's 30 minutes #gamedev, I altered my tower definitions to have a list of upgrades for the tower, so I can easily setup different upgrades for every tower. I added the code to apply upgrades, just need a way for the player to buy them now! #godot #indiedev
050
Khemi @khemitron-industries.net · 03/09/2026
Rubber Duck Bath Defence Day 28 Started coding tower upgrades in my 30 minutes #gamedev. I have three upgrade components so far: 1. Stat changes 2. Attack modifications (type/effects/statuses) 3. Tower sprite alteration An upgrade will comprise one or more of these components. #godot #indiedev
091
Reposted by Khemi
Marsu @marsusu.bsky.social · 02/09/2026
A TTRPG character design commission of a charhide goblin named Kibb. Had fun with this one :D
0102
Khemi @khemitron-industries.net · 02/09/2026
Rubber Duck Bath Defence Day 27 Today's #gamedev 30 minutes have been spent thinking about implementing & displaying tower upgrades. I want tower upgrades to: - be easily configured (probably as a #godot resource) - have optional prerequisites - viewed as a tree (in-game, maybe editor) #indiedev
041
Khemi @khemitron-industries.net · 01/09/2026
Rubber Duck Bath Defence Day 26 Sometimes a player puts a tower in the wrong place, or it outlives its usefulness. After my 30 minutes #gamedev today, the player can sell towers they no longer need. Currently, the sale price is the same as the cost, but that will be tuned later. #godot #indiedev
192
Khemi @khemitron-industries.net · 31/08/2026
Rubber Duck Bath Defence Day 25 No more infinite tower spam after today's 30 minutes #gamedev Now towers have a cost, and that cost is deducted from the player's gold when the tower is placed. If you don't have enough money to afford the tower, you can't select it. #godot #indiedev
0142
Khemi @khemitron-industries.net · 30/08/2026
Rubber Duck Bath Defence Day 24 With 30 minutes of #gamedev today, I added a Start Wave button. The player can place towers before or during a wave. My 4-year-old daughter watched and insisted that I change the tower sprites to ducks immediately. True project manager behaviour. #godot #indiedev
174
Khemi @khemitron-industries.net · 29/08/2026
Rubber Duck Bath Defence Day 23 Enemies now come in waves! A wave is split into groups of enemies, so the enemies could be spawned all in one giant conga line, or in multiple smaller clusters. Once all enemies are dead, the wave is deemed complete. A good 30 minutes' #gamedev #indiedev #godot
0104
Khemi @khemitron-industries.net · 28/08/2026
The errant '7' in the above is brought to you courtesy of my cat, who enjoys contributing to my projects by being adorable, getting in the way of the monitor, and stamping in the keyboard at inopportune times.
010
Khemi @khemitron-industries.net · 28/08/2026
Rubber Duck Bath Defence Day 22 With today's #gamedev time, I finished making enemies data-driven #godot resources.7 To test it out, I set up my basic enemy, armoured enemy, and speedy enemy prototypes. They spawn in small groups - my next step is editor-driven configurable enemy waves. #indiedev
1124
Khemi @khemitron-industries.net · 27/08/2026
I do appreciate that not all of these updates have something awesome and new for me to show off. That’s just a by-product of working on any dev project, and is especially true when you only do 30 minutes at a time!
000
Khemi @khemitron-industries.net · 27/08/2026
Rubber Duck Bath Defence Day 21 In today's 30 minutes #gamedev... Continuing my theme of wanting as much as possible to be data-driven, I've begun the changes needed to build the game's enemies as #godot resources. This will lay the groundwork for drag-n-drop enemy wave configuration. #indiedev
172
Khemi @khemitron-industries.net · 26/08/2026
I have fond memories of playing random games with my sister and passing troops between heroes to move a newly recruited army out to my main hero. I liked mucking around with the map maker too. I think I have it on GoG. Might be time to spin it up for nostalgia purposes.
100
Khemi @khemitron-industries.net · 26/08/2026
The tone swing from “unplayable bug” to “orphan sacrifice” is amazing xD But very understandable in this context.
010
Khemi @khemitron-industries.net · 26/08/2026
One of my favourite games as a teenager; I’d love a good remake. I’m as dubious about you as to whether Ubisoft can make a good remake though.
120
Khemi @khemitron-industries.net · 26/08/2026
I am well aware that I need to organise my assets. My excuse is that I'm still prototyping things. I'll find new excuses not to do it later.
000
Khemi @khemitron-industries.net · 26/08/2026
Rubber Duck Bath Defence Day 20 Today's #gamedev time sees me finish my first pass at making duck towers data-driven as #godot resources. Now, if I want to make or edit tower, I can do so wholly in the Godot editor. I'm sure there's more to add, but learning how to do this has been fun. #indiedev
173
Khemi @khemitron-industries.net · 25/08/2026
Rubber Duck Bath Defence Day 19 Today's #gamedev time has been spent trying to make my towers more data-driven, defined by a #godot resource file rather than having a different scene for each. This will let me set up new types of tower much faster. Resources are also easier to mod. #indiedev
181
Khemi @khemitron-industries.net · 25/08/2026
It's too early for me to say, sorry! The stage I'm at is "I have an idea and I'm prototyping the systems I'll need to build it." I think I'm nearly at a point where that stops and I get out the spreadsheets though.
000
Khemi @khemitron-industries.net · 24/08/2026
I plan to have some kind of cap, but I'm not at the balancing stage yet. Once I am, I'll make a spreadsheet and play around with the numbers before finding some playtesters.
100
Khemi @khemitron-industries.net · 24/08/2026
I meant that good tower placement will result in more kills. So more efficient tower placement means more kills per tower purchase, which can then get the player ahead of the curve. I‘m still in the prototyping stage though, so I might look into some sort of good placement reward.
100
Khemi @khemitron-industries.net · 24/08/2026
The icon is from an AI-free asset pack. I probably need to adjust the scale, but that can wait. The "animation" was done with a simple tween - I've not used them for a while, so I'm now re-learning things. I also need to move enemy spawning to be part of the level scene.
010
Khemi @khemitron-industries.net · 24/08/2026
Rubber Duck Bath Defence Day 18 To stop the player spamming infinite towers immediately, towers need a resource cost. To tie the cost to the player's skill at placing towers, enemies should reward resources on death. So in today's #gamedev time, I made enemies drop coins. #indiedev #godot
2255
Khemi @khemitron-industries.net · 23/08/2026
Rubber Duck Bath Defence Day 17 As a player, I like to know what my units are doing. So in today's 30 minutes #gamedev I've added a simple tower info panel when you click on a tower. I think it would be good if it also showed how much damage a tower has dealt. #godot #indiedev
093
Khemi @khemitron-industries.net · 22/08/2026
Rubber Duck Bath Defence Day 16 A tower defence game needs consequences for not defending your base. With today's 30 minutes #gamedev, I've added health to the base. The base takes damage, and the game ends at 0 health. I also put in a debug info toggle for my test scene. #godot #indiedev
0111
Khemi @khemitron-industries.net · 21/08/2026
Technical discussion! I'm starting to work out what my level structure looks like from a godot editor and code point of view. PlacementLayer handles the logic to show towers, and uses LevelLayout to allow/forbid placement. LevelLayout determines where towers can be placed using custom tile data.
000