Q: How Do You Eat an Elephantaur?
A: One byte at a time
When you're dealing with the scope of a game like Everstar you need to plan the project as far in advance as possible. To build the intricate combat systems, abilities, characters, and branching story content on budget everyone's first instinct is to try to plan and schedule all the details of a game's design before any work gets done. The reality of development is that nobody perfectly plans a game ahead of time, even people who have been doing it their entire careers. It takes countless iterations and a lot of hands on tuning to make a game fun, and often times you don't know exactly what a game needs until you are knee-deep in building it. A game developer's job is to wrestle with that contradiction.
Having a small team and a clear vision makes planning a bit easier for us: we started with a broad design, and began by building out the riskiest and broadest bits of the game. For Everstar this is the real-time combat and its satellite systems of user interface and networking. Once you know how the game works and how to build content for it, all of a sudden accurate planning is possible.
Being able to control even the non-player characters and having powerful debug tools helps us work out the bugs early on
After we implemented the core combat systems we then spiraled inwards, iterating on what we had done while fleshing out additional features and systems, such as the job system, weapon kit swapping, and exactly how co-op is handled from the player’s point of view. Next we identified how we wanted dialog, cutscenes, and audio to work, then AI and scripting. As we worked on each system we laid down the foundations of everything that had to come ahead so that integrating future work would be as easy as possible.
We're going to nerd out a little bit here, so please bear with us (or skip down a few paragraphs!).
Apart from the core game systems, supporting content creation was our top priority. From our experience we've seen that nothing can sink a game, or enable it's success, better than its tools. We needed to make sure that once we move into production that we would have an assembly line ready for crafting all the characters, locations, conversations, combat scenarios, and cutscenes that are needed for a high quality RPG. That means really awesome tools.
articy:draft 2 is a great tool for writing branching dialogue
Unity3D is our primary toolkit – the Unity engine is built around rapid iteration and was created to be extendable, letting developers and community contributors easily write add ons and plug-ins for specific needs. Unity3D handles most of our scene management and provides a powerful C# based scripting environment. The Mecanim animation system is shaping up to be a really great 3D character animation controller as well. We use proven 3rd-party tools and Unity plug-ins wherever we can. For everything else, we have built our own custom tool suite.
Our 'dungeon-crawler' job upgrade mini-games have an easy-to-use editor
Let's give credit where its due. Here's a list of some of the third-party tools we use in our content production pipelines:
- Nevigo articy:draft 2
- RootMotion Final IK
- Marmoset Skyshop
- Starscene Software Vectrosity
- AndaSoft EasyRoads 3D
- Mixamo Face Plus
- Abdulla Ameen's Animator Timeline Editor (with special thanks to ddionisio/sinfritz for maintaining it)
- Sander van Rossen's Graph winform
We heavily modified the Mate Animator Timeline plugin to use as our cutscene creation tool
Perhaps the greatest benefit in creating our game in the Unity3D environment is access to the C# language. Compared to other languages, or even visual scripting graphs, C# allows our engineers to develop game code quickly and to quality (meaning less bugs) while also being friendly enough for our designers to easily script game logic using it. The Unity3D implementation of C# is quite performant too, so we have no worries of the language choice impacting our framerate.
We also use C# outside Unity to make a suite of helpful tools, like this schedule editor for Everstar's role-playing sections
The Flow of the Game
Of course there is a lot more to the Everstar than just combat. When you play Everstar you will be exploring the world, training your students, finding fantastic friends, scary creatures, and choosing how the story plays out. Behind each of these parts of the game there are whole sets of systems, and tying them all together is the game flow system.
Editing the flow of Everstar: Just another few days at the Academus
The game flow system allows us to make each day in Everstar unique, and be altered by your choices. The flow is made up of a branching set of 'phases', and each phase is made up of a branching set of events. This allows us to keep the game experience fluid and interesting.
"This seems like a very ambitious project..."
Indeed it is, especially for a small team, but we are able to successfully manage that ambition with awesome tools which allow for ultra-rapid iteration. Seriously, if a piece of content takes more than a minute to get into the game and test it out then we immediately put on the brakes and fix up that tool chain - or make a new one. It's this process and nimbleness that let us create the full backbone of Everstar before we even brought it to Kickstarter!
Thanks For Reading!
We have just under 3 weeks left to go with our campaign and we are doing everything we can to pick up the pace and get the word out there. We've seen several kind articles, talked with a few journalists who really get our game, sent out a press release, and even have some interviews en route. This week will be crucial for the Everstar Kickstarter - if we can just get the word out to a wide audience then we'll definitely have a chance! Special thanks to all of you early backers for your encouragement, and for all for your continued support!
Are you a tech geek with questions? We'll be glad to go into all even more gnarly technical details. Just send us a message!
For everyone else, thanks for your patience! We'll get back to the creative fun stuff in the next update :D
The Everstar Team