Heremeus

Ludum Dare 48

Spellcasting AI with behaviour trees

This was my first Ludum Dare and I had lots of fun! My part was developing the gameplay systems and AI for our rune spell casting game Glyphs of Madness. It was a great experience, even if we did not have time to implement and polish all features.

GameScreen.png

For the AI, @sebwod came up with themes and rules for each enemy’s spellcasting. For example “Everseer” (the first enemy), is using fire-based spells. At first, he only casts two attack spells. But once his health gets lower, he will start using buffs and a more powerful attack. EnemyDesign.PNG

We chose behaviour trees to transform these designs into code. This allowed us to break complex rules and cast sequences into smaller, reusable conditions and tasks. Due to time constraints, we only managed to implement proper AI for the first two enemies. The other enemies ended up with a backup behaviour tree consisting of only two actions: “wait for cooldown” and “cast random available spell”. Shoutout to Ashblue for his fluid behaviour tree package for Unity! The visualisation was very helpful when enemies were casting the wrong spells or none at all :smile: BT.PNG

Feel free to check out the game and beat the AI :wink:

https://ldjam.com/events/ludum-dare/48/into-the-tome-of-glyphs

Web build is available here: https://glyphsofmadness.genemachine.studio/rom/ (Press F11 for fullscreen). Only development build for now because Unity didn't feel like building a working release build.

Ludum Dare 50

WebGL Input Issues

Giving up on the WebGL build for tonight. For some reason Unity's input system won't work at all in WebGL (keyboard events are not triggered). Any help is much appreciated. Otherwise I'll switch to the legacy input tomorrow.

Compo post mortem

Hey folks,

just a quick post mortem on my compo entry Lumi and the cloud shepherd. It was my first time participating in compo this Ludum Dare. In previous LDs and other game jams I've always participated in a team. The difference between 48 and 72 hours were bigger than I thought. And not collaborating with an artist turned out to be quite the challenge (my programmer art skills aren't the best as you can see). For the next jam I plan to allocate an hour or two to get a soundtrack into the game.

On the positive side of things, I'm surprised I actually finished in time with working gameplay and an online leaderboard.

I have to thank my fiancée for the great idea of taking a positive take on the inevitable theme. My initial idea were along the lines of "survive as long as you can - but ultimately you lose anyway". The idea of delaying spring instead of surviving made the theme less negative/melancholic for me. Sadly I ran out of time to make "losing" a more happy event. I had planned some ending that shows the main character realising that spring isn't so bad overall.

lumi_shake.gif