1. WolfQuest: Anniversary Edition
  2. News

WolfQuest: Anniversary Edition News

Silly Saga Bugs

The upcoming WolfQuest Saga* is a continuation of the existing game, but it's also a major revision of the existing game, with some very deep changes in multiple game systems. And that means bugs! Lots and lots of bugs. Most are not very interesting, but occasionally we not only get an amusing bug, but someone on the team or among our beta testers manages to capture some video of it. We're making great progress with these bugs as well as the seemingly-endless testing and tweaking and tuning of the gameplay. So today's devblog is all about those silly saga bugs that at least provide a bit of entertainment before the hard work of investigating and fixing them. Enjoy!

[previewyoutube][/previewyoutube]

* The upcoming WolfQuest Saga is "the rest of the game." Your pups will continue to grow into the fall and beyond, learning to hunt under your supervision, and then becoming yearlings when next year's pups are born. Time will continue progressing through the years until you die. The Saga is currently in development but we do not have a release date for it.
____________________

The WolfQuest saga will continue! Stay tuned for more news in upcoming devblogs about it and other new features!

We do not announce specific release dates. We will release them when they are ready.

'There aren't 3 new wolf simulation games coming out every month': 17 years in, this multiplayer wolf edutainment game from the Minnesota Zoo has an improbably loyal fandom keeping it alive




Nature documentaries always have me rooting for the prey animals. It's the circle of life and all that, but gazelles seem pretty chill, and when a pack of hyenas swoops in and starts lunging at the slow one it's hard not to cheer on the underdog. My recent experiences in WolfQuest have widened my perspective, though...
Read more.

Dispersals in the Saga

Today's devblog looks at an important part of the upcoming WolfQuest Saga* -- how your pups will disperse when they grow up. This gets complicated, so I'll take it one piece at a time.

[previewyoutube][/previewyoutube]

[h3]NPC Pup Dispersing[/h3]
As the years go by, your pups grow up and, sooner or later, they will disperse, heading out on their own to find or form a pack. Pups can start dispersing as yearlings, but two is the most common age for it, particularly in the fall and early winter. So somewhere between 15 months of age and 3-4 years of age, your pups are almost certain to leave your pack and seek their way in the world. Since your pups are, of course, known to you, they'll appear on the Known Wolves panel, so you can keep an eye on them and if they find a mate and form a pack, or join an existing pack, or leave the game map in search of greener fields elsewhere.

However, not every dispersal is successful. Sometimes a wolf will return to its natal pack for awhile before trying again. It'll be nice to have them back with the family pack for awhile.

[h3]Making Pups Playable[/h3]
The game has always let you "grow up" any of your surviving pups to make them playable adult wolves. We wanted to keep this option in the expanded context of the Saga. Essentially it's the same, except that pups must now survive to age one before they become playable in the Family Tree. (If we had fully designed and built the entire game before releasing it, we probably would have made pups playable only after they've dispersed in the game -- but now that's too restrictive and likely frustrating, since it can take several game-years for a pup to disperse, and some may not survive that long.)

Somewhat related: The unlockable coats work the same way as before -- if a pup has an unlockable coat, it's unlocked when you finish the Loaf at Rendezvous Site quest. You don't have to keep them alive until they're a year old to unlock the coat.

[h3]Branching Out as Dispersed Pups[/h3]
This is where it gets complicated. When a pup disperses, we thought it would be fun to switch over and play as that pup within the same game universe, with that continuity of location, rival packs, territories etc. So when one of your pups disperses, you are notified about that event, with the option to switch roles and play as that dispersed pup (either immediately or later). If you choose to switch, the game splits off with you as that young wolf in the Find a Mate quest (since that pup has already learned to hunt in the Young Hunters quest). As a freshly-dispersed wolf, your natal or birth pack will tolerate you for awhile, so you can sleep in their territory safely while you search for a mate. (Thoug unlike NPC dispersals, as a player-wolf you can't rejoin your natal pack). But once you find a mate, your old pack becomes a rival pack, with no holds barred! (There is some evidence in Yellowstone that related wolves in rival packs are less hostile to each other, but we concluded that it wasn't feasible to incorporate that into the game.)

When you switch to play as the dispersal, the game world is carried over, exactly as it was. But of course, as the days and months go by, it will gradually change. So, if you later load the game with your original wolf (the parent of the dispersal), those two versions of that game universe won't be kept in sync, as you the player and all the NPC wolves make decisions about their lives, their packs, their territories. So yes indeed, the multiverse coming to WolfQuest, with branching universes and multiple realities. Perhaps a bit weird, but we decided on this design so the game can support a range of role-playing and storytelling preferences.

To keep things from getting too confusing, each wolf (whether created by the player, or a grown pup) has one identity. This is not that odd, except that pups become playable in the Family Tree before they disperse in the game. So if you start a new game with a grown pup via the Family Tree, but then later go back to the original game save when they're still a yearling and play through that so they eventually disperse, you'll have to make a choice. To switch over and play as that dispersed pup in that same game universe, you'll have to override the that wolf's save file (resetting its age to whatever age this dispersing pup is). You can't have two versions of that pup, just like you can't have two versions of any of your wolves.

So, as I said, it's complicated! But it's all working well in our playtesting so far. And the Saga in general is really shaping up. We still have to finish a few more features, and of course do much more playtesting and bugfixing, but we are excited to get the Saga into everyone's hands, later this year.

* The upcoming WolfQuest Saga is "the rest of the game," where your pups grow up as you have a new litter each year. Time will continue progressing through the years until you die. We expect to release it later this year (but we have not set a release date).

Buzza's Banjo Pups for the Saga

In the upcoming WolfQuest Saga,* pups will keep growing -- changing from cute little furballs into enthusiastic, awkward teenagers who must plunge in and learn how to hunt the hard way. These older pups needed some new music tracks that captured their gangly charm -- and today's devblog look at how WolfQuest composer Tim Buzza approached this challenge. Tim's music has been at the heart of WolfQuest since the very beginning, and we're delighted with what he came up with for these new tracks. Enjoy this peek into his creative process!

[previewyoutube][/previewyoutube]

* The upcoming WolfQuest Saga is "the rest of the game." Your pups will continue to grow into the fall and beyond, learning to hunt under your supervision, and then becoming yearlings when next year's pups are born. Time will continue progressing through the years until you die. The Saga is currently in development but we do not have a release date for it.
___________________

The WolfQuest saga will continue! Stay tuned for more news in upcoming devblogs about it and other new features!

We do not announce specific release dates. We will release them when they are ready.

A New IK System

Longtime WolfQuest players (or at least, longtime followers of this devblog) may remember the trouble we had getting the wolf's IK system to work well. IK (Inverse Kinematics) refers to the mechanics of a chain of objects, such as bones and joints in a leg or arm, and how their positions are calculated when interacting with other objects. One of our challenging tasks in the development of the Anniversary Edition was creating an IK system for wolves, so they would interact more naturally with their environment — both the ground and other objects such as elk who were fleeing for their lives from the wolves.

[previewyoutube][/previewyoutube]

Inverse Kinematics is hard -- and Inverse Kinematics for quadrupeds is really hard. So we decided to use a software plugin called Final IK, which is considered the very best IK system available for Unity. It was designed for bipeds, but the FinalIK developer added some modifications for quadrupeds, so it worked well to some degree but by no means in all the ways we wanted it to work. But it sufficed.

Since then, Mikko joined the WolfQuest team, and after focusing mainly on multiplayer for several years, he was available and interested in a new challenge, so he took on the challenge of creating a custom quadruped IK system. I asked him to explain the process:

Mikko says:

The original motivation for the new IK system was to avoiding 'space legs' (where the wolf stood perpendicular to the slope, like walking around the exterior of a spaceship). FinalIK's quadrupedal grounder is just two bipedal grounders glued together and it can't handle the pose modifications necessary for making a quadrupedal animal behave sensibly on slopes. I also had improvements to bite IK in mind, given all the trouble we had with it in FinalIK — particularly how forelegs were often not positioned sensibly. I don't recall if a simpler interface was one of my original goals, but it's certainly become apparent as a benefit along the way. FinalIK is comprised of many separate IK components (we used fullbody IK, look at IK, grounder IK and aim IK) which partially affected the same bones. This not only necessitated assigning references at multiple places but also made it hard to reason about which part or parameter of it was responsible for what aspects of the overall pose. Something that definitely came up during implementation was tail IK. Without space legs, the tail pose on slopes was obviously wrong so I had to do something about it. Fortunately it was pretty simple, probably the simplest part in all this.

Some of the biggest and so far unresolved challenges are related to some advanced features. I've had to shelve a lot of code because it was taking too long and I wanted to get the basic features done first. But it may be better to concentrate on ones pertaining to currently present features. One challenge has been dealing with all the different animations with different features. I've identified five kinds of foot motions which have meaningful differences (stationary, sliding, gait, acyclic and airborne). Then there's root motion (animation making the animal actually move) which required some additional work. I can't make many assumptions about how different bones are positioned, so the IK has to be flexible and deduce a bunch of parameters from the state of bones after animation is applied. Another challenge is detecting at which points during a gait the animal's feet touch the ground. Again I can't assume anything about foot height or velocity during the step, so I need to analyze the animation frames in a generic way. There are at least some cases currently where grounding is detected incorrectly and I need to improve it at some point. Lack of animation is also its own challenge. If no animation is playing, nothing will reset the positions of the bones between frames. Since the IK has to take cues from the animation, there's a risk that without an animation a feedback loop will form when it instead acts on its own result from the previous frame.

Bite IK is the most complex type of IK in use here and it took a while to arrive at a good algorithm for it. I first tried some general-purpose algorithms, but they tended to have the problem of making the wolf's spine look either stretched out or scrunched up. I wanted to retain the feel of the spine's shape from the animation. Eventually I came up with a custom solution which bends the spine in a couple of different ways and has some tweakable parameters to fine-tune the appearance. Avoiding "space legs" relies on the animal being in an upright orientation when the IK begins its work. In the initial integration I did this by adjusting the orientation of the model's root transform (it's like a base to which the entire model is attached). However it turned out that when a root motion animation wants to move the animal, it uses this same transform and the conflict caused some badness. I had to refactor the IK so that instead of rotating the base of the model it instead grabs the spine and rotates that to being the animal to an upright orientation before further processing. When doing this kind of work it's important to understand how the various positions and directions relate to each other. Numbers in the inspector may have the correct information but they're hard to grasp intuitively. To make it easier for myself to see what the IK is doing, I've added various debug graphics. The orange line is the spine before any IK is applied. Yellow lines show the positions of bones after the overall orientation has been adjusted to match the surface under the animal but before any actual IK. Green lines show the IK result. Cyan vertical lines are raycasts made for leg grounding and slightly darker blue vertical lines are raycasts used for body orientation.

And of course there's the usual challenges of any complex software project. The IK consists of half a dozen sub-components and I have to keep them and their interactions straight. My long experience as a programmer helps enormously here, but even so in the early stage there were times when the code felt like a giant ball of yarn and it was hard to tell what should go where. Gradually I was able to untangle it and put it in a manageable shape.


___________________

The WolfQuest saga will continue! Stay tuned for more news in upcoming devblogs about it and other new features!

We do not announce specific release dates. We will release them when they are ready.