IGDA DC
First off, I forgot to mention in the last few posts that I attended an indie game dev meetup.
On last tuesday I met up with ~10 indie game dev/designers as organized by the DC chapter of the International Game Developer’s Association or IGDA DC
It was motivating to see the games people were working on and hear what types of games people liked and wanted to create.
There was a working session today that I also attended to put a few hours into gamedev and share our progress updates together.
There were 7 of us there and I was definetly the newest to gamedev.
The mini PC workstation was definetly a conversation starter.
Vim
Before I went to the IGDA meetup, I got back on the Vim train.
Learned about a few commands.
:find # like shell find but in Vim environment
:set path+={path}/** # changes the path that :find will search through for matches
# netrw commands
:E or :e. # explore the Vim file tree of the cwd
:Se # split explore the file tree
:Ve # vertical split explore file treek
:source .vimrc # different from :! souce .vimrc which will have errors becuase .vimrc is not a compatible shell syntax
:!mkdir -p %:h # create folders and file needed to match buffer path
:w !sudo tee % > /dev/null # shorcut to sudo write higher permission files
Godot looting
In Godot I added some gem looting mechanics.
Learned how to use node groups to handle area_entered
signals seperately for different nodes like gems vs. health packs.
Also learned how to update the UI for a label via the text
property.
For progress bar it was value
.
So a common pattern for colliding objects seems to be:
Area2D
- area_entered signal
CollisionShape2D
- shape
Sprite2D
- texture
Control (UI)
Element Node
- value or text
In the _ready
method of the parent node, usually Area2D, the area_entered
signal is connected to a callback.
The arg passed to the callback, or the area_that_entered
can have a configured group to check is_in_group('group_name')
.
If the area that entered should cause an update, the corresponding attribute like health or gems should update, and consequentally trigger an update the attribute in the UI that displays that value.
Thanks for reading!