Mini devlog: Transparent menus in Unto Deepest Depths
Transparent menus on things like OptionButtons are not exactly as straightforward as you would expect, so here’s a look at how I fixed it for Unto Deepest De...
Transparent menus on things like OptionButtons are not exactly as straightforward as you would expect, so here’s a look at how I fixed it for Unto Deepest De...
Here’s a brief answer to a viewer question concerning unit selection and movement in Unto Deepest Depths.
The demo is now available for Unto Deepest Depths! Battle through the first of five biomes, prepare for the challenging boss that awaits you at the end, and ...
After a bit of prodding, I took some time to find an easy way for me to help demonstrate my typical turn-based setup. I found some early prototype code for U...
Let’s look at how my latest strategy game, Unto Deepest Depths, is designed. I’ll break down the application architecture, how I manage turn order, and show ...
Today, I’m pleased to announce my new game, Unto Deepest Depths! A dark fantasy strategy game with a simple, but challenging premise. Get the details within!
Here’s a collection of miscellaneous tips when working with GDScript to make your life easier. Improve working with the terminal, organizing your code, and l...
Here’s a look at my entry for The 7DRL Challenge, Par for the Corpse. A mashup of golf game and roguelike, I’ll talk about how the levels are generated and s...
Here’s a look at how I implemented a simple dev console in my game to speed up development. The core functionality is driven by Godot’s Expression class, but...
Here’s a look at some more advanced techniques you can implement in your state machine when you need something a bit more complex than the starter state mach...
Here’s an updated look at how I like to do state machines in Godot 4. I’m going to go over some simpler, starter techniques today, and in the next post I’ll ...
We’ve looked at the high-level design of the game, now let’s talk about how the data behind units is structured, how artwork is implemented, and how I’m hand...
In this devlog of sorts, we’ll look at how I’m structuring the game engine for my future tactics game using Godot. Topics include level structure, unit struc...
For the 57th Godot Wild Jam, I made Flame Forged, an incremental game with a heavy emphasis on lore and atmosphere. Here’s a few interesting things about its...
Setting up volume sliders in Godot quick and simple. Here’s how to do it, and how to divide your audio into buses for a better user experience.
From signal and tween updates, to debugging help, here’s another grab bag overview of some changes to GDScript in Godot 4 that you may want to know about.
Lambda functions are small, anonymous functions that can be declared inline rather than via full function declaration. Let’s take a quick look at how to writ...
New to Godot 4, the AStarGrid2D class makes solving grid-based layouts a lot easier than the existing AStar2D class while also adding some performance improv...
As I’m going through my Godot content that needs updating, I’ve come across a number of small changes to GDScript 2, which I’ve decided to capture in this po...
Setter and getter functions in Godot 4 have received a nice overhaul. Let’s take a look at what’s new.
A quick update on this site and the Godot 4 beta.
Let’s take a deep dive into my entry for Mech Jam III, the elemental tactics game Elemechs. Artwork, system design, architecture, and sound will all be cover...
The store page for my third commercial game, and second Steam release, is now up!
Let’s take a moment to look at a few more small, but helpful, tips for working with GDScript.
Using the microphone is fairly straightforward in Godot, though you might not realize it since the information you need is scattered all over the web. This i...
Let’s look at how we can use animations, shaders, and other effects to make better scene transitions in Godot.
Godot’s OS class offers you direct communication with the user’s operating system, providing a lot of convenience for things like determining the screen reso...
Whether you want accurate collision bodies or pixel-perfect mouse detection on a Sprite, this post is for you. Let’s look at our options using both the edito...
Here’s a handful of settings you’ll want to configure to get the most out of coding with Godot’s built-in editor.
Using Godot’s built-in OpenSimplexNoise class, we use create smooth, continuous noise to control our camera. Appropriate for both intense screen shaking and ...
We’ve seen how to implement a basic state machine, now let’s look at how hierarchical state machines and dependency injection can help us build it out further.
A few takeaways from my latest game, Kaiju Klash, which was made in two weeks for the Kaiju Jam.
Combining the Line2D node with the Geometry class, we can let players draw their own physics objects in a game.
Let’s take a moment to look at some small, but helpful, tips for working with GDScript.
Using setget, we can write custom logic to run when a variable is set or read.
While functions are not first-class objects in Godot, FuncRefs can help replace some of that missing functionality.
In this follow-up post, we’ll look at how we can take the theory we discussed previously and apply it to Godot.
This keyword allows for static typing of custom classes without having to litter preload commands everywhere.
The Polygon2D node can be a great way to create and draw custom physics objects in Godot.
It’s not perfect, but it could work for simple games.
Let’s look at different ways of implementing custom cursors in Godot.
You can have your Godot game looking pixel perfect in just a few steps.
Using spritesheets with particles is easy, but not overly obvious.
Transparent menus on things like OptionButtons are not exactly as straightforward as you would expect, so here’s a look at how I fixed it for Unto Deepest De...
Here’s a brief answer to a viewer question concerning unit selection and movement in Unto Deepest Depths.
The demo is now available for Unto Deepest Depths! Battle through the first of five biomes, prepare for the challenging boss that awaits you at the end, and ...
After a bit of prodding, I took some time to find an easy way for me to help demonstrate my typical turn-based setup. I found some early prototype code for U...
Let’s look at how my latest strategy game, Unto Deepest Depths, is designed. I’ll break down the application architecture, how I manage turn order, and show ...
Today, I’m pleased to announce my new game, Unto Deepest Depths! A dark fantasy strategy game with a simple, but challenging premise. Get the details within!
It’s been ten years since my first “commercial” game project, so let’s take a look back at what game development was like in 2014. Flash was on the way out, ...
Come hang out, get tech support, or tell me why I’m wrong.
Here’s a look at my entry for The 7DRL Challenge, Par for the Corpse. A mashup of golf game and roguelike, I’ll talk about how the levels are generated and s...
Here’s a look at how I implemented a simple dev console in my game to speed up development. The core functionality is driven by Godot’s Expression class, but...
We’ve looked at the high-level design of the game, now let’s talk about how the data behind units is structured, how artwork is implemented, and how I’m hand...
In this devlog of sorts, we’ll look at how I’m structuring the game engine for my future tactics game using Godot. Topics include level structure, unit struc...
For the 57th Godot Wild Jam, I made Flame Forged, an incremental game with a heavy emphasis on lore and atmosphere. Here’s a few interesting things about its...
Let’s take a deep dive into my entry for Mech Jam III, the elemental tactics game Elemechs. Artwork, system design, architecture, and sound will all be cover...
The store page for my third commercial game, and second Steam release, is now up!
A few takeaways from my latest game, Kaiju Klash, which was made in two weeks for the Kaiju Jam.
Here’s a collection of miscellaneous tips when working with GDScript to make your life easier. Improve working with the terminal, organizing your code, and l...
Setting up volume sliders in Godot quick and simple. Here’s how to do it, and how to divide your audio into buses for a better user experience.
Lambda functions are small, anonymous functions that can be declared inline rather than via full function declaration. Let’s take a quick look at how to writ...
New to Godot 4, the AStarGrid2D class makes solving grid-based layouts a lot easier than the existing AStar2D class while also adding some performance improv...
Let’s take a moment to look at a few more small, but helpful, tips for working with GDScript.
Let’s look at how we can use animations, shaders, and other effects to make better scene transitions in Godot.
Godot’s OS class offers you direct communication with the user’s operating system, providing a lot of convenience for things like determining the screen reso...
Using Godot’s built-in OpenSimplexNoise class, we use create smooth, continuous noise to control our camera. Appropriate for both intense screen shaking and ...
Let’s take a moment to look at some small, but helpful, tips for working with GDScript.
While functions are not first-class objects in Godot, FuncRefs can help replace some of that missing functionality.
This keyword allows for static typing of custom classes without having to litter preload commands everywhere.
Let’s look at different ways of implementing custom cursors in Godot.
Using spritesheets with particles is easy, but not overly obvious.
Here’s a collection of miscellaneous tips when working with GDScript to make your life easier. Improve working with the terminal, organizing your code, and l...
From signal and tween updates, to debugging help, here’s another grab bag overview of some changes to GDScript in Godot 4 that you may want to know about.
Lambda functions are small, anonymous functions that can be declared inline rather than via full function declaration. Let’s take a quick look at how to writ...
As I’m going through my Godot content that needs updating, I’ve come across a number of small changes to GDScript 2, which I’ve decided to capture in this po...
Setter and getter functions in Godot 4 have received a nice overhaul. Let’s take a look at what’s new.
Let’s take a moment to look at a few more small, but helpful, tips for working with GDScript.
Let’s take a moment to look at some small, but helpful, tips for working with GDScript.
Using setget, we can write custom logic to run when a variable is set or read.
While functions are not first-class objects in Godot, FuncRefs can help replace some of that missing functionality.
This keyword allows for static typing of custom classes without having to litter preload commands everywhere.
Here’s a look at some more advanced techniques you can implement in your state machine when you need something a bit more complex than the starter state mach...
Here’s an updated look at how I like to do state machines in Godot 4. I’m going to go over some simpler, starter techniques today, and in the next post I’ll ...
The observer pattern is everywhere, and with good reason. It makes it easy to let different game objects communicate with one another without coupling your e...
We’ve seen how to implement a basic state machine, now let’s look at how hierarchical state machines and dependency injection can help us build it out further.
In this follow-up post, we’ll look at how we can take the theory we discussed previously and apply it to Godot.
State machines make it easy to manage the state of your objects and help you write cleaner, more maintainable, and easily expandable code.
Transparent menus on things like OptionButtons are not exactly as straightforward as you would expect, so here’s a look at how I fixed it for Unto Deepest De...
Here’s a brief answer to a viewer question concerning unit selection and movement in Unto Deepest Depths.
The demo is now available for Unto Deepest Depths! Battle through the first of five biomes, prepare for the challenging boss that awaits you at the end, and ...
After a bit of prodding, I took some time to find an easy way for me to help demonstrate my typical turn-based setup. I found some early prototype code for U...
Let’s look at how my latest strategy game, Unto Deepest Depths, is designed. I’ll break down the application architecture, how I manage turn order, and show ...
Today, I’m pleased to announce my new game, Unto Deepest Depths! A dark fantasy strategy game with a simple, but challenging premise. Get the details within!
Here’s a look at some more advanced techniques you can implement in your state machine when you need something a bit more complex than the starter state mach...
Here’s an updated look at how I like to do state machines in Godot 4. I’m going to go over some simpler, starter techniques today, and in the next post I’ll ...
We’ve seen how to implement a basic state machine, now let’s look at how hierarchical state machines and dependency injection can help us build it out further.
In this follow-up post, we’ll look at how we can take the theory we discussed previously and apply it to Godot.
State machines make it easy to manage the state of your objects and help you write cleaner, more maintainable, and easily expandable code.
Code smells are things in a codebase that imply something may be off with how it has been designed. Here’s a few common ones you may find in your own codebas...
These tips will help you organize your code and write it so that it is modular, flexible, and easy to change.
The observer pattern is everywhere, and with good reason. It makes it easy to let different game objects communicate with one another without coupling your e...
These principles, applicable to any type of software developer, will help you write code that is more readable and more maintainable.
Here’s a handful of settings you’ll want to configure to get the most out of coding with Godot’s built-in editor.
Whether you want accurate collision bodies or pixel-perfect mouse detection on a Sprite, this post is for you. Let’s look at our options using both the edito...
It’s not perfect, but it could work for simple games.
Let’s look at different ways of implementing custom cursors in Godot.
You can have your Godot game looking pixel perfect in just a few steps.
Here’s a look at my entry for The 7DRL Challenge, Par for the Corpse. A mashup of golf game and roguelike, I’ll talk about how the levels are generated and s...
For the 57th Godot Wild Jam, I made Flame Forged, an incremental game with a heavy emphasis on lore and atmosphere. Here’s a few interesting things about its...
Let’s take a deep dive into my entry for Mech Jam III, the elemental tactics game Elemechs. Artwork, system design, architecture, and sound will all be cover...
A few takeaways from my latest game, Kaiju Klash, which was made in two weeks for the Kaiju Jam.
Code smells are things in a codebase that imply something may be off with how it has been designed. Here’s a few common ones you may find in your own codebas...
These tips will help you organize your code and write it so that it is modular, flexible, and easy to change.
The observer pattern is everywhere, and with good reason. It makes it easy to let different game objects communicate with one another without coupling your e...
These principles, applicable to any type of software developer, will help you write code that is more readable and more maintainable.
Whether you want accurate collision bodies or pixel-perfect mouse detection on a Sprite, this post is for you. Let’s look at our options using both the edito...
Combining the Line2D node with the Geometry class, we can let players draw their own physics objects in a game.
The Polygon2D node can be a great way to create and draw custom physics objects in Godot.
Graph rewriting is a popular area of study for procedural content generation, and in this post I’m going to give you a quick introduction to the concepts inv...
While typically overshadowed in the gamedev world for their two-dimensional cousin, generative grammars should still have a place in your procedural toolbox,...
While primarily used for Zelda-like dungeons, this technique can be used to generate custom worlds, branching dialog, and more.
Making a good, satisfying platformer is a lot harder and more involved than throwing a physics body on top of a tilemap and calling it a day, so here’s a few...
Let’s look at how we can use animations, shaders, and other effects to make better scene transitions in Godot.
Using Godot’s built-in OpenSimplexNoise class, we use create smooth, continuous noise to control our camera. Appropriate for both intense screen shaking and ...
Utility AI is a common technique for creating effective AI across a variety of genres. By turning data about the current game state into numbers, we can allo...
Making a good, satisfying platformer is a lot harder and more involved than throwing a physics body on top of a tilemap and calling it a day, so here’s a few...
Setting up volume sliders in Godot quick and simple. Here’s how to do it, and how to divide your audio into buses for a better user experience.
Using the microphone is fairly straightforward in Godot, though you might not realize it since the information you need is scattered all over the web. This i...
A small collection of songs I’ve done for game jams.
A small collection of songs I’ve done for game jams.
Using spritesheets with particles is easy, but not overly obvious.
Using spritesheets with particles is easy, but not overly obvious.
You can have your Godot game looking pixel perfect in just a few steps.
Making a good, satisfying platformer is a lot harder and more involved than throwing a physics body on top of a tilemap and calling it a day, so here’s a few...
Using the microphone is fairly straightforward in Godot, though you might not realize it since the information you need is scattered all over the web. This i...
New to Godot 4, the AStarGrid2D class makes solving grid-based layouts a lot easier than the existing AStar2D class while also adding some performance improv...
Utility AI is a common technique for creating effective AI across a variety of genres. By turning data about the current game state into numbers, we can allo...