Magivoid Devlog #4 - Explosions and Ghouls
Tags: gamedev, devlog
Published: 2023-06-10 21:59:55

---
title: Magivoid Devlog #4 - Explosions and Ghouls
published: true
date: 2023-05-02 00:00:00 UTC
tags: gamedev, devlog
canonical_url: https://tinygame.dev/posts/Magivoid-Devlog-4/
---

## Fireball progression

With our first weapon being the fireball spell it should feel like a powerful means of destruction yet still be upgradeable to cause increased collateral damage at higher levels. I have recently implemented multiple levels of the spell and it’s already starting to feel like this is going to be fun.

Before getting into the three levels of the spell I wanted to mention what plans I had for the combat. At the moment it’s a simple “monster health” vs “weapon damage” ordeal with no additional depth to it. The plan, however, is to introduce multiple stats that can be leveled up and give a variety of different character builds. Examples of these stats are luck affecting how the random weapon damage is calculated, monster defense protecting against player damage, player strength increasing it, etc. Different playable characters will also have different base stats to offer an additional level of strategy when selecting what character to play with. We’ll see what I end up implementing in the end, but I’m excited about the potential for fun mechanics here.

Right, let’s get into it. The first level of the fireball spell is a simple projectile that inflicts some random amount of damage in a predefined range. It takes 2-3 hits to kill a spider, for example, but you quickly level up to destroy these things much faster.

<video autoplay loop controls>
  <source src="https://tinygame.dev/assets/fireball_0.f5f8877b.mp4" type="video/mp4" />
  Your browser does not support the video tag.
</video>

The second level of the spell improves the projectile with a damage-over-time effect if the enemy isn’t killed after a successful hit. The fire DOT does additional damage every second for three seconds. I’m thinking in the future this version can be further improved to make the effect last longer or cause enemies to burn each other when they’re close and have the fire spread.

<video autoplay loop controls>
  <source src="https://tinygame.dev/assets/fireball_1.f064dcbd.mp4" type="video/mp4" />
  Your browser does not support the video tag.
</video>

The third level is no longer a single enemy damage weapon. When the projectile is destroyed it triggers an explosion that damages everything in a radius. All levels of the spell stack, which means if the explosion doesn’t kill an enemy it will also apply the fire DOT on everything in the radius.

<video autoplay loop controls>
  <source src="https://tinygame.dev/assets/fireball_2.040b2358.mp4" type="video/mp4" />
  Your browser does not support the video tag.
</video>


## Uh, ghouls

I added the second monster in Magivoid and I’m happy to say it turned out pretty neat. Its behavior is the same as the spider, with the only exception being the new monster moves slightly faster, so it was quick and easy to implement…mostly. Let me introduce you to the ghoul. 

<video autoplay loop controls>
  <source src="https://tinygame.dev/assets/ghoul.d14dff15.mp4" type="video/mp4" />
  Your browser does not support the video tag.
</video>

I spent a couple of days wrestling with the physics body in Unreal Engine trying to get the ragdoll to behave. I built up the body parts from scratch and set up all capsules and constraints manually, which took longer than I would have liked, but the end result works pretty well.

<video autoplay loop controls>
  <source src="https://tinygame.dev/assets/ragdoll.2e7ddfde.mp4" type="video/mp4" />
  Your browser does not support the video tag.
</video>

This model also comes with a few different cosmetic props which add a little bit of variation. The meshes are set up to automatically get randomized when the monster spawns and at this time they don’t really affect gameplay in any way. It does look cool though and I like that it introduces a bit of variation.

![Some variation in the ghoul society](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/femrbzb5vmnluef4n1ot.png)


## Experience

You might have noticed in the videos above tiny blue crystals being dropped when monsters get destroyed. These give the player experience when picked up and forces you to get close to them to get the reward instead of awarding you the experience when killing the monster.

<video autoplay loop controls>
  <source src="https://tinygame.dev/assets/xp.8c45abb9.mp4" type="video/mp4" />
  Your browser does not support the video tag.
</video>

I’ve made an initial version of a full xp curve from level 1 to 99, but obviously this isn’t very useful or set in stone at this time so I won’t share the numbers just yet. I do like its properties though, and I think it will end up feeling quite rewarding while still giving the player a challenge in an attempt to keep them in the flow zone. We’ll have to see what it plays like once we have more content in there and can actually start to balance the game.


## Next up


There’s a bit of a game in there now. We have a few monsters, an upgradable weapon, and a means for the player to earn experience and level up. I’d like to build out the entire game flow from start to finish, including work-in-progress UIs next. This should give the sense of a whole game, regardless of how empty and short it is at this time. From that point on it’s just a matter of filling it out with more content, right? Before doing this though, I may take a quick detour and add a few more monsters.

Until next time, here’s a fun video that people seemed to enjoy on [r/IndieDev](https://www.reddit.com/r/IndieDev/comments/12ynem4/did_i_go_too_far_with_the_fireball_spell).

<video autoplay loop controls>
  <source src="https://tinygame.dev/assets/explosion.9cdeec5c.mp4" type="video/mp4" />
  Your browser does not support the video tag.
</video>


## Links

* [Ghoul](https://www.unrealengine.com/marketplace/en-US/product/ghoul-02)
* [Crystals](https://www.unrealengine.com/marketplace/en-US/product/crystals)
* [HQUI: Progress Bars](https://www.unrealengine.com/marketplace/en-US/product/hqui-progress-bars)