You are browsing as a guest. Sign up (or log in) to start making projects!

teamlewiscrafty

@teamlewiscrafty

Joined June 1st, 2026

  • 7Devlogs
  • 2Projects
  • 0Ships
  • 0Votes
Open comments for this post

10h 4m 50s logged

Added a compendium

Alright, this is a big one

Additions:

  • Added an indicator that shows the progress through the level
  • Added a “Zip bomb” enemy
  • Added cloaked enemies
  • Added a pause menu
  • Added a compendium

Changes:

  • Rebuilt the tutorial

I added an indicator to show the player’s progress through the level. It also adds a tiny bit of story - you have to hold off malware until a firewall is constructed, and that bar shows you the progress. And I didn’t even build it from scratch - I’m just using the health bar from the enemies! 🤫

Next - a zip bomb enemy that, as the name suggests, spawns a burst of child enemies when killed. It moves very slowly, but has high health - this makes it a great target for the SIGTERM sniper tower, which was previously useless not always the best choice.

Cloaking was my way of trying to spice up the types of enemies the player would have to deal with. Some enemies in a level will now be cloaked, which means they cannot be attacked until they have their cloaking removed by the new ‘defragmenter’ tower.

I wanted a way for players to easily compare the stats of the various towers and enemies, and I also needed something else to add to my pause menu. I decided to kill two pieces of malware with one antivirus quarantine, by adding a compendium. This currently has two tabs, for towers and enemies, each showing you the stats of a tower / enemy when it’s selected. Please don’t ask me how long this took. I don’t want to talk about it.

I also rebuilt the tutorial because it

  1. looked bad
  2. was a pain to build and test
  3. would break if i breathed too close to it

So I completely scrapped the old system and built a new one


Quote of the update:

  • “Hidden malware is a pain - in this game, and in real life”

Any suggestions, please let me know in the comments below.

0
0
5
Open comments for this post

4h 11m 5s logged

Added a terminal window that logs game events and a tower blocker for level design

Changes:

  • Reorganised the UI to provide more space for the level and generally give everything a more unified aesthetic

Additions:

  • Added a terminal window at the bottom of the screen that logs game events
  • Added a ‘towerblocker’ tool that the level designer can use to restrict tower placement opportunities

Plus (as always) quite a few bug fixes


So what is the key feature for any 90s UNIX Linux system? A terminal, of course! And what is a UNIX-themed game without a terminal? So I added a system where game events, such as waves starting, or enemies being killed, are logged to a terminal window at the bottom of the screen. This window can be opened and closed, and has a little coloured pulse around it whenever a new log is entered. The coloured pulse is synced to the type of event (red for ‘errors’, yellow for ‘warnings’ white for everything else) as well. Each message contains some details about the event and a timestamp on the left. This feature was my first time using the richTextLabel, which allowed me to colour the text.

The towerblocker is simple - it’s an invisible tile that can only be placed when the levels are being designed in order to add difficulty or avoid placing of towers offscreen

I also reorganised the UI to provide more space for the level - it was all feeling a bit cramped. That reorg also helped to give everything a more unified aesthetic because I took the opportunity to apply some styles to everything, making it feel just a little more together.

Quote of the update:

  • “An empty terminal log is always nice. Unfortunately, I don’t think things will be that peaceful…”

Any suggestions, please let me know in the comments.

0
0
3
Open comments for this post

6h 27m 27s logged

Overhauled the game over screen’s aesthetic and added mouse support to the menu

Changes:

  • Changed the game over screen to better fit with the game’s aesthetic
  • Changed the font to a monospaced one

Additions:

  • Added mouse support to the menu
  • Added a spray of particles to enemies when they die
  • Added a chromatic aberration effect to enemies when they are hit

Plus quite a few bug fixes


The first change in this devlog is the game over screen, which used to look like a boring window with a restart button, but now looks like a crash screen [Image below] that uses the actual system data to display its message, via a template string and an 8 line formatting statement. I am quite proud of this one

Adding mouse support to the menu was, in a word, painful. Because I’d built my own menu system using labels instead of buttons, I had to almost completely rewrite the code to allow for conversion of a Label reference (from one of Godot’s built-in functions) to a child id (which my functions were expecting). And then I had to add some overrides to that so some labels that were not part of the menu system wouldn’t break everything.

The spray of particles from enemies when they die is one of my personal favourite effects in this game, mostly because of what I’ve learnt from it. I made the particles be text based by using a subviewport, which basically is a viewport that doesn’t display anything and can then be attached to a texture to show its contents, in this case, on the particles as they are emitted. I also made the text randomise to a 2 digit hexadecimal value - that felt suitably ‘techy’

One of the smaller features in this devlog is the font change. Instead of using Godot’s default font, I found the font used in the actual GRUB and used that instead. Where did I find this font, you ask? It came directly from my PC - I copied the file straight out of /usr/share/fonts.

And now we come to chromatic aberration which, as it turns out, is easy to implement for the whole screen, but slightly harder to make work for only a single sprite without discolouring the background. After messing around with shaders for a bit, I gave up and just made 2 versions of my enemy sprite (in red and blue) and just physically offset them in code. And it works. And, if I dare to blow my own trumpet for just a second, it looks great!


Quote of the update:

  • “Please never make me look at my menu code again.”

0
0
2
Open comments for this post

4h 17m 30s logged

Overhauled the menu aesthetic and added a settings menu

So, I realised that I’d called this game ‘Kernel Panic’, a very techy name, and yet done little to lean into the aesthetic that evoked. I decided to fix that.

Changes:

  • Rebuilt the main menu to use a similar aesthetic to the Linux GRUB
  • Added a settings menu:
    • Support for 2 Vsync modes
    • A slider to control audio
    • A credits page

This was my first time using config files, so I also got to learn something; Godot’s user:// directory is not the same as res://. A file created in the user:// directory cannot be seen in the res:// directory. From my uneducated perspective, it seemed as if this file (which I couldn’t find in the editor, since that only shows res://) was persisting across runtimes - something non-existent files famously don’t do.


I saw someone else do a ‘quote of the update’, but I was unable to find their username to credit them, so please tell me if you know who they are:

Quote of the update:

  • “I really don’t like config files”

Next plan is to overhaul the game over screen so it better fits with the aesthetic

0
0
7
Open comments for this post

15m 2s logged

Made a dictionary of wave information resources in the level.
I exported a dictionary of custom WaveInfo resources in my level scene, and went to add a new resource to the dictionary. I typed in the key, added a new WaveInfo, and clicked Ctrl+s.

My new key-value pair promptly vanished without a trace

And so began the hour of removing variables, re-adding variables, trawling through the Godot forums and generally wanting to set fire to my computer to try to find the problem. The urge that was not improved by the discovery that I’d forgotten to press the button to actually add the key-value pair, and the error firmly existed between chair and keyboard.

0
0
8
Open comments for this post

24m 49s logged

Added a resource to allow upgrades to towers.
For those who haven’t used Godot, a resource is a fancy name for a data container that counts the number of other objects referencing it and automatically frees itself when it is no longer needed. According to a quick glance at the Godot docs, creating a custom Resource is as simple as creating a new script that extends Resource and adding a couple of @export variables.

I failed at step one, used the default ‘extend Node’ instead of ‘extend Resource’, and then spent over half an hour trying to work out why it didn’t show up in the inspector.

Lesson learned then?

Not really, because I did the exact same thing again the next day.

0
0
3
Open comments for this post

7h 5m 25s logged

First devlog for Kernel Panic, a tower defence game built in Godot.
Here is my progress so far:

  • A menu which allows the user to select levels
  • Multiple custom resources to allow for:
    • Flexible enemy counts and spawn rates during waves
    • Changing of range, damage, or attack speed of a tower
    • Creation of ‘upgrade paths’, which store several upgrades, as well as progress along the path
  • Inspection window that allows:
    • Customisable targeting priority
    • Upgrades to be applied from multiple upgrade paths
  • Multiple towers with several unique upgrade paths each

Next step - building a tutorial level that explains the key mechanics of the game.

0
0
8

Followers

Loading…