Month: December 2021

Godot NodePaths

So recently I’ve been doing the user interface for Trivo, and I had been referencing all the control nodes that I needed by creating string variables and storing the path to them.

This worked, but anytime the scene’s node hierarchy changed, my hard-coded string paths would all be incorrect and have to be updated. This caused changes to the UI to be quite cumbersome since I had to copy new node paths over to my code each time.

I got fed up with the workflow and looked for another way, and I can’t believe it took me this long to figure a cleaner way to manage references to the nodes I want to manipulate in my scripts.

Essentially, Godot has a nice feature that allows you, in the editor, to set a scene’s variable. Godot also features a handy variable type called a NodePath which is just essentially reference to a node in a scene. Combining these two features allows one to easily add NodePaths to your script which you can then set to nodes in your scene that will automatically update even if they’ve been moved.

A picture of the script variables, which you can set to nodes in the scene
The node path selection pop-up in Godot

This is pretty simple, but for whatever reason I never leveraged it until now. Glad I’m using it now though, makes changes to the scene tree much easier when I don’t break all the references in the script.

“Sculpting”

Tried my hand at doing sculpting with Blender. I figured I’d try making a skull for some more creepy areas in the game.

Up until now, I’d been manipulating vertices, edges, and faces manually in Blender to create my models. Doing it this way meant the models I created did not contain many polygons, thus the name ‘low poly’ models.

Sculpting on the other hand is essentially giving broad instructions to areas of the model. So you can select an area and push it inwards and it will make a small dent on the model. Essentially like real sculpting, hence the name. This requires models that contain a bunch of vertices to manipulate.

I created the skull below using a reference image, a sphere packed with a lot of vertices and a bunch of mistakes.

smooth skull
“smooth” skull from sculpting
smooth skull 2
“smooth” skull from behind

Now I want to use this in my games, but it doesn’t really fit too well with all of my other low poly models. So I used a decimate modifier on the model to bring down the poly count in an attempt to bring it into the style of my existing models.

"low poly" skull
decimated “low poly” skull
"low poly" skull 2
decimated “low poly” skull from behind

You can easily make out the individual faces of the skull now, giving it a more low poly look. It still has a lot more polygons than any of my other models, but it does fit a little better compared to before if I do say so myself.

After I tweaked it a bit with the decimate modifier, I decided to add little horns and put the skull on a spike.

Sculpting seems pretty useful, but I think I’d need to take advantage of a tablet and pen to do it properly since all the tools are pressure sensitive. I did the above with mouse and keyboard but it takes a lot of adjusting of the pressure setting on the tools instead of just adjusting the pressure of the pen physically.

Maybe I’ll give it a shot with my tablet and see how it goes and post about it in the future.

Loot!

loot bag 3d model
The loot bag, a screenshot from inside blender

Just a small little post showing a loot bag I made for item drops in Trivo.

These will be used to hold items, which will drop from slain enemies.

The player will be able to interact with these bags and a window will appear showing the items contained in the bag and the option transfer the contents to their own inventory.

Slightly different angle picture

I’m hoping to be able to post pictures of the in-game looting window soon, but I’m currently re-working sections of the in-game user interface. When that’s done I’ll post more about it with pictures.

Lights…?

When I started to work on Trivo, I decided I should probably learn how to do simple 3D models so I could at least learn the general workflow from 3D model creation to being loaded up as a game asset. Even if I didn’t end up making assets that were cut up for production, I figured it’d be valuable experience.

A very low polygon campfire

I eventually started to learn how to do low polygon 3D models in Blender (with the help of Youtube videos), and I must say, I very much enjoy creating 3D models with Blender. It feels pretty good being able to create a 3D model that you can then use in a game, even if it may be just a placeholder asset.

Some sort of metal chandelier with candles

As you can tell from the title, the models I made here give off some source of ‘light’. I was messing with the lighting system in Godot and needed some assets to light up the scene, so I took some time to create these simple models and created scenes of them and a light source to use for Trivo.

A wall torch sconce

I’ve started recently to learn how to do sculpting of 3D models with Blender, but I’m not sure if I’ll end up using it much for my current needs. Low polygon models seem to fit my use case quite well for the moment.

Trivo

Recently, I’ve been working on a game named “Trivo.” (working title)

Game Setting

The game is a 3D over-the-shoulder dungeon crawler/roguelite. It’s set around a tower that seemingly rises beyond what the eye can see, which has drawn adventurers to ascend it for untold riches. A community has formed around the base of the tower which thrives off of the adventuring visitors and curious tourists.


The game is being developed with the Godot game engine, and all the scripting is being done in C#. I plan to make some more detailed posts in the future on why I ended up going with Godot, as well as other posts detailing how I create certain effects and scenes with it.

I’ll also be posting more about Trivo in the future, but for now here’s a quick run animation I created in blender for a dummy model that I’m using while prototyping the game’s mechanics and gameplay loop. This is an older animation but I’ll have more coming soon.