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
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
0136
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
0136
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
0176
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
051
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
1131
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
052
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
162
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
081
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
0101
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
1105
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
0102
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
1133
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
162
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
083
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
1102
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
0152
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
184
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
0114
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
1134
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
183
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
2265
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
0103
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
0121
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
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
1142
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
0144
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
063
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
1145
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
082
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
072
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
072
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
151
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
2103
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
1184
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
0102
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
1142
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.
191
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
2124
Khemi @khemitron-industries.net · 21/06/2026
It's been a while! I'm still working on #gamedev, but it's taken a backseat since my second daughter arrived. I'm building a way for players to send mercs on quests - I wanted to show how my #godot scene design's progressing. Fun note: the background map is one I made for a Pathfinder game
3101
Khemi @khemitron-industries.net · 28/11/2025
First thing I've been working on with my latest game idea - a recruitment screen. Here, the player can view available recruits, take a detailed look at their stats, and then hire the one(s) they like. I'm using limited assets to give an idea of the theme I want. #godot #gamedev #indiedev
083
Khemi @khemitron-industries.net · 23/11/2025
Slowly building a prototype gameplay loop for my game (codename: Project Ares). Here's my first pass at a list of recruits. I like the concept for attribute display, but overall the list is too busy. I'm going to use this elsewhere. Every mistake helps me progress! #godot #gamedev #indiedev
072
Khemi @khemitron-industries.net · 22/09/2025
System breakdowns, interaction, score and round time are now all in the #Godot version of Panic Spiral! From playtest feedback, the player now has a warning before a system breaks down, so you might be able to reach the problem quickly and fix it before it gets worse. #gamedev #indiedev
0183
Khemi @khemitron-industries.net · 11/09/2025
We had an interesting visitor to our holiday caravan. I never expected to see a mantis in the wild
010
Khemi @khemitron-industries.net · 07/09/2025
Panic Spiral progress is on haitus while I have a family holiday in the south of France. Gamedev updates will resume in a couple of weeks!
150
Khemi @khemitron-industries.net · 05/09/2025
Moving Panic Spiral into Godot is going well! The framework for systems is in. Based on feedback, I've added a breakdown phase, so the player has some warning before the system completely shuts down. Triggered by console commands for now, but working properly soon! #godot #indiedev #gamedev
0122
Khemi @khemitron-industries.net · 25/08/2025
I built a playtest version of Panic Spiral and deployed it. I've had great feedback from an indie dev discord - good core game loop, needs polish! So I'm porting it to Godot and will make a full version to release on Steam. Comment if you want the playtest link. #indiedev #gamedev #pixijs
0134
Khemi @khemitron-industries.net · 18/08/2025
Panic Spiral is beginning to feel like an actual game now rather than just a collection of mechanics. This week I've added game rounds, ship and player health, along with two systems which reduce health when they're broken. Here we see an example round of Panic Spiral! #gamedev #indiedev #pixijs
0134
Khemi @khemitron-industries.net · 11/08/2025
I didn't manage to get much done on Panic Spiral this last week, but I have added a score counter. In Panic Spiral, the score increases every second, until the engine breaks! Then you'll need to run over to the engine room and fix it. #pixijs #gamedev #indiedev
0144
Khemi @khemitron-industries.net · 30/07/2025
There's still a lot of polishing to do, and some more mechanics to add, but Panic Spiral is actually beginning to feel like a game rather than just a bunch of objects rendered on the screen. #gamedev #indiedev #pixijs
081
Khemi @khemitron-industries.net · 14/07/2025
I had a lot on this week so didn't do much game dev. My main accomplishment is implementing collision boxes for Panic Spiral. Collision logic doesn't come as standard in PixiJS. It's amazing what little things I've started to miss from Godot. Here's a little tech demo! #gamedev #indiedev #pixijs
0113