Vicious Circle: Dev Diary Issue. 2 - "Sandwiches"

Vicious Circle

Dev Diary Issue. 2 : Development Environment

Title: “Sandwiches”

Concept art for first weapon in Vicious Circle

Concept art for first weapon in Vicious Circle

Welcome to the second issue of our Vicious Circle Dev Diary series. Today we’re going to focus on answering a few more foundational questions about the game development process and give you prospective game designers, project managers, and Circle Jerks a little insight into our software development environment that will largely inform the process around making Vicious Circle a reality.

While there are a lot of fans of games who appreciate the nuance of gameplay mechanics (hitboxes, textures or shader rendering, collision and dialogue chains, etc.) few people have insight into the production side of creating a game and the tools and software combination that game developers use for project management. This kit of tools, software, and development philosophies are a critical early decision in game development that informs the core functionality of the game and the daily ebb and flow of our work pipeline.

So say, like, you’re ready to make a sandwich- and, you’re not a AAA studio… you gotta open up your fridge and work with the ingredients you’ve got. Marshmallow fluff isn’t going to go well with mustard and pickles (even if you, in your heart of hearts, really love marshmallow fluff AND pickles) so you need to find the right combination of ingredients at your disposal.

And check the expiration date on some of those jars.

Or don’t. That’s your date with the porcelain throne. But there will be consequences.

Now that’s not to say there isn’t a place in game development for unconventional combinations. Doritos and peanut butter might be the next big thing. Weird things work sometimes. We don’t know. But what we do know is how to stack the cards in our favor when selecting our tools and techniques.

Much like any fine-tuned machine, at the core of every game is the game engine. This may feel a little game development 101, but for newcomers to making games, game engines are the core of your software development environment. Each one has different strengths and weaknesses. Selecting the engine is a big deal and can reveal a lot about the capabilities and style of gameplay. While the all-encompassing development environment is a combination of tools and practices that aid in the stylistic and project management direction of the game, almost all elements will collate around the game engine. The game engine is like the bread of the game development sandwich. It can be pretty plain and unsatisfying, however it makes compiling all of the ingredients possible. It helps you also determine the scope of your sandwich… er... game.

For Vicious Circle, we opted to use Unreal Engine 4 for it’s robust physics and rendering capabilities (games built on it include fantastic games such as Gears of War 4, Kingdom Hearts 3) and really allows our artists to showcase their visual prowess. We decided to break from using Unity for RWBY: Grimm Eclipse in order to give our engineering and design team more plug-and-play usability with better visual programming. Scaling worlds is also, arguably, easier in Unreal. It also has the advantage of a longer tenure as an industry-standard game engine and has a very polished UI and suite of built-in tools.

The next big decision when roadmapping game development is what project management tools and philosophies will be utilized. This helps provide structure and a predictable communication cadence amongst team members. Many of the project management techniques used in game development are adapted from software programming, which helps keep tasks organized and tracked against various objectives such as implementing features, creating assets, or completing level designs. When thinking of your game dev sandwich, you can liken the production methods to the toothpick. It helps keep things tidy, layers all the components nicely, and can prevent your shredded lettuce from falling out all over onto your lap.

Due to the small team size and fast, flexible iteration needed to develop a game, our team utilizes Agile practices during development. This starts with clear, high-level goals set across larger monthly milestones while letting individuals dig into the specifics of tasks during each two week sprint. The team meets daily for a quick (less than 10 minute) “scrum” to quickly go over what they are working on and any issues that have popped up. This gives everyone on the team insight into features that aren’t working, keeps everyone aligned, and also has the benefit of tapping into expertise of other team members.

The keys to success during game development is to have clear, achievable goals while maintaining the flexibility to adjust and adapt as things evolve during the process. The team also operates under a “get it in-game, quick” mentality.  It’s very easy to discuss an idea and attempt to develop it on paper until it’s perfect, but the reality is you will never really know how it will work until it’s playable and in the game. Getting features in fast and early helps us evaluate and adjust much faster without commiting a lot of time or resources to a concept too early.

Ultimately, the process has to work for the team and project, and during development the process has to be extremely flexible and evolve over time as the phases of development change. Early on during a prototyping phase, things tend to be more fast and loose with vague overall goals. But the further along you get and more solidified the overall features of the game become, the more rigid things get. During full production leading up to release, most major questions should be answered, and at this point things might be moving more into a Waterfall methodology. Clear goals are set, the timelines and features are known, and the team can execute on delivering the content with very few iterations or issues during the process.

The next most important consideration is information, asset, and knowledge-sharing tools. For this, we rely heavily on tools like Perforce for asset-sharing and a version control system. Perforce integrates with UE4, which makes experimenting with assets and UI changes on the fly easy across the entire team. It’s easy to use and a great solution for new and veteran game developers to organize, share, and reference previous iterations of assets and the look/feel of the game.

We also use Slack for real-time text communication, Trello as a visual organization kanban board, and Google Drive to share documents including spreadsheets, forms, and marketing assets. The lesson here? You don’t have to pay an arm and a leg for project management tools at all levels of game development. While there are some phenomenal tools that require licenses and purchases, you can do a lot of your own development and project management with resources that are free and even open-source.

So when making your own sandwich, whether it be a game dev sandwich, a group project, or planning your vacation or… a sandwich... remember: you don’t always have to recreate the wheel. Work with what you’ve got at your disposal and focus on one thing at a time: art, level design, narrative- whatever. Let tools help you save time. And don’t be afraid of adding a little scoop of nutella in there every once in a while… or celery… or egg. But don’t forget: whoever is going to be eating this thing is going to have an opinion about it, and sometimes sticking to a time-honored recipe with a little twist is the way to go.

The Rooster Teeth Games Team