Today let’s take a look at some of the many plugins that make our life at Prologue Games so much easier. It’s been said before but I’ll say it again – the Unity Asset Store is one of the best ways to boost productivity.
So for starters, why pay money for some little snippet of code off the asset store? Like many other programmers, I have an ingrained tendency to turn my nose up at other people’s code. “I see how they probably did that. It can’t be that hard! I’ll just see if I can do it myself…” But as anyone with a little time under their belt knows, it’s never “that easy”.
Especially if you are at a point where you can contract out your time to bring in income, you have an inherent $/hr value. Unless you would charge a client minimum wage, you’re going to have a hard time reproducing anything on the asset store for less than it would cost you in man hours. $30 camera scripting pack? Can you really build that in less than an hour and have any confidence it’ll hold up to everything you need? Even if you include the learning curve required to study someone else’s plugin, that time is far better spent building on someone else’s foundation than figuring it out from scratch.
Ok, enough of that, so what does Prologue Games use?
Since we’re building a cinematic, story driven game, I knew we would want a few basic components – camera animators (for cutscenes), a dialogue editor, and a story scripting tool (how to plan the major events and general story arcs).
We started with Playmaker and made some great early progress. Having used it in several previous projects, we knew it was a solid tool with broad support. Sadly, it does it’s main purpose very well – it is a state machine (duh). For this game, we needed something with a little more flexibility and the ability to track progress across multiple storylines without such a rigid structure.
After cutting our teeth on this challenge, we came across the often-recommended Chat Mapper. This is an excellent 3rd party tool that not only has a pretty deep conversation tool but has a handy lua engine built right into it. This allows designers with a very minor technical understanding to build in more complex variables and conditions that drive conversations and overall story structure. Thankfully, there are also a few Unity plugins that will take the data out of Chat Mapper and immediately turn them into a usable format. We settled on Dialogue System by Pixel Crushers. Not only do they have built in import tools but they have an in-editor window that allows you to tweak content without having to buy another copy of Chat Mapper. This is super handy for a programmer to debug something a designer has put in place. They can quickly test a number of permutations without having to load into a separate tool each time. In addition, the Dialogue System has built in UI systems for displaying the conversation options, quicktime events, and even controlling camera transitions.
Which brings us to cameras! One of our goals is to intentionally bring in real-world camera behaviors (like you would see in a movie or tv show) to put the viewer in a particular mindset. If we don’t have “magic” cameras that videogames often use, it will add to the overall visual mood that is set up. To that end, we’ve incorporated Cinema Pro Cams to model true lens behaviors. Instead of setting magic numbers for field of view, it has a pre-calculated table that mimics real world lens kits. Want a shallow depth of field and a narrow field of view? Pick the appropriate size lens, set the f-stop and immediately you get an altered field of view and depth of field for focus (requires Unity Pro to get the blur effect). It may seem small, but by using these combinations that you would find in “real life”, it helps bring the viewer one step closer to the experience we intend. In addition, there are a number of handy editor visualizers to help pre-vis cut scenes and camera positions.
Finally we are working with a combination of tools to plot the movement of the camera through space. uSequencer provides a backbone for coordinating NPC actions, lighting changes, and camera cues while we wrote a quick spline editor to get our own “rails” for camera movement.
At first glance this seems like quite a laundry list of items. It is definitely a learning curve to understand how everything plugs together but not any more than if we had written this stuff from scratch. What it really means is that for a few hundred dollars we were able to cut probably 3-5 months of development time out and focus instead on content! There are folks out there that love to build a good “system” but when it really comes down to it, we are perfectly happy to accept the bumps and rough edges of other people’s tools to give us such a huge leg up on building the meat of the game and story.
If you are interested in more info about our experience with any of these tools, please don’t hesitate to reach out. It has completely altered our trajectory at these early phases and we’re excited to get even more proficient with all the capabilities over the next few months!