top of page

Week 5/6 - Rapid ideation session 1 - part 2

  • Foto van schrijver: Anouk Dutrée
    Anouk Dutrée
  • 9 jul 2021
  • 5 minuten om te lezen

Bijgewerkt op: 21 aug 2021

Oof! Well here we are, two weeks later and a prototype is as finished as it's going to get in two weeks. It was quite a rollercoaster ride going from "ooh boy this is so much fun to make!" to "WHAT ON EARTH DOES THAT ERROR MEAN". It was a very enjoyable rollercoaster ride nonetheless. This rapid ideation session was a chance to try out new things in Unity and to brush up on some skills. Enough of an introduction to this post, let's just dive in and reflect on how it went right?


The scope

So in the previous post I tried to scope down this project into something manageable. Needless to say, I still overscoped 😉. This was in part due to having a day less to spend on it than I planned, but also because I thought I would be a bit quicker with setting up a combat framework. Setting up a framework in Unity that allowed a characters in the game to do and take damage and to interact with one another turned out to be more timeconsuming then I thought. I had never done it before so my initial time estimation was based on some educated guesses. Now having made the prototype, I do have a code skeleton that I will be able to apply to future projects! I tried to make the code as reusable as possible, making it easy to just swap out graphics and change settings according to the need for the game. Hopefully this will help me work faster in future projects.


So what did I get done in terms of the scope I initially set out? I had set out to create:

  • 1 Level with a dessert terrain

  • 1 animated Elemental Giant (the enemy/boss), modelled myself, with two attacks: - a randomized pillar attack which erupts pillars from the ground that move radially outwards - some other attack that I have yet to think of

  • An animated dummy main character (can be some open source model) with two attacks: a ranged and a close combat one. The ranged attack should make use of VFX

  • A trigger that makes the giant show up

  • If time permits it: a small cutscene introducing the elemental giant

What I ended up incorporating in the prototype is the following:

  • 1 Level with a dessert terrain ✔️

  • 1 animated Elemental Giant, which I modelled myself ✔️ However, it only has one very simple stomp attack. No special boss abilities ❌

  • An animated dummy character which I took from www.mixamo.com (which is an amazing resource by the way!)✔️ However, also the main character only had one attack ❌

  • I did not get to incorporating a trigger for the giant ❌

  • Time did not permit the cutscene (as anticipated) ❌

All in all, I think I did pretty okay in terms of scope. Most of what I set out to do got incorporated, albeit not to the full extent. I am happy with the amount of work that got done and the most important thing was that I learned from it, which I definitely did.


Learnings from the process

Well, I learned a lot! So let's reflect on some key things


The animator in Unity

The animator in Unity is a funny thing, which somehow always ends up doing the opposite thing of what you expect. You set a transition that cannot be triggered after something else happened? The animator won't care and trigger it anyway. It became clear how explicit you have to be with the animator. If you don't want something to happen, add a condition that will make it explicitly impossible.


The animator has a lot of different settings, even though it seems quite simple at first. I've learnt that there are three key components to keep track of: has exit time, transition duration and transition conditions.


The "has exit time" property is super important for stopping interactive animations at the right time. For example, if you stop moving the character, the character should also stop, regardless of where it is in the walking animation. In order to achieve this the "has exit time" has to be checked off.


The transition duration is important for starting the animation at the desired time. If you jump, your character should jump pretty much instantaneously. But for your character to stop running and go back to an idle animation, you might want a bit more of a transition period to make the transition a bit smoother.


As I mentioned earlier already, the transition conditions are the main way to control the animator and to make sure it only triggers transitions to different states when you want it to. I've learned that whenever your animator does not do what you expect it to do: check the transition conditions and check if your code sets the transition parameters correctly and at the right time.


The importance of colliders

When working more with the colliders in this project I noticed for the first time how important it is to pick the right collider and to put them in the right spot. A collider on your main player that is slightly off will cause it to levitiate above the ground when walking or that's sinking through the ground. This takes away the emersive feeling of a game because this smallg litched really do draw your attention. Colliders are also super important in combat. You want your character or enemy take damage when they are actually hit. If your collider does not match your character that well, a damage process will be triggered even if you didn't actually hit the target. I definitely have a lot to learn about colliders still. It is still unclear to me when you should or should not be using a mesh collider and how to best put colliderss on your object. So that's food for thought for a later time.


Do not blindly trust asset packages from Unity's asset store!

I thought it would be nice to play around with some free assets from Unity's asset store. I downloaded this particle system VFX pack that was free on Unity, the previews looked amazing and I though it would help speed up my workflow if I could just use some of the prefabs. Boy was I wrong!!!! Downloading and importing this particular VFX pack crashed my entire project. Apparently the dependencies where complete spaghetti resulting in a bunch of errors I had never seen before which rendered my proejct unusable. After about two hours of Googling, sighing and bashing my keyboard I managed to delete everything from the imported pack from my project. In the process I found out that multiple people had had this issue. Well, lesson learned: first google reviews on the asset pack before mindlessly importing it into your project....


Mixamo is amazing

In the process of creating the prototype I stumbled across this website called mixamo. It is amazing!!! It is from Adobe and it contains a collection of open source characters and animations. Considering how time consuming animating and modeling it this is such a great resource to have while you are in a prototyping phase. It definitely saved me about a full day of work! Unfortunately mixamo is discontinued and Adobe will not continue making more animations. Luckily the website will continue to be up and running with everything it contains at the moment.


The prototype

If you've made it this far into this blog post you must be wondering "what does the resulting prototype look like?". Well, don't worry my dear reader. I have published it so you can give it a go yourself! Just as a disclaimer: it is just a prototype and it was made in 2 weeks next to my regular job so don't expect too much. That being said, have fun testing it out! And feel free to leave me feedback.


You can go to the prototype by following this link.








Kommentare


bottom of page