-->
int main(int argc, char* argv[])
{
std::cout << "Hello and welcome to my forge!" << std::endl;
return 0;
}
In here you will find (programming) tutorials with a focus towards game development. Occasionally some content unrelated to game dev might popup, but still about programming.
Please feel free to browse all of the available tutorials.
Sometimes I might talk/ramble/rant about something (still related to programming/development). Because those are not exactly tutorials I have created the blog section.
If you want to see some of the projects that I have released, those can be found here.
To contact me or to know a tiny bit about me, there is the contact section. It also describes a little bit of how this site was built.
While bellow you will find a list of the latest site news, you can see the complete list here.
And after several weeks without being able to update my forge... well, now we are lifting of, with Astro!
I do delve into it a little bit more about the entire thing in this newer blog post. But in short, out of the blue, Nuxt simply started to spit error messages instead of my page.
I have updated some of the Godot tutorials. The reason? Godot 4 did change a lot and the information was no longer entirely valid. Some of those tutorials now have instructions for both Godot 3 and Godot 4.
PS: If lots of new entries in your RSS reader were triggered, I'm deeply sorry for this.
October 26, 2023
New to this site is the Projects section. It's meant to be a central place to link into all my published projects, excluding any that is "tutorial reference material".
The navigation bar has been updated to link into that section.
Happy forging!
September 21, 2022
Audio playback in Godot is actually very straightforward. We add one AudioStreamPlayer
, AudioStreamPlayer2D
or AudioStreamPlayer3D
node, assign an audio stream resource then call its play()
function. However if the node is destroyed in the middle of a playback, the audio will become interrupted. This is a common case when dealing with impacting bullets, player pickups and so on.
In order to help with audio playback without having to worry about node lifetime, I created the Audio Master addon. How to use it can be found here. As usual, the addon itself can be found in this GitHub Repository
September 15, 2022
While working in a (Godot Engine) project I ended up creating a Resource
meant to hold data. Editing its array was very clunky. But most importantly, adding a custom scripted resource into this data class was not possible. Well, it was, but the "new instance" is not filtered in Godot. That is, it display a huge list of classes derived from Resource
.
So, I decided to create an Editor Plugin meant to deal with resources of this kind, the Data Asset plugin. A preview of the plugin in the animation bellow, which showcases rearranging elements of an array of custom scripted resources:
Yet, editing numerical properties were not exactly close to the editor provided within the Inspector panel. Granted, the editor uses a Control named EditorSpinSlider
, which is not fully exposed to scripting. So, I decided to also create a Control that implements something similar to that, which is provided as the SpinSlider
. A preview of the widget:
As usual, I have a tutorial for each of the two new addons. The SpinSlider
information can be found here. As for the Data Asset, it's here.
August 15, 2022
Some time ago I decided I wanted to have a web version of the CSV to JSON converter I implemented in Godot. Shortly after, I stumbled into the fact that HTML exports are sand boxed, meaning that the FileDialog
control does not have access to the file system. Yet, we can work around this and provide means to save/load data to/from the file system. I show how in this new short tutorial.
February 11, 2022