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
0116
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.
4389382965
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
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
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
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
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
252727853
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
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
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
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 · 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
Rubber Duck Bath Defence Day 15 In today's 30 minutes #gamedev I've made tower placement grid-based. Green: tower placement allowed Red: tower placement forbidden Blue: enemy spawn location (non-functional) And towers can no longer be infinitely stacked in the same spot. #godot #indiedev
1132
Khemi @khemitron-industries.net · 20/08/2026
Rubber Duck Bath Defence Day 14 We have tower placement! The player can now select a tower, move it to wherever they want it to go and then confirm placement. The player can cancel placement via a keybind, or the Cancel button. Nothing stops infinite towers yet though. #gamedev #godot #indiedev
0134
Khemi @khemitron-industries.net · 19/08/2026
Rubber Duck Bath Defence Day 13 30 minutes of "tidyup" #gamedev today. Moved the tower mouse-following code into its own scene and set up code to pass UI tower choice button press info along. I'd love to post fun gameplay videos every day, but code maintenance is important too! #indiedev #godot
142
Khemi @khemitron-industries.net · 18/08/2026
Rubber Duck Bath Defence Day 12 When I choose a tower to place, the tower now moves with the mouse. As shown in the clip, the tower doesn't start trying shoot any enemies, so it can't be used as a mobile duck cannon. However, I need to put the code in the right place. #godot #gamedev #indiedev
053
Khemi @khemitron-industries.net · 17/08/2026
Rubber Duck Bath Defence Day 11 With a tower state machine in place, it's time to let the player place towers. 30 minutes #gamedev gets me a set of hard-coded buttons that can spawn a disabled tower in a set location. Unfortunately it doesn't follow the mouse yet. #godot #indiedev
1135
Khemi @khemitron-industries.net · 16/08/2026
Rubber Duck Bath Defence Day 10 For today's 30 minute #gamedev stint, I started work on a proper state machine for towers. As a C# #godot dev, I'm a big fan of chickensoft.games, and I'm using their LogicBlocks package for my state management. #indiedev
073
Khemi @khemitron-industries.net · 15/08/2026
Rubber Duck Bath Defence Day 9 Did 1 hour #gamedev as I couldn't do any yesterday. Status effects now work! There is a slow effect and a fire effect (but the tower AoE looks the same right now). I have also added a path for the enemies to follow. Looks more like tower defence! #godot #indiedev
072
Khemi @khemitron-industries.net · 13/08/2026
Rubber Duck Bath Defence Day 8 With today's 30 minutes #gamedev, I tested out how to code status effects. I wanted something that could be configured in the #godot editor, so I'm using resources. I've started with Slow and Fire so I can work out implementing different behaviours early. #indiedev
062
Khemi @khemitron-industries.net · 12/08/2026
Rubber Duck Bath Defence Day 7 Today's #gamedev time has been spent refactoring the tower code so I could test another tower defence essential - a simple aoe tower. It's doing damage correctly, and the existing towers haven't broken, so I consider that a win. #godot #indiedev
062
Khemi @khemitron-industries.net · 11/08/2026
Rubber Duck Bath Defence Day 6 In today's 30 minutes #gamedev, I added an armoured enemy, which has 1 point of damage reduction. In my test scene, the middle tower with 1 damage cannot hurt an armoured enemy, while the outer two, which both do 2 damage can. #godot #indiedev
141
Khemi @khemitron-industries.net · 10/08/2026
Rubber Duck Bath Defence Day 5 Today I've added projectiles. Towers have a firing rate and shoot at whatever their current target is. When the target's hit, the projectile vanishes. The projectile also vanishes if the target disappears e.g. it hits the base, or dies. #gamedev #indiedev #godot
293
Khemi @khemitron-industries.net · 09/08/2026
Rubber Duck Bath Defence Day 4 A bit more than 30 minutes #gamedev today. It's time for basic target choice. The towers pick the enemy within their range that is closest to the base, shown by the red lines. This gets re-evaluated every time positions are updated. #godot #indiedev
1174
Khemi @khemitron-industries.net · 08/08/2026
Rubber Duck Bath Defence Day 3 More proof of concept! In my 30 minutes #gamedev I've set up a basic tower. It has a configurable circular range (displayed when game runs) and currently logs an enemy entering or leaving its range. I added two to my test scene and checked the logs. #godot #indiedev
092
Khemi @khemitron-industries.net · 07/08/2026
Day 2 of Rubber Duck Bath Defence With today's 30 minutes #gamedev, I've done quick proof-of-concepts: - Enemies spawn randomly in an area and move towards the base at a constant speed - The base detects when an enemy hits it and displays "Ouch!" - The enemy disappears afterwards #godot #indiedev
1132
Khemi @khemitron-industries.net · 06/08/2026
Day 1 of Rubber Duck Bath Defence #gamedev #indiedev Do you like my draft title? In today's 30 mins of dev time... It's been a while since I've worked with anything non-UI in #godot, so I had a quick look at the tutorial as a refresher. I made a simple base and enemies that spawn in on a timer.
181
Khemi @khemitron-industries.net · 05/08/2026
I’m starting a new gamedev project with a small scope. My aim is to work on it for at least 30 minutes a day. The premise is: Rubber ducks defending the bathtub as a tower defence game. Maybe from other bath toys trying to pull the plug. Inspiration pictured. #godot #indiedev #gamedev
2114