Zi
@majormcdoom.bsky.social
6.2K followers 920 following 1.8K posts
Indie VR dev / founder of @cozycubegames.bsky.social. Making <<Penguin Festival>> in Godot. 🐧 Past: Owlchemy Labs. Proud husband and shiba dad. - Español / 中文 / français OK - 🚫 generative AI - 🚫 genocide - ✊ trans rights
Posts Media Videos Starter Packs
Pinned
majormcdoom.bsky.social
I'm super excited to finally share a first look of the VR game I've been working on...

!! <<🐧 Penguin Festival 🐧>> !!

Any shares/wishlists would be super appreciated, y'all! 🙏

#gamedev #indiedev #GodotEngine
Reposted by Zi
wholesomegames.com
Mingle with a charming cast of characters and enjoy fun activities like fishing and snowball fights in the VR-only title, Penguin Festival! "Complete some last-minute festival to-dos during the day while you explore the vibrant penguin town."
majormcdoom.bsky.social
The field of mathematics is linear algebra, and it's considered essential for 3D game development.

The rest (recognizing patterns and figuring out how to recreate them) is just a matter of practice.
majormcdoom.bsky.social
Plushie breakdancing math was fun to write.
func _physics_process(delta: float) -> void:
	t += delta * 0.75 * TAU
	plushie.basis = Quaternion(Vector3.UP, Vector3(cos(t), 0.05, -sin(t)))

func _process_arm_goal(goal: Vector3, side: int) -> Vector3:
	if (side > 0) == (wrapf(t - 0.25, 0, 1) < 0.5):
		return Vector3(side * 0.05, -0.2, -0.05)
	return goal
majormcdoom.bsky.social
Me when Godot does a thing I don't quite understand.

#GodotEngine #gamedev #indiedev
majormcdoom.bsky.social
I've never seen a logo that makes me squirm but here we are.
majormcdoom.bsky.social
No it's been there forever lol.
majormcdoom.bsky.social
Oh man, it's about so many people / studios.
majormcdoom.bsky.social
It's the exact same tactics used by manipulative individuals, and you see it time and time again happen to developers.
majormcdoom.bsky.social
Official comms are often used to gain control of the narrative by speaking on things first. They also make people drop their guard because if it's nice enough or if they admit just the right amount of things (but not the important things), people will side with them. It's weaponized transparency.
majormcdoom.bsky.social
In order of trustworthiness:
- private comms from developer
- public or studio-approved comms from developer
- comms from execs using collective "we"
- official comms using collective "we"
majormcdoom.bsky.social
After the amount of horror stories I've heard from devs behind some of the most beloved games, I will never trust any public materials on the dev process, ever.

Like, sorry dude, your beloved Nintendo doesn't always tell the truth, and your Miyamoto quotes don't mean shit to me.
majormcdoom.bsky.social
If you think you know how a game was made because of an article/interview/documentary with the studio or execs...

You don't.

The bigger the studio, the more likely the truth has been distorted/sanitized.

If you want the truth, talk to devs. In private.

#gamedev
majormcdoom.bsky.social
It has been painful watching grown ass adults input a photo of themselves, get back a Muppet in the same clothes, and lose their fucking minds.
majormcdoom.bsky.social
A real unsettling scenario would be if this bug got fixed, but this thumbnail still somehow doesn't go away.
majormcdoom.bsky.social
Hey, ya know what, I appreciate it. Thanks for stopping by! 😆
majormcdoom.bsky.social
Because Godot has a bug in its thumbnail caching code, all of my penguin NPCs now show a thumbnail of Flesh Penguin from my last shitpost. 🤣🤣🤣
A screenshot of the inspector in the Godot editor, inspecting a penguin NPC, showing a thumbnail of Flesh Penguin's face.
majormcdoom.bsky.social
Thank you so much for your kind words, penguin friend.
🙏🙏🙏
majormcdoom.bsky.social
They are part of the same system. One is determining the *state* of the map. The other is calculating paths *using* that state.
majormcdoom.bsky.social
For dynamic path-finding queries, it makes some sense to do async.

Note that there's two different things here: map state vs. path-finding. I don't mind async path-finding, but map state should always, always be accurate on load.
majormcdoom.bsky.social
If that's the case, then this is simply an additional hindrance, because you *still* have to wait for map_changed.

These settings, afaik, control map *changes*. Not path-finding. I don't have maps that are dynamically updating, so I don't care.
majormcdoom.bsky.social
I really don't like that this is how the nav system works. To be clear: even *after* disabling async, you *still* have to wait for map_changed in order to reliably query the nav map. I'm sure there's a reason, but this is one of those things that should be ready on... well... _ready().
majormcdoom.bsky.social
This Godot quirk has given me so much grief. By default, nav maps update async. Which means when you load a scene, you have to wait an indeterminate number of frames before you can query the nav map. Even the map_changed signal is unreliable.

After disabling these, map_changed now works.
A screenshot highlighting two settings in the Godot project settings, under the Navigation/World page:
Map Use Async Iterations
Region Use Async Iterations
majormcdoom.bsky.social
Old video of that time I accidentally made a "smear" effect because the penguin's hip lags behind when teleporting. Will probably leverage this bug for VR teleportation so it looks super cool for the spectator. 🐧➡️🐧
#GodotEngine #gamedev #indiedev