Storming the Gates
Castle Story - Sauropod Studio
게시일: 3월 7. 2014
Lego meets Warcraft in Sauropod Studios’ upcoming RTS, Castle Story
Not too long ago, Castle Story began its life as a Lego-inspired capture-the-flag game. Sauropod Studios cofounders Germain Couët and Francois Alain were studying interactive media at L'Université du Québec à Montréal (UQàM), and got the idea during a game prototyping class. “A colleague of ours showed off a turn-based game that involved physics, blocks and rudimentary castles, with the sole objective of toppling them in a spectacular fashion,” recalls Couët. Aside from the initial “wow” factor and plenty of fun playing it, the game got them thinking about why there weren’t any games that used physics, block building and RTS mechanics together. Early initial inspirations came in the form of Warcraft 2, Final Fantasy Tactics and an obscure Half-Life 2 mod called SourceForts.
Starting with their team of two, Alain and Couët had studied together for many years together and had formed an effective prototyping team. “After graduating, we got another game design degree, with the hope of forming a small independent studio,” says Couët. During that period they developed the initial prototype for Castle Story, which eventually went on YouTube in December 2011. The video garnered quite a bit of interest—enough, in fact, to convince them to quit their jobs and work on the game full-time, in preparation for a Kickstarter campaign. Now, more than two years later, the duo has scaled up to a 10-person studio, and is collaborating with a host of contractors for things like music and sound effects.
“We started off creating this game for ourselves—designing a game that we wanted to play, and that we knew no one had done before,” says Couët. “We were filling a void of some kind so the game felt special to us, but we had no clue how many people would agree with us on that.” It was only after they posted that first demo on YouTube that they realized how much interest there actually was; fortunately, that left them with enough time to focus their efforts on creating a Kickstarter campaign, and they decided that creating an in-engine video that essentially showed what the finished game could look like was the best way to convince people of the project’s feasibility. “This required us to actually code a lot of the engine and behaviors, [but] once that was done, we had more than just concept art and a convincing speech—we had something tangible to show. I believe that contributed substantially to the Kickstarter response.”
Couët and Alain were initially undecided if the game would be real-time or turn-based, so they decided to learn how to use a game engine and in order to decide, based on their abilities. “Since we’re from a game design and prototyping background, we didn’t have the technical abilities to write our own engine, and had no prior experience with other engines,” says Couët. “We also needed to know really quickly if our game design idea even worked at all. Unity proved an excellent platform because it allowed for a rapid prototyping cycle, but also left room to polish those ideas into a finished product.”
Because Castle Story follows almost no typical game design conventions, early days were challenging. “The completely procedural worlds broke the notion of set ‘levels’, and the ability to modify your environment didn’t allow any kind of linear level design,” recalls Couët. The top-down but completely free POV didn’t allow conventional optimization tricks, so they ended up with a very transparent prototype—nothing could be hidden, and game design shortcuts couldn’t be taken. Finally, the AI requirements were enormous: “[This] constantly challenged us to come up with solutions to make the game work as intended,” says Couët. “Thankfully, Unity streamlines much of the surrounding work, and allowed us to focus on these challenges.”
“Castle Story wouldn’t be possible in its current stage if it wasn’t for Unity’s robust and well-integrated physics engine,” he continues. “We initially feared that having complex mesh colliders on the dynamic terrain would severely limit the scope of our game, but to our surprise, everything worked almost instantly. To this day, the physics engine has given us by far the least problems, and remains completely reliable, even in the worst circumstances. For a game like ours, physics are essential, and the core concept of Castle Story would not be possible without them.”
The game’s reliance on voxel technology has worked well with the team’s choice of middleware as well. “The core concept of our game requires us to create tons of procedural geometry,” says Couët. “We constantly work on our toolkit to add new optimizations to our geometry pipeline, [and] we also put a lot of effort into path-finding.” They’ve since developed a special versions of the A* algorithm, adapted for a dynamic 3D universe than can be updated easily at runtime. “Thankfully, we have very skilled programmers that know their way around these challenges, and so far, things have been going smoothly.”
Over the past two years, the game has grown larger and more complex than its developers ever imagined. “Making games takes a long time, especially if the project is technically challenging,” says Couët. “We learned that staying active in the community and releasing versions of the game often gives us an essential feedback on the state of the game. This helps keeping the morale up during hard times, and it helps focusing on the important features. Basically, having a constant oversight keeps us in tune with our community and helps the decision process a lot during the development.”
Various unexpected problems cropped up the way. On of the most unexpected problems came when the team tried to release the game’s first prototype: Patching and updating the player’s versions was impossible, since the team was planning to release patches frequently, and wanted to streamline that process. “We realized there was no tool available anywhere for online distribution and auto-patching,” says Couët. “Eventually, Steam offered us a spot in their SteamApps ecosystem that took care of the entire process, and since then things have been going smoothly.”
Through it all, Couët is most proud of the fact that he and his team have managed to stay true to their initial design. “Even through the many struggles and successes we’ve had, I feel like the game is still going in the same direction we started in two years ago,” he says. “We managed that by keeping our game design nimble, and by re-assessing our situation every step of the way. Had we set in stone every game mechanic before tackling the challenge, we would never have been able to solve some difficult design problems.”
While the team hasn’t used visual or audio assets from the Unity Asset Store, instead creating everything in-house, a host of editor extensions have made their lives easier. “We constantly browse for new extensions, and often purchase them to see if we could integrate them in our production pipeline,” says Sauropod Studio cofounder Germain Couët. “So far, the experience has been seamless, and the vibrant Asset Store community gives us hope to see tons of great plugins in the future.”
Sauropod Studio co-founder Germain Couët. says that a big part of his team’s work ethic is to try to interact as much as possible with the community. In one instance, a member of its forum even managed to help them solve a particularly nasty design problem: “We were having problems with workers blocking each other’s path,” recalls Couët. Where classic games such as Starcraft and Warcraft disable unit collisions between workers to avoid dealing with that problem and to speed up the flow of the game, Castle Story workers navigate far and wide on a dynamic environment. Because they’re modifying the terrain themselves, it was very important to accurately simulate them; unfortunately, the workers would often get jammed up in bottlenecks created by the player, such as when walking across the top of a wall.
“After exposing that problem to our community, a member proposed that the workers swap what they were carrying when they met and blocked each other,” says Couët. “After prototyping this idea, we realized that it allowed them to maintain the workflow even through multi-worker traffic jams. This was a really unconventional design solution, and a great example of community involvement during the game’s development.”