Melbourne International Games Week

Down here in Melbourne we’re gearing up for International Games Week (MIGW)! Starting this weekend, there’s a number of game developer conferences, special events and expo’s, including Game Connect Asia Pacific (GCAP) and PAX Australia. If you’re attending, don’t forget to pace yourself, because there is a lot to see and do over the 10 days or so!

The Australian Game Developer Awards will be the climax of the GCAP conference and we’re very happy that Defect has been nominated for the Innovation award! Sam, one of our programmers, has his new game Resynth nominated for Design and Audio and got a special mention for Innovation.

Banner art for the PAX booth

Banner art for the PAX booth

We’ll be showing off Defect in the Indie Pavilion at PAX once again, so drop by and say hello if you are attending. PAX itself is bigger and better than ever before, with almost all of the exhibition and conference centre being used up. Three day entry is sold out, and Saturday is getting low, so grab your tickets now!


Three Phase out!

First Month Update

Defect has been out of Early Access for about a month, so now is good time to send out an update. Defect has had some good coverage in the media. Game Grin reviewed Defect while it was in Early Access and again after release:

“Defect is a thoroughly enjoyable game that hasn’t changed all that much since I last played it. Designing a ship knowing that you’ll need to kill it later introduces an interesting conundrum to an excellently executed spacecraft toolkit.” 8/10 http://www.gamegrin.com/reviews/defect-review/

Good Game Spawn Point, which is the premier tv show about games for all ages in our home country Australia, loved the defecting idea, how easy it is to build ships and the challenging gameplay:

“I thought the whole defecting thing was clever idea. It forces you to think carefully about how you design your ship.”

Since release we’ve been working on updates. You can now fight against anyone’s ships, not just friends’, and we’ve been tweaking the difficulty of some of the earlier missions. Chris, our animator, has been working on getting Zeke and everyone else to animate while their speech bubbles are visible. Here’s a test animation:

Sam, one of our programmers, recently made a Mario/No Man’s Sky mashup called No Mario’s Sky for a 72 hour game jam with Ben and Alex from Moonman (http://moonman.io/), and Max, the programmer behind games such as King Arthur's Gold and Trench Run. It’s free and a lot of fun, so check it out! https://asmb.itch.io/no-marios-sky

Three Phase out!

Out of Early Access!

v1.0 is out! You can play through the entire 50 mission campaign, unlocking over 180 ship pieces and you can now fight your friends’ ship designs in three different challenge modes. All this in six glorious languages: English, French, Italian, German, Spanish and Russian!

And we've got a shiny new trailer and screenshots over on the Steam page. Check them out: http://store.steampowered.com/app/352370

Three Phase out!

Behaviour Trees for Missions and AI

Hi, I’m Sam, one of the programmers on Defect! I thought I’d write a bit about the behaviour tree technology that we use to control missions and AI in Defect.

 

A Question of Control

Drew and Chris build most of the missions in Defect, and depending on a mission’s specifics, they need different things to happen. We need a way to control the AI for NPC ships, and a way to script missions and other events. We could do this completely in code based on specifications from Drew and Chris, but that puts a large burden on the programmers, and in a small team with only one full-time programmer and one part-time programmer, it’s simply not sustainable.

Ideally the game designers should be able create missions themselves with some kind of tool that lets them do things like spawn in ships and other objects, control the camera, and wait for specific in-game events to occur. They should also be able to define ship behaviours, like “fly to this point” or “shoot this ship”. It would be great if they could create bespoke behaviours for specific missions, but also create sets of behaviors for common scenarios that can be used between multiple missions.

There are a few ways to solve this problem. One method is to use finite state machines. FSMs are great for simple AI, but they can quickly explode in complexity with hundreds of states and conditions for transitioning between states. It can be very difficult to debug that kind of spaghetti nightmare! Unreal’s Blueprints system is an example of an FSM-based system. Here’s one I googled which looks pretty complex to me:

I have no idea what’s going on in there!

I have no idea what’s going on in there!

Behaviour trees are an alternative which are a little easier to read and debug. They can still become quite large and complex, but this can be mitigated in some ways, and because they are tree structures you can collapse entire sections easily.

We implemented our own behaviour tree system and editor. This is what our editor looks like:

On the left is the behaviour tree, and on the right are the properties for the selected node.

 

Behaviour Tree Basics

Behaviour trees are a hierarchical node structure where each game tick the tree is evaluated from the top to the bottom. The nodes control decision making, and leaf nodes perform actions. In Defect we have many node types that can be combined to provide different behaviours. When a node is run it returns a condition to its parent, such as running (node is still doing something), success (node has finished successfully), or failed (node has finished and failed).

Although there are many specific nodes, all nodes fall into only a handful of basic categories: composite nodes; decorator nodes; and leaf nodes.

Composite nodes - a composite node can have any number of child nodes. The child nodes are processed in some way depending on the type of composite node. For example, the children could be processed in parallel, in sequence, or based on some priority.

Decorator nodes - a decorator node has only one child node. It transforms the result of the child node. For example, a “not” decorator node runs its child and inverts whatever result the child returns.

Leaf nodes - a leaf node can not have any children. It is the node that performs some specific action. For example, in the above screenshot the selected node is called “Display multi-alert”. This is a leaf node that displays a pop-up in the game with some text, a head sprite, and sounds.

These nodes are all combined to control AI or missions.

 

An Example

Let’s look at a simple example tree:

This behaviour tree implements a skippable intro sequence for the start of the game. How does this work?

Here’s a screenshot that shows just the direct children of the root node:

At the root we have a “Sequence” composite node. This node runs all child nodes until one node fails or all nodes are executed. Each node is executed fully, in order:

  1. Make the screen black.

  2. Run a “Priority” composite sub-tree (which we’ll look at further below).

  3. Fade the screen out to black.

  4. Hide some text.

  5. Re-enable the player’s HUD.

Remember, each node is executed fully, before the behaviour tree runtime moves onto the next node.

The priority sub-tree looks like this:

The “Priority” composite node runs each child node in order and stops on the first child that isn’t failing. If a higher priority child starts running, the currently running child is interrupted. “Priority” has two children: a “Skip” sequence and another sequence, “Intro Sequence”.

The “Skip” sequence has one child, “Skip cutscene” which is a leaf node that checks if the cutscene should be skipped. It returns a failure if none of the skip keys have been pressed. This failure bubbles up to the “Priority” composite, which then runs the next node, “Intro Sequence”.

The “Intro sequence” composite performs these actions:

  1. Focus the camera on a specific location in the level.

  2. Disable the player’s HUD.

  3. Wait for some specified amount of time.

  4. Fade the screen in from black.

  5. Wait for some specified amount of time.

  6. Display some on-screen cutscene text.

  7. Wait for some specified amount of time.

 

Issues

There are two main downsides to our behaviour tree implementation:

  1. We have a lot of nodes, which can make it difficult to find what you want.

  2. The performance is sometimes not that great.

Point (1) we mitigate with tools to allow the designers to more easily search for the nodes that they want to use. We could also do some refactoring to remove duplication, and audit the existing nodes and perhaps remove unused nodes and roll rarely used nodes’ functionality into other nodes.

The performance can be a problem when there are deep tree hierarchies, because the tree is processed from top to bottom every frame, and it is a deeply virtual class hierarchy. There are some optimisations that we could try. We could keep track of the currently running nodes and tick them directly, so we don’t have to iterate over the entire tree. The performance is adequate on PC/Mac at the moment, and it really only shows up as a problem on phone/tablet, so we probably won’t look into this just yet.

 

Summary

As you can see the behaviour trees can let you create quite complex sets of actions and conditions. They can be read and debugged in a natural way by scanning down the tree in the editor. We also have a feature where the tree can be displayed at runtime, and the currently running nodes will render in different colours, allowing us to debug the trees as they are running.

Because the trees can grow large, we also have a special node called an “embedded tree” that lets us reference an external behaviour tree. The external tree is inserted at the location of the embedded tree. This lets us keep the tree tidy and easier to read and maintain.

Overall the behaviour tree system has worked out well for us. It’s simple for the programmers to expose new actions to the tree, and the designers have a huge amount of flexibility.

 

Backers are in!

All your hard work and sacrifice has paid off, backers. Everybody in Ambiguous Wind class and above is now in the credits of a mutiny based spaceship construction game! People will have to take you seriously!

There are other things in a game besides credits though, if you can believe it. So we’ve added a lot of those too. The biggest addition is Challenge Mode. You can test out your own ship designs in 1 vs 1 or a prototype version of horde mode. Or you can play the entire campaign with no scrap costs for your ship designs. It’s a sandbox for experimentation, and we’re working on expanding it soon so that you can save your ships to the cloud and share your designs with friends.

We’ve got 11 new missions completed, including Grey Core Grand Prix, Rail Road (pictured here), Fat Man and Fat Lady (which I just realised was a pretty clever/unintentional joke/reference from Independence Day).

There are also 22 new ship pieces. You can now choose from Flamethrowers, Fighter Decks and even potentially planet-smashing super lasers.

Difficulty levels are now in too. Hard mode is for you serious mutineers, who have seen too much in your years of driving your enemies before you. Easy mode is for our parents.

And if you had a chance to visit GDC in San Francisco this year, you might have bumped into our programming team. Thanks to the support of Film Victoria, Paul and Sam were wandering around and saying hi to people. If they didn’t say hi to you, we apologize. They’re bad people.

Three Phase out!

Unity Plugins we use in Defect

Speed of development is one of the main advantages of using Unity. One of the most important contributors to that is the extensive list of plugins available on its Asset Store. Don't forget to check their user reviews and what version of Unity they are tested on before jumping in. Here's a few that we are already using for Defect.

FMOD Studio

We use FMOD Studio for our dynamic music system and sound effects. It gives our composer/sound designer lots of control and is fairly easy to integrate. We’ve blogged about it here: The Music System 15 years in the making.

2D Toolkit and Multiplatform Toolkit

We use 2D Toolkit's sprite system and Multiplatform Toolkit's platform specific positioning and scaling for our UI. Both of these plugins aren't platform specific, and come with code, so they're easily extensible.

4:3 vs 16:10 Shipyard

Fast Switch Platform

Switching between platforms in Unity means you have to wait for Unity to re-export all your assets in the appropriate format for the new platform. Fast Switch Platform caches this exported data so that only changed assets need to be exported. This a massive speed boost and a lot simpler and cheaper than some sort of server based solution.

Tools we use for Planning and Project Management

We did one of these blog posts a while back, but we’ve changed some of the tools we use, so I thought it was about time for a new one.

Slack

We used to use Skype for team communication, but the team members on Windows were always complaining about the Skype app. A few of us had already tried Slack for a number of events and contract work, so we thought we’d give it a go. It’s good! No more lost messages and a decent sized searchable history for free! There are also plugins available for lots of other tools.

Google Hangout

We used to use Skype for calls, but with Google Hangout’s Slack integration, we’re moving toward it. You can even invite people/channels from within Slack. Nifty.

Google Drive

We use Google Drive as a Microsoft Office replacement. You can create a document, then share it and even have multiple people edit it at the same time. This is very useful for meeting minutes, as multiple people can contribute while someone else is talking. We also use Google Drive for project planning and financial stuff.

Dropbox

To share stuff that isn’t directly part of the game, we use Dropbox. It’s full of concept images, screenshots and trailers. It syncs automatically and runs on everything. Perfect for grabbing a screenshot for social media on the weekend when you don’t necessarily have a PC handy.

Randomly selected screenshot from Dropbox

Randomly selected screenshot from Dropbox

Perforce and Amazon’s EC2

To share and backup the Unity project files of Defect, we use a Perforce server running on Amazon's EC2. Perforce is a bit of a game dev industry standard for bigger teams, so we knew it would be rock solid for us. To minimise cost and maximise performance (i.e. speed and uptime), we decide to use Amazon's EC2. They have a free tier which lasts for a year. Because we only need a few users, Perforce is also free!

Trello

We started using the excellent online to-do list collaboration tool Trello at the beginning of Defect, as a simple Google Drive to-do document wasn't cutting it any more. It's a good compromise between full on task tracking software and a simple text document, for a small team that uses a very iterative process. We also use it for our public Defect Roadmap.

Space Christmas Update

Future Santa has just fired a giant update into your stocking via his orbital Christmas railgun. Sounds painful, I know, but future Santa has to compete with Amazon delivery drones so he’s just staying one step ahead of the game.

Everybody can now check out the latest Steam build, which contains not one...not two...but forty new ship components! A giant pile of Super class ship components are ready and waiting under the tree. You just need to play through the hardest mission in the game to get at them. Space Christmas is pretty harsh, sorry.

Get your very own Zeke T-shirt today!

Get your very own Zeke T-shirt today!

We’ve added new levels, interface improvements, a whole new title screen, tractor beams that actually work, Super Class cores and even nuclear weapons (for when you really need the best Christmas lights on your street). Unlocking all that should keep you busy for the next couple of weeks while we head back to Earth for the holidays. You could even give your loved ones the greatest gift of all….A Steam Early Access code for Defect. Or a Zeke T-shirt. Future Santa will appreciate you doing his work for him. 

Merry Christmas! Three Phase out!

Early Access and PAX Australia Wrap-up

Good news everyone! We’re working towards a Steam Early Access release on December 1! Initial release will include 30 missions, where you can unlock all the Standard sized ship components, and will be available for PC and Mac.

We had a great time at PAX Australia and it was nice meeting a bunch of Defect fans. It was the climax of Melbourne International Games Week, which started with the Unite Melbourne on Monday. We quite liked Unite, not just because it was full of the cool guests, but because Defect won the award for Overall Excellence! Thank you Unite!

Sam, Paul, Drew and Chris win with Defect at Unite Melbourne.

Sam, Paul, Drew and Chris win with Defect at Unite Melbourne.

We also got to talk to a bunch of fellow Australian developers and see what they’re working on. There’s so much great stuff out there that you should definitely take a look at. Party Golf and Fighting Fantasy: The Warlock Of Firetop Mountain are running Kickstarter campaigns right now. Rivalry (one of our favourite games at PAX) is going through Greenlight right now and needs your vote.

But we’re back to work now! We’ve been adding new levels, new art and new components. We’ve been polishing our existing levels based on feedback we’ve got from watching people play and from our Kickstarter backers. In fact, we’ve already implemented some tweaks and successfully tested them out at the local monthly game dev meetup. We’ve been balancing the way the Scrap economy works, so that you can actually afford to build the ships you want. We’ve also added some new ship components.

Some of the ship components we’ve added recently.

Some of the ship components we’ve added recently.

Blood Hawk uses the 2255 Repeller to push a defence platform into position.

Blood Hawk uses the 2255 Repeller to push a defence platform into position.

Next, we’re polishing and fixing bugs in the lead up to Early Access. More levels will be finalised and a few more ship pieces will be added. We’ll be taking screenshots and getting the Steam page ready for lots of fresh faces. Be sure to sign up to our Newsletter and follow us on Facebook/Twitter so you'll be the first to know when it's up!

Three Phase out!

Defect at PAX Australia

Defect will be at PAX Australia again this year! Head on over to the PAX Australia website for all the details of Australia's biggest gaming event, which runs October 30th to November 1st in Melbourne.

Look out for our booth in the PAX Rising section of the expo hall.

Look out for our booth in the PAX Rising section of the expo hall.

Come play the game and give us your feedback in person! There's lots of new ship components, objectives and missions. You'll also unlock one real life ship component with very bad stats (the TriStage PAX Badge).

Three Phase out!

A Week on Greenlight

Steam Greenlight seems like a daunting process. If you’re self publishing and don’t know someone at Valve, it’s your only way to get your game on the biggest online store for PC games. Unfortunately, some games take a long time to get Greenlit, so you somehow need to convince people to vote ‘Yes’ for your game (‘No’ votes don’t seem to matter) when you may only have a barely working prototype. Luckily for us, Defect was in a pretty good state, as we had to polish a playable demo for PAX Australia in October 2014.

We started working on Defect’s Steam Greenlight page in early 2015 and by the 6th February, we were pretty happy with it. We created a new trailer, took some new screenshots and prepared a newsletter and social media posts to send out to all Defect’s existing fans. The final spelling/grammar checks were done by my wife, who is an avid reader and good at that sort of thing, we hit the publish button at 5:30pm.

The ‘Yes’ votes and comments were coming in but by day 5 they were slowing down a bit, as shown in the graph below. We emailed press, made a second push on social media and did a Steam Greenlight announcement/update. It worked! On the morning of Saturday 14th Feb we were excited to find that Defect had been Greenlit!

So that was it. In conclusion, I think our success relied on the pitch being good, then the momentum of ‘Yes’ votes from our wonderful fans got us over the line. It was all over before we knew it!

- Paul (@pbaker05)

The Advantages of Working out of an Office

Having a laptop as your main work PC is pretty handy. Once you tether it to your phone, you can work pretty much anywhere, and I have. I’ve worked at various team member’s houses, in cafes, pubs, libraries, hospitals and hotels all over Australia.

But when it comes down to it, working in an office with a bunch of other devs is pretty good.

Pros

  • Easier to focus on work for a solid 8 hours a day, then go home and forget about it (helps work-life balance).
  • Forces you to get out of the house everyday.
  • Makes collaboration and sharing test devices easier.
  • Being close to other devs (hiring for short contracts, getting help/advice, playtesting, socialising, motivation, contacts).
  • Regular visits from platform holders, tool makers, media, game industry celebs.
  • More professional if you need to meet clients.
  • Access to more test hardware.
  • Faster internet.
  • Awesome coffee machine.

Cons

  • Cost of leasing the office space.
  • Cost and time involved in traveling.

We moved into The Arcade eight months ago in January 2015 and it has been great! For us, ease of collaboration, sharing test devices and being close to other devs have been the biggest wins. Working out of an office has definitely improved our lives and the game.

- Paul (@pbaker05)

The Middle Frontier

We hacked through a LOT of tasks this month. Stephan has completely overhauled the sound, so ship destruction sounds are awesome now. Every missile has its own unique explosion effect, and all of them get really muted and atmospheric as you zoom the camera further out. Big battles sound much more epic and it’s very satisfying to hear dozens of tiny enemies getting disintegrated around you (just like in real life).

Based on a bunch of comments we had on the demo, we’ve remade the combat user interface to suit playing on PCs. Everything is much smaller and more elegant now. Turret control has been modified to just follow where you move the mouse and firing is now on the left mouse button. Also, the health circle around your ship actually works now! Amazing!

The new minimal interface.

The new minimal interface.

We’ve added a score screen at the end of each level that tallies up your achievements, bonuses, how much scrap you’ve collected, and how close you are to unlocking the next ship component. Which leads us to the fact that scrap is worth something now. You spend scrap to build your new ship, and you earn scrap by either picking it up in combat, or earning it for completing objectives. 

There has been some thought put into communicating objectives and ship capabilities better. The mission map screen has been modified to give you a better idea of what the goals of your current mission will be. The stats bar at the bottom of the shipyard screen now gives you useful info on the top speed and turning ability of your ship, and a lot of the more mysterious shipyard buttons now have useful tooltips.

Scrap costs, overall ship stats and some brand new components.

Scrap costs, overall ship stats and some brand new components.

More new components have gone into the shipyard, ranging from the Repeller Beam, which knocks away everything in front of you, to the Really Normal Wing, which does almost nothing. Heatsinks are now working correctly too. They act like a second core, providing your ship with loads of extra power, but being extremely vulnerable and explosive.

The art side of the art book is almost finished. We just have to think up all the hints and tips we want to write into it now. Hopefully we’ll have a test version of that to show people when we’re showing the game at PAX Australia in October. Did I mention that we’ll be at PAX Australia in October? Because we will. Come and see us if you’re wandering past Australia.

Three Phase out!

Back to the game

The dust has settled and we’re finally back into building Defect. We’re gathering together all the feedback we got from the demo and feeding it straight into our plan to get to beta. We’ve also been working on new art and new ship components, which we’ve been previewing on Facebook and Twitter. Eight new (very useful) components have been added in the last couple of weeks and there are concepts for a lot more. So even if you’ve tried out every piece in the demo, there will be a lot of new surprises for you when we get to the beta.

Top secret. Do not look at this image.

Top secret. Do not look at this image.

Drew has also been working on the Kickstarter backer rewards. The art book is underway, and is up to 70 pages at the moment. It will be full of tips, spoilers for pieces you can unlock later in the game, explanations of some of the more mysterious game mechanics, and even keyboard shortcuts that we can’t figure out how to reveal in any other way. We’ll be sending out our backer survey very soon so that we can gather up all the info we need to send out the rewards.

Next thing on our schedule is...making your ship list sort by date.

Live Stream in the Last Hours of the Kickstarter!

We’re really into the final stretch now of the Kickstarter, and it’s starting to look like this whole thing might be slightly possible. We just need as much help as we can get from all of our beloved fans. If you haven't already done so, please back the project on Kickstarter and recruit all your friends (it’s not a cult, I swear). Or increase your pledge to get even better rewards and ascend to a higher happiness level (ok, maybe it’s a bit of a cult).

Flying Fang moments before he ascended to a higher happiness level.

Flying Fang moments before he ascended to a higher happiness level.

Our First Ever Twitch Stream!

We want to show everybody what they can expect from the game, so we’ll be streaming ourselves playing it on Twitch. You’ll be able to take a look at some of those locked off levels and ship components, and ask the team anything you want. Live! We’ll be streaming from Tuesday 6pm PDT (9pm EDT, Wed 1am GMT, Wed 11am AEST) on Drew’s Twitch channel. We've even created a Facebook event so you don't forget!

Three Phase out!

Kickstarter Backer Art Manual

This week we’ve been working on the art book that you can get at the Power Pod tier of our Kickstarter. It will include the initial concepts for every piece, hints and tips for how to play the game and maybe even our list of secret keyboard shortcuts (when we eventually add them all). It’s basically an old school manual for the game, with a lot of art to liven it up and it's only available to our Kickstarter backers.

Pledge at the Power Pod Class ($AU20) or above and get the pdf version. Pledge at the Death Horror Class ($AU200) or above and get the luxurious hardcover version signed on the inside cover with a handwritten, highly complimentary message about how attractive you are!

We’ll be at PAX AUS!

You should all take the quick bus ride to Australia and come and see us in the Indie Pavilion in October. I figure you’ll all be pretty expert at the game by that point, so we can let you show Defect to the crowds while we take a rest and get lunch. 

Giant Bug!

One of you made this monstrosity while you were playing the demo. This shouldn’t be possible in the demo version, but someone did it anyway and it’s pretty awesome. Oh, and we’ve fixed the bug that made this possible, in case you’re wondering. Sorry :)

Thank you again to all our backers, but we’ve still got a long way to go in the final week and we really need your support. Get your friends on board and help us get Defect over the line!

Three Phase out!

Kickstarter Update: Super and Hyper Piece Introduction

Here's another Kickstarter catchup. Today we posted a new video that shows what you’ll soon have access to if you pledge at the Ambiguous Wind tier or above on our Kickstarter. Super and hyper-sized ship pieces! The demo has most of the standard pieces unlocked for you to play with, but only the alpha will have the bigger cores, moon-sized hull, massive engines, nukes, and fighter decks. That’s right, you’ll be able to make ships that launch your own ships!

Rock, Paper, Shotgun did a nice write up Defect a few day ago. We need more of these!
If you haven’t had a chance to take the demo for a spin, checkout EnterElysium’s Let’s Look.

And finally, thank you backers for your support and help spreading the word. We’ve only got a week to go, so please post a link to the Kickstarter and the demo in any communities you hang out in and on social media!