Back
Zi πŸ”œ Furality

Zi πŸ”œ Furality

@majormcdoom

Canadian indie VR dev / founder @cozycubegames.bsky.social. Making <<Penguin Festival>> in Godot. 🐧 Past: Owlchemy Labs. Proud husband and dog dad. - 🚫 generative AI - 🚫 genocide - ✊ trans rights

65 videos

Added the ability to control the first-person debug camera with the mouse, and it isn't exactly what I expected, but eh, good enough for testing! #GodotEngine #gamedev #indiedev

50 4

Realized "vertically squished parent" is probably not a very clear description of what's going on:

54 1

Also works when you don't need the pointer to be merged with the bubble body, but you still would like it to rotate according to the elliptical contour. This is good if you want a transparent outline.

32 1

Figured out a neat little trick to do procedural directional pointers on speech bubbles without any code or shaders: Just rotate a child node under a vertically squished parent! Works best if the bubble has a simple shape and the pointer is chonky. #GodotEngine #gamedev #indiedev

467 47

This is what it looks like from the first-person perspective.

9 0

Worked on dialog/cutscene camera system. I wanna give the player an immersive VR experience, while making the spectator view look and feel like a GameCube adventure game. No penguin voices yet, but made a fun little test! #GodotEngine #gamedev #indiedev #ScreenshotSaturday #VR

110 8

Hi, new followers! πŸ‘‹ My name is Zi. I'm an artist/engineer/generalist who worked on games like Job Simulator and Rick & Morty VR. I'm currently making my own indie VR game, "Penguin Festival"🐧. More about myself in the thread below! πŸ§΅πŸ‘‡ #GodotEngine #gamedev #indiedev

151 21

Different footage captured at the same time from another side of the volcano. As a former Star Fragment farmer: you'd be surprised how common these events actually are. You just have to to know where to camp and watch.

90 9

Close-up with exaggerated floppiness to illustrate how the bristle math works. πŸ§πŸ§ΉπŸ“ #GodotEngine #gamedev #indiedev

173 13

Finished VR broom physics + effects. πŸ§πŸ§ΉπŸ’¨ #GodotEngine #gamedev #indiedev #ScreenshotSaturday

187 19

I never get the math right the first time anymore, and I don't know if I should be sad or happy, but anyway broom goes brrrr. #GodotEngine #gamedev #indiedev

289 30

The rocking chair force transfer actually applies to ALL chairs, so if the player sits on a step stool on uneven terrain, this happens... 🐧πŸͺ‘πŸͺ¨ #GodotEngine #gamedev #indiedev #ScreenshotSaturday

97 10

Made a little addon that adds a "Play" button to AudioStreamRandomizer in the inspector, so you can easily preview the randomized playback! πŸ”ŠπŸŽ² Grab it here under "AudioStreamRandomizer Preview": codeberg.org/MajorMcDoom/... #GodotEngine #gamedev #indiedev

123 15

Had a lot of fun posing the gang for this little photoshoot in Godot! If you're attending Furality, come check out our booth! 🐧🎸🐧πŸ₯πŸ§πŸŽ€πŸ§πŸŽΈπŸ“Έ #GodotEngine #gamedev #indiedev

64 4

Daaaaamn that's trippy. πŸ˜΅β€πŸ’« #GodotEngine #gamedev #indiedev

82 7

If you're using my 3D lines n' trails addon for Godot, I added a new "connection mode" property that lets the line change into a closed loop, or a sequence of broken segments. Also added a Wireframe3D node. Grab it here: codeberg.org/MajorMcDoom/... #GodotEngine #gamedev #indiedev

98 11

Come on in, y'all, the water's perfect! #GodotEngine #gamedev #indiedev

149 13

This is the first penguin I ever modeled (circa 2009). It had really weird feet, and it had THUMBS. The second (and last) penguin I ever modeled was the current penguin used in Penguin Festival 🀯. #b3d #gamedev #indiedev

91 6

Finally got around to texturing this thing. Used vertex paint to darken all sharp verts, then did 5 cylinder UV projections (1 for each "band"). Took me a while, mostly due to learning more Blender workflow. Becoming stronger slowly. πŸ’ͺ😀 #GodotEngine #b3d #gamedev #indiedev

118 6

Related: I UV the bird by using "Project From View" in Blender, from perspective, NOT ortho. The depth distortion on a perspective camera creates the illusion that the grain mutates with depth, while maintaining continuity. Twisting also helps. #b3d #gamedev #indiedev

147 9

Figured out a fun way to paint stylized wood grain textures using Gradient Maps (it's in Gimp as well as Photoshop, afaik). Just use a big soft brush and paint! You can also use blur, smudge, and gradients. It's like painting the history of a tree! πŸŒ³πŸ˜ŒπŸ•ŠοΈ #gamedev #indiedev

447 86

This prop has some personal significance for me: The first prop I ever made (code + prototype, not final art) for VR was the drinking bird in Job Simulator. Now I'm making another for the starting area of my first indie VR game. Feels weird coming full circle!

40 1

Made a penguin-themed, physics-driven, dapper-lookin' drinking bird science contraption. Works by sliding the the center of mass along a very precise ventral medial track. πŸ₯€πŸ§πŸŽ© #GodotEngine #gamedev #indiedev

139 14

Fun little blooper from our last gameplay trailer. The bassist's bass and belly were pushing against each other, neither yielding, resulting in this. #GodotEngine #gamedev #indiedev

53 4

Here are some early, unsuccessful sound effect passes.

6 0

Alright, finally got rocking chair physics to a point I'm happy with! VR player and NPCs both supported. Still some UX issues to sort out eventually, but I can move on now! πŸ§πŸ€˜πŸ’Ί #GodotEngine #gamedev #indiedev #ScreenshotSaturday

136 15

I can't imagine making this game without Godot live-scripting. Like, look at this that just happened. "It's so jittery, let's try commenting this out... Oh shit no no no, come back! Abort! Uncomment! Whew." Now imagine having to recompile. #GodotEngine #gamedev #indiedev

233 26

Take 2. Still not quite right... 🐧πŸͺ¨πŸͺ‘ #GodotEngine #gamedev #indiedev

79 7

Had a little jump scare. Was making a gizmo for the rocking chair to visualize its rocking range... chose red because it stands out, forgot to convert degrees to radians for one of the circles, looked at the viewport and saw this. πŸ‘€ #GodotEngine #gamedev #indiedev

116 7

Making some character key art for marketing. My workflow is to basically do a little photoshoot in the game itself. I force characters to stop breathing/blinking, and use Godot's live editing to pose them. I can even undo/redo to go through different takes. #GodotEngine #gamedev #indiedev

105 7

Added squashing support to the FloppyBit tech, and now it works for beanbag chairs too! #GodotEngine #gamedev #indiedev

84 4

Squeaky squeaky squeak squeak. 🐧πŸͺ‘πŸ”Š #GodotEngine #gamedev #indiedev

90 7

A cool consequence of basing page-flipping on detecting *any* relative motion is that it becomes more than a hand gesture - it's a full physical response! This means I can use *anything* to turn the pages, even by brushing the book against a stationary object. πŸ§πŸ‘„πŸŸπŸ«—πŸ”„οΈ #GodotEngine #gamedev #indiedev

206 27

Duplicated the player just to see what happens. I fully expected the game to simply crash, but uh... 🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧🐧 #GodotEngine #gamedev #indiedev

185 13

Thought I was being a clever procedural animator by telling the hand to "hold the book in front of face", but then also telling the face to "look at the book", creating an infinite feedback loop that raises the book higher and higher. #GodotEngine #gamedev #indiedev

179 18

Testing out my new adaptive, environmentally-aware VR spectator camera system. One of the original pillars of Penguin Festival is that it should fun to watch, not just fun to play, so a good spectator system is crucial. 🐧πŸŽ₯πŸ‘€ #GodotEngine #gamedev #indiedev

126 16

I always tell engineers: Never try to make your code reusable before you know how you'll reuse it. If you just write good/clean code, then making it reusable is trivial when the need arises. Example: interactive leaves -> interactive hair. Easy. #GodotEngine #gamedev #indiedev

242 31

Added more wind effects and integrated other systems into it! Characters lean into the wind to keep their balance, squint, change their gait, etc. All physical objects and floppy bits in the game also respond accordingly. πŸ’¨πŸƒ #GodotEngine #gamedev #indiedev

139 10

Aw hell YEAH! This motion analysis tech has exceeded my expectations. Rubbing my face in that plant in VR was surreal. πŸ“•πŸͺ΄πŸ§Ή #GodotEngine #gamedev #indiedev #VR

304 34

Did some math to analyze object motion localized within specific areas. Accounts for angular velocity as well as linear velocity. This is gonna be useful for many things in the game. #GodotEngine #gamedev #indiedev

147 11

I guess it's an exaggeration to call it "shitty", but the point is: you can get away with only two bones if the covers are usually hovering around a fixed position. In my case, they flop open to the horizontal position. So I just rigged it to look good only for that case.

12 0

It's normally very annoying to make a good-looking book animation rig, but pro tip: you can just make a shitty rig and just open your book quickly. Nobody will notice. πŸ‘Œ

28 0

It's finally time to work on book tech, o ho ho. πŸ“•πŸ€“ #GodotEngine #gamedev #indiedev

127 9

"But Zi, I saw some of these props like a year ago. They were even in your trailer." No no no... β˜οΈπŸ™‚β€β†”οΈ You THOUGHT you saw. #gamedev #indiedev #GodotEngine

168 11

Over the past month, in addition to systems work, I did a lot of 3D modeling - the most I've ever done (which is not a lot). I was thrown into the deep end and it was stressful, but I also had fun and improved a lot. #gamedev #indiedev #b3d

490 40

I'm using the exact same math to flop the backpack, the leaves, and the Godot plushie, but one is a node, one is a MultiMesh, and the other is a skeletal mesh.

32 0

Here's a demonstration of how just a single transform is enough to achieve a huge range of leaf distortions. No bones needed.

25 2

Added MultiMesh support to my FloppyBit tech. The leaf clusters are a single MultiMeshInstance3D. Although the leaves are individually controlled, it's a single draw-call with no bones and no shader. 🐧πŸͺ΄ #GodotEngine #gamedev #indiedev

144 14

Wish you could make colliders in Godot this quickly? Want to add pre-configured nodes with their resources already unique and ready-to-tweak? Just make your own prefab scenes with this script at the root: pastebin.com/NyU9AZbR #GodotEngine #gamedev #indiedev

97 8

Made a cute little bonsai shader. 😊πŸͺ΄ #GodotEngine #gamedev #indiedev

195 11

If you move the reference point far away enough, you can essentially find the point on an object that is furthest *in a direction* (e.g. lowest point, highest point, etc). Great for spawning directional effects, and other useful queries. πŸŸπŸ’¦ #GodotEngine #gamedev #indiedev

129 13

Was surprised to learn Godot doesn't have built-in methods for determining if a point is inside a shape, or the closest point on a shape, so I took some time to write my own. #GodotEngine #gamedev #indiedev

303 25

Once again gushing about these Blender viewport settings for low-poly modeling. My weird brain viscerally rejects the default shading - it feels like working with sheet metal. Now I get things done because it feels like carving marble. #b3d #gamedev #indiedev

123 11

It's a slow day, making some cute little toys in Blender. #b3d #gamedev #indiedev #GodotEngine

76 7

Posted without context.

25 0

Wife made fun of my creation by saying "Feed me, Seymour!". Point taken, there's actually no need to keep any one band on top of everything else. Fixed! And that's another beautiful thing about this approach - It's easy to go in and change up the "intersections" / layering order.

9 0

So I remembered that a subdivision-3 ico sphere has this lovely equatorial band with a gentle, organic wave. But also? You get more isomorphic bands at other viewing angles. Long story short: great basis for making low-poly yarn balls! #b3d #gamedev #indiedev

135 16

My old runtime transform saver utility coming in clutch now that I'm once again placing tons of loose objects in the scene. 🫑 #GodotEngine #gamedev #indiedev

150 10

After weeks of trying to understand this Godot doc blurb about PhysicsDirectSpaceState.cast_motion (tinyurl.com/sbtm5tt6), I finally figured out that all this is trying to say is this: - right before hit - right after hit #GodotEngine #gamedev

60 4

I really thought I could get rocking chair physics right the first time around, but I was a fool. #GodotEngine #gamedev #indiedev #ScreenshotSaturday

211 20

This rocking chair is a great example of a niche case where moving an object with baked lighting is totally fine! Its overall lighting condition doesn't change, and its natural movements don't reveal some super ugly shadows. #GodotEngine #gamedev #indiedev

98 7

My heart says yes. Kelp does indeed deserve its own special shader. No textures or vertex colors used at all. It's another one of those effects that I can dial up to 1000, but I had to strike a balance so it still matches the rest of the art direction. #GodotEngine #gamedev #indiedev

147 9

For example, the bunched up broom bristles were just extruded from the cylinder faces, then jittered. When working with this kinda art style, I can get away with these fun little cheats, heh. πŸ˜›

24 1

A couple more fun low-poly stylized props. It's super satisfying when the topology just "flows" from the primitive shapes you start modeling with. 😊 #gamedev #indiedev #b3d

91 6

I'm replacing a lot of placeholder art this week, and came upon this "cutting board" I've had for over a year. (outdoor ice bench with a crate texture) #GodotEngine #gamedev #indiedev

116 7