One of the biggest aspects of Wild Passage is a classical sense of action adventure. This week I'm implementing collision and damage handling for the different objects in the world of Wild Passage. We want the game to feel both approachable yet challenging, and needless to say, collision and damage handling will play a huge part in achieving that.
Over the next few posts I will try to outline my thinking and breakdown our solutions for WP step by step.
The simple question: "When should things collide?"
The answer is actually predicated on a number of factors that are difficult to generalize. For WP, there's what feels like a million questions that we ask which can change our expectations of collision behavior. Here's just a few examples:
- What kind of objects are interacting?
- Who owns the collision?
- Who implements the result?
- What should this collider be allowed to affect?
- Is this collider part of an animation?
- Do certain colliders have priority overrides to others?
- Do force, mass, weight, or type of object have direct gameplay repercussions?
- Is physics simulation relevant to game design results? (Ie, how fast is the sword moving affects damage)
Most games utilize colliders for various "channels" of information. For example, a unique collider for each: navigation, hitboxes, physics collision, collision between characters, and so on. This allows for tight control of how different "parts" of a character or object should behave. This is specially common in platformers, fighting games, and 2D games like our other project, Casmage.
Games like Smash Bros (and other fighting games no doubt) can do some crazy voodoo with this approach by key-framing different collision box types through the duration of various attack animations. In the images here you can see different colors represent colliders with unique attributes such as "damage dealing" in red, "grab" in purple, "pass through" in blue and so on... In such case, game design and balancing are hugely based on animation and even character design (Look at how much surface area can be damaged on Bowser!)
In fighting games, players dominantly need a model of how characters interact with each other. Sure, sometimes there are platforms and item pickups, but there's not much more. This creates room for more technical and mechanical depth, and is what lends such games their edge. Being really good at Smash thus becomes predicated in having a more refined model of how the game works, and even on having a more efficient model for accesing and reacting to that information in microloops during the heat of battle
On the flipside, games of yore like Link to the Past have "low fi" collisions. The obvious thing is that the technical implementation is simple. Oftentimes the collision model is just a box that occupies the same visual space on the grid as the sprite. In terms of game design, its important to note that this lends the game a certain predictability. In the player's brain there's few questions to answer such as: "what happens when I try to occupy the same space as X?". One repercussion of this system is that building a mental model of how the entire world works is a lot less taxing on the player, which is perfect for an adventure game with a big world!
A simpler model allows the world to be mysterious and full of unknowns while not discouraging the player in braving their adventure. In fact, it even encourages players to experiment and explore as they build models of every new thing they encounter. Shigeru Miyamoto is of course master of design in exploiting these very models to make a world feel rich and alive (even though in reality it's design is very simple and elegant). I believe this simplified design approach is carried over even to the 3D games of the Zelda series such as Ocarina of time, Wind Waker, etc.
What makes collision handling difficult isn't the solving of a technical issue, it is the fact that said technical implementation is deeply tied to the game design itself.
Assumptions we would make about how objects should collide essentially define your game. Smash bros wouldn't be Smash Bros without their animation-centric, framecount-based collisions. Bloodborne would not have people losing their minds over "Hitbox Porn" if it's collision handling wasn't built so meticulously tight. Wind Waker would not be so delightfully approachable if it didn't have fairly forgiving "bounding box" driven collisions like the games of yore.
Wild Passage is obviously more Zelda than Smash Bros or Bloodborne. However' it is still a modern 3D game, so our challenge will be in a collision design that feels comprehensive yet approachable. Most importantly, we need a model that is very consistent yet flexible, allowing us to fill our fantasy world with many weird unique things that are easy for our players to grasp.
Anyway! Here's our test scene. We need to get gameplay collisions solved for all this shabam so let's break em down and let's gooo!