Creating a Worm Type Boss Enemy in C# Godot [Andromedoom Dev Log 10]
Polysthetic
๐พWelcome to the Andromedoom dev logs! Build your own Terraria's Eater of Worlds in 3D with C# Godot! Leviathan is the first boss of Andromedoom, and the final encounter in the Asia-Pacific region. I will be showing him in the next episode, but for now, I will show you how to build your own worm-type boss. These are characterised by train-like movement, and splitting into multiple independent segments when damaged. Thank you for watching if you've made it this far! It was a marathon feat to get these first 11 episodes produced, but I hope you take something valuable away from them, and build your own prototypes! Onward, I will only be producing vlogs and tutorials in separate videos, and shift focus more on making progress and reducing the frequency of these videos. I hope you enjoy this video series and stick around for the game's development! ๐
๐ผ References episodes: Finite State Machines: https://www.youtube.com/watch?v=9j7oh-b3Lak Object Destruction and Pooling: https://www.youtube.com/watch?v=ZQ6dpoigV6g
โฑ๏ธ Timestamps: 0:00 Intro 0:53 Prototype demonstration 1:25 How it was built in the prototype 2:30 Rundown of the finite state machine 3:45 Setting up the level scene 4:30 Setting up the boss scene 6:00 Scripting - Setting up the state machine 9:50 Scripting - Adding the meshes 10:15 Scripting - Building the worm segments 13:10 Scripting - State - Head movement 15:30 Scripting - Spawner - Using async/await 20:15 Scripting - Spawner - Updating worm segments 22:50 Scripting - State - Body and tail segment movement 25:48 Scripting - State - Head turning 32:40 Scripting - Kinematic bouncing 40:20 Collision layers for the boss 41:18 Scripting - State - Head dropping 44:00 Bug fix - Dropping with tweens 47:05 Scripting - Destructing segments 50:45 Scripting - Firing state 55:30 Creating projectiles 58:18 Scripting - Changing collision masks 59:50 Bug fix - Projectile pooling 1:01:45 Conclusion
๐ป Addenda:
- I forgot to explain this but the reason I oriented the spawner at an angle is to demonstrate the boss bouncing correctly. If perpendicular, he would've bounced straight backwards.
- Always use Vector3.Up for LookAt when rotating in XZ. I still haven't wrapped my head around global transforms fully. ๐
๐ถ Music tracks from:
- Chau Sara - Time Travel : https://www.youtube.com/watch?v=4GB--JA80Cc
- Sling Dilly x Sleepermane - Weightless : https://www.youtube.com/watch?v=bXpoqYhQp1o
- drkmnd - Satellite Nights : https://www.youtube.com/watch?v=nKk-DRpZTbU
- less.people - One day it's over : https://www.youtube.com/watch?v=vrwG_pCf1Sc
- Provided by Lofi Girl
You can also visit me at: WEBSITE ๐ https://polysthetic.com THREADLESS ๐ถ๏ธ https://polysthetic.threadless.com DRIBBBLE ๐ https://dribbble.com/polysthetic YOUTUBE ๐ฅ https://youtube.com/c/polysthetic AUDIOMACK ๐ผ https://audiomack.com/polysthetic ... https://www.youtube.com/watch?v=6_yALwzR4i8
194162407 Bytes