Kokiri Forest Demo: Behind the Scenes...

Friday, February 14, 2014

Now that I'm back to using Unity Free and no longer under any deadlines to get things done before my trial expires, I'm free to work more casually again. I can focus a bit more on learning now, and less on results.

Since the release of v2.1 I have in fact worked on a couple things related to the Kokiri Forest project, and as I've done so I've come to realize that some people may like to read about some of the details that go into it, or why some things weren't seen in the demo. In this post I'll talk about the latter.

I can't guarantee that many people will find this post to be particularly valuable. If you're a game developer, this may just be the ramblings of a novice. If you're just a VR or Zelda fan, then perhaps it's bunch of techno-babble. Hopefully it's interesting for someone!




Character Models


I did actually work on learning to deal with character models a bit, as evident by the "Kokiri Elf Bowling" scene from the v2.x demo. Like terrain and objects, getting the models and textures for characters is one thing, applying them together properly is another, but for characters there's a whole new aspect to be considered. And you can sum that up as 'animation'. Characters limbs need to move when they walk, heads need to turn when you want them to look at something, and you even want subtle animations for when they're standing idle. Lifeless manikins aren't good, and should be even worse in VR where they're more creepy.


But before you can animate a model, it needs an Armature and rigging. This effectively gives a model bones and joints. And once set, then you go through and set different positions for all the bones at different frames of the animation you're trying to achieve. Rigging and animations is a very different process then messing with models, textures, scripting and basic game mechanics!

I learned enough about it last month to know that I wasn't going to be able to rush through it and get rigging and animations even close to the goals I set for the project. I can do it. But I need take my time to properly learn and gain experience with it to ensure it's done well.




Sounds


Yes, there were some sounds in the demo. Music, water, rolling boulder, etc. But there were some sounds I had to leave out. Sounds I would have rather included for greater presence, since after all, it's a VR demo, and you want to feel like you're there. Those sounds would at the least be footsteps.

A problem with proper footstep sounds is they are probably best tied into the animation, which of course is lacking from the demo since it doesn't even have an avatar. When a foot hits the ground, you want the sound to go off exactly then. Not just play a single footstep sound on loop while the Forward button remains pressed. I may be able to dial in something that feels close enough, but further consideration would have to be taken for when you're running/walking/crawling/in the air. It all seems like a lot of work to put into what feels like a cheap workaround.


Add onto that, you want different sounds to play while on different surfaces. A splashy sound while moving through water, a creaky thud on lose wood, a sloshy or breezy sound on grass, etc. So I would need sounds for every case, and I would also have to label every surface to know what sound to play. Also, water you don't stand "on", you stand "in", which requires a special case in code.

So what sounds like a simple task, "add footsteps sounds" isn't so simple. At least not for a novice like me under a deadline.

Other missing sounds of note:

  • Better water. (I.E. Not coming from 1 fixed point, but instead from any part of the water.)
  • Jumping.
  • Climbing.




Particles


The air particles you do see in the demo are pretty close. But they're not perfect. For one the colors and movement aren't exactly the same. It's hard to dial things in like that purely by observation of behavior. And again, more so for a novice like me.


There's also another type of particle I didn't replicate. What I refer to as the caterpillar particle. It's a segmented chain of particles similar to the others, but it behaves differently. It swims through the air more than zigzags, gathers and explodes (as a direct result of the users avatar). I got stuck learning very much beyond the basics of the particle systems in Unity, just to try and create the caterpillar effect. With a bit more effort, I think it's possible. But it wasn't worth getting stuck on for very long.




Swimming


You may notice that the water looks and behaves alright from the outside. But if you jump in you wind up right on the bottom like you were wearing some sort of Super Iron Boots. And that's of course because I didn't add any sort of underwater physics code.


I considered it. Using colliders and changing gravity and momentum when in contact didn't sound to far outside my comfort zone. But I soon realized I'd have to effectively add in some alternative "in water" movement controls to be able to swim around, or else the user would be stuck where they landed in the water. It just sounded like to much work for so little, and not worth it with my limited time. So again I passed.




Other Areas


I don't want to cover this subject to much, so I'll try to keep it simple.

Most areas are time consuming to get textures looking proper on the models. Or even add the models themselves. I could take shortcuts by leaving out things like objects, but that's not good. I just don't like that idea. More so in VR you want to see the little things. Not just blurry 18 year old textures of walls and floors.


The screenshot above is an example of what an area looks like with no work done on fixing textures and models.


  • The path is glitching out and clipping into the ground.
  • The tree, death mountain, volcano, domed spire, bridge and ramp have no color.
  • The fences, tree, death mountain, volcano, rocky walls, both 2D town textures, torch holders and path have no transparency.
  • Textures like the symbol of the Royal Family above the bridge repeats wrong. (This is far more common in other areas.)
  • There's no draw-bridge at all!
  • No chains for the bridge if it was there..
  • The grass texture is lacking the proper detail.
  • No sky at all. (That's just the default blue background in Unity.)
  • The ramp to Kakariko Village is wrong in a few ways.
  • There's a sign missing that should be dead center near-bye in front of the camera.
  • Theres a tree missing that should be peaking out from behind the darker grey wall.
  • The path textures are just plain corrupt.

This is just one section of Hyrule Field that's in the frame of the camera. There are more objects and detail in other parts of the field, most also in need of work.

I find it better to have a single area that's heavily polished, then more areas with little work done. And I hope people would agree with me on that.



Throughout the project I've gained a new found respect and understanding for the work that goes in games. Thinking about it, if I'm going to learn from example, what better game to do so with then whats well regarded as one of the, if not thee greatest game of all time? Sure it's not a VR game. There's little in terms of examples of those. Certainly none to the caliber of this Ocarina of Time. But hey, that's one of the reasons I'm choosing to be a game developer now. To help be one of the ones that sets examples like that!

0 comments:

Post a Comment