Stoic is pleased to announce that we have partnered with Curse Gaming to host our official Banner Saga Wiki! Special thanks to Guðmundr for migrating content from existing wikis into the new Curse wiki, and for adapting and improving the layout to work well with Curse.
In case you missed it on the Kickstarter, here's the update Alex posted last week:
- - - - - - - - - -
Hello, backers. We meet again in good spirits!
We’ve got quite a bit of development progress to get into, but before we jump into that, we’re going to do a quick repeating feature at the top of every update addressing some of the common questions we get. Usually we get these same questions several times a day, so hopefully this will help keep everyone up to date:
Q: How/where do I upload my guild crest?
A: We’ll be including crest uploads as part of the actual game, so there’s never a deadline. It will only be accessible by backers.
Q: When is the game coming out?
A: Later this year. We used the overfunding to significantly increase the size of the game and extend the release date.
As you may have heard, Factions is out. We’ve finished all the combat upgrades which you can try in the game (we’ve also decreased the “grind” quite a bit based on feedback we got). This means that every character ability ranks up and becomes more powerful, which was the last combat system we needed for single player combat.
To mention it again, everything we did for Factions is for the single player. Even the intro cinematic in Factions is actually the intro to the single player game, and the combat boards in Factions are key fights in the single player campaign. We're using all parts of the buffalo, so to speak.
During this time we’ve finished final design work on all our systems. With this documentation finished, implementation has begun.
Here’s a recap: The Banner Saga has three primary gameplay systems: combat, conversation and travel. You switch between these to advance the story. Conversation tracks your decisions and advances the plot, travel is a combination of Oregon Trail and King of Dragon Pass, moving the story forward while creating events related to what you’re doing. Travel also accounts for exploring towns, just like how you see Strand in Factions. The turn-based combat occurs when conflicts arise. Each of these systems feeds into the others.
What is a white box?
This a term used to describe the entire game from front to back laid out with placeholder assets. Sometimes it’s called a gray box because in 3D games designers will rough out the shape of the world or levels with simple gray boxes so that they can playtest it before doing time-consuming and expensive final art.
What this means is that we have been implementing every travel scene, every conversation and every combat into the engine and tying the whole thing together via scripting so that we can actually play the entire game. White boxing takes the game from being a series of design docs and makes them exist in the game in rough form. Travel will have placeholder art, combat will have placeholder enemies and conversation will have placeholder dialogue that we can easily iterate on.
What a white box is invaluable for is 1) making sure the systems are functioning correctly, 2) other work can be developed based on this (for example, sound and music), 3) making sure the transitions between systems work well, and 4) Iteration! This last bit is probably the most critical part because it’s only once you have everything playable that you can start to refine it until it shines. Imagine making a game as drawing an enormous mural. A painter doesn’t start in the corner of the picture and complete the image one inch at a time. He roughs in the entire image in pencil, makes changes to the composition, blocks in the colors, adds shading and lighting, then starts to do the detail work. Making a game is a similar process of iteration.
In our case we scoped out the game in rough documentation. We re-scoped when we got 7x the funding. We created gold standards (final look and feel) for travel, conversation and combat. We then started to build the framework for each of these systems. You can see travel functionality when you pan the camera in Strand and the story is already playable through Inkle Writer. We had the great fortune of being able to use Inkle Writer as our conversation toolset, and this has saved us literally months. Inkle Writer will allow us to output functional code that easily plugs into our engine to control variables and conditionals. We took combat past the point of being functional into full polish. As this was our highest risk system it made sense to front-load the work on combat. Playtesting and feedback made sure that it’s as good as we can make it, and we’ve iterated the hell out of it.
TYING IT ALL TOGETHER
Game development has a lot of hidden nooks and crannies. For example, when you think of designing a game you say things in your head like “when the player wins this battle they’ll cut to a conversation...” but how does that happen? You don’t want a programmer to sit down and input every aspect of the game as hard-coded data, which is time-consuming and prone to errors. Instead we’ve created a data-driven system that allows any developer to adjust and modify variables, triggers, actions, conditionals, etc at will.
Each individual game can approach this in whatever way works for them. In an extraordinarily complex game like Star Wars: The Old Republic it’s virtually impossible for any one department to understand all the systems that spiderweb to draw the game together. For example, let’s just take cinematics. The developer accounts for calling appearances, tracking any previous variables like story decisions, calling any other PCs and NPCs in the scene, tracking the characters equipment, and then a slew of specific details about what animation to play, which camera to use, which vfx or sound fx to play and a dozen other choices. And that’s multiple OAVs (Object-Action-Value string) per line of dialogue, sometimes numbering in the dozens. Now take that whole packaged cinematic up one level and you’re integrating where it appears in the world, what prerequisites are associated with triggering it, what state the environment and characters are in, what event spawned this current one, what will be spawned after, what variables change as a result and how the information is given to the player through UI indicators or journal updates. Branching storylines will exacerbate all of this to an incredible degree. At the end of production on The Old Republic, BioWare had literally dozens of designers called “scripters” whose entire job was just to tie everything together. You probably didn’t even know they existed because their work tends to be invisible.
In The Banner Saga we’re able to boil this down to a much more manageable level. First of all, as a 2D game we’ve already reduced a massive amount of complexity. Secondly, we’ve streamlined the whole system to only account for exactly what The Banner Saga needs, not an engine that needs to be applicable for both first person shooters and puzzle games, for example.
Here’s a practical example: we need to track a package of things that happen. “When you do this, that happens, which changes this and puts you on that path”. We’re calling these packages “Happenings” and they tie everything together. It’s just a word we made up. Happenings sounds like a weird thing to call a system but we’ve found that the more identifiable a name, the less likely you are to confuse what you’re talking about. When you have lots of systems interacting with each other, this is vitally important. For example, we call a package of animation, abilities, sounds and vfx for a particular character a “phantasm” so when we use that word we know exactly what we’re talking about.
A happening is made up of the exact the elements needed to start and finish an event. We have triggers, actions, variables and resolution. A happening can spawn other happenings running simultaneously and each tracks different values until they resolve. Here’s an example of how you might construct a happening:
Your trigger is what calls the happening. Let’s say we want Crossing a variable threshold. Ok, once the threshold is crossed we’ve triggered the happening. Maybe this is a number of days that have passed, or a travel stat changing from 2 to 1. Then what happens? Let’s say the action is Go to combat: X. This will put the player in a pre-defined (or random, if we specify) combat. Once this action is complete it goes to the next value. Maybe it’s another action: Go to conversation: X. The player cuts to conversation mode which can introduce variables. If it does create a new variable, this probably spawns a new happening to track the variable. Or it may result in a linear variable, like moving time forward. This would create Modify Days: X. When the conversation ends we go to the next value, which may be Go to travel: X. This will put the caravan back into travel mode where they’ll trundle along until they trigger the next happening.
This is a very simplified example, but in sequence it may look something like this:
Trigger: Cross a variable threshold: days=23 Action: Go to combat: forest_ambush Action: Go to conversation: part2_13 Variable: Modify days: days+2 Action: Go to travel: road_to_strand Resolution: end
This is a linear sequence of events, but each happening in itself is linear- we don’t track conditionals here. At day 23 of travel we got ambushed. After the fight we had a conversation and did something that took 2 more days. Afterward we were back in travel, heading toward Strand. The new happenings that trigger are what make the game branch and diverge. For example, you may make a decision in the above conversation that causes a new series of events to be set in motion. Maybe there was a heated debate about which way to go and one of your companions lashed out in violence. This new happening doesn’t require a trigger because it was spawned in the above conversation. Here’s what it might spawn:
Happening: conversation2_13_bob_attacks Variable: remove_bob Variable: morale-2 Action: Go to combat: bob_dies Resolution: end
In this case the decision I made in conversation caused bob to die and that modified some variables and spawned a combat immediately. Once the combat has resolved it’s gone, but the previous happening is still going. I return from combat and do “Go to travel: road_to_strand” before that happening will end. Most of these variables and conditionals are applied in conversation, which uses a whole different set of toggles called markers to define different conditionals that then inform global changes or variables to the parent happening.
This is just one example. The list of functional triggers, actions and variables is much deeper and includes everything we need to make The Banner Saga functional and dynamic.
Now first of all, let me mention that this isn’t ground-breaking stuff. Most games use something like this and ours is fairly simple, based on our understanding of it working at big companies. But as you can imagine, this can start stacking up to get fairly complex. Fortunately, with the game itself being well-defined we can afford to add complexity to the story, where we want to see it.
When a company plans to make a game it can choose where to place its complexity. If you want full 3D environments, top of the line visuals and animation, complex physics, branching dialogue and advanced combat or inventory systems you'll pay for those exponentially. You can almost think of it as each major feature you add to a game amplifies the difficulty of all the other features. Indie games success has almost always been in taking one or two features and taking them to their furthest extent, usually trying something that feels new in the process. Story has always been our primary focus and our other systems bend to its maniacal demands.
The main point of this long explanation is that this is currently where we are in development- hooking up the white box.
As you may have noticed, the Stoic crew has been a little quiet these last few days. Why? Because they have been preparing (and now are at) PAX East! Happen to be at PAX yourself and want to see what's going on? Then wander on over to the west side of the convention to Room 103 and say hi to Alex, Arnie, John, and crew!
Hello! All of us at Stoic are proud to announce that The Banner Saga: Factions is now open to the public! We'd be happy to send more keys but no need, the game is free on Steam (PC and Mac). We're in the featured section of Steam, or just search for "The Banner Saga".
In addition, we've just finished our launch trailer (very proud of this one), available here:
First official tournament will be coming this Wednesday!
Some people have had questions about what "Factions" is, and why we released it separate from the single player Saga. To summarize, we built combat for the single player game and decided to release it as multiplayer competitive game free and early as we continue to develop the single player game. Unlike many "free to play" games, there's no energy system, no pay to win, and matches are made between teams with even power, regardless of whether they spent money or not. In fact, we've pretty much designed a game that you never need to pay a cent for, truly and honestly. We've probably screwed ourselves. In the meantime, work continues heavily on the single player campaign.
While today is the big day where The Banner Saga: Factions goes live for all to enjoy... and why does that remind me of the old Conan quote (which actually originates from Genghis Khan):"What is best in life?" "To crush your enemies -- See them driven before you, and to hear the lamentation of their women!"... but I digress.
There are still some hours before Factions goes public and if you didn't have the opportunity to help test out, you may be wondering if the game is fun? Of course it is but don't take our word for it, there are a ton of reviews floating across the Internet, including this latest one by Fraser Brown on AWESOMEoutof10: The Banner Saga: Factions Beardpressions.
Here is a short snippet from the article:
Look – The Banner Saga: Factions is pretty rad. It’s free and it’s coming out for all the plebeians to consume shortly. No doubt I’ll find myself posting some more thoughts forged in a mystical Norse smithy somewhere down the line in what the heroic adventurers of yore called “a review”, but in the mean time, strap on a beard, grab an axe and let me kick your arse. I really need the renown.