Wednesday, September 3, 2014

Dev - Easy Buoyancy

A quick and easy way to make smooth buoyancy of an object. Just a small ICE tree and a constraint with low blend weights.

The mesh to float is constrained to the Null object, which has the ICE constraint attached - constraining to the water surface.


And here's a test render for visual candy.


Friday, April 25, 2014

Dev - Controlling the Beast of Burden

Controlling the Beast

Early in development, the game was controlled almost entirely using the mouse.  As the design changed, and gamepad input started being implemented, the limitations of Unity's input system became very apparent.  After a quick look through the available replacements available, we decided that none of them quite met our requirements and started developing our own.  Here's how it works.

Controller Types

Multiple input devices can be configured and enabled/disabled independently.  Each input device definition consists of a Device Name, Device Type and an Enabled flag.  For instance, for the XBox360 controller we have an input with a name of XBOX and a type of JOYSTICK.  




  
Game Inputs

Next are game inputs.  These are actions that you want to perform, such as "Orbit", "Select Build Spot", etc.  Each game input takes one or more Input Devices (above) and an Input Type (Button or Axis).  "Orbit", for instance, is of type Axis and has XBOX axis 6 or Keyboard Left/Right arrow.




Contexts

One of the most important features of the input system is the concept of Contexts.  Since the same button or axis can be used for multiple different actions, depending on the context in which it is pressed, we need a way to specify when an action can occur.  If you're zoomed out from the giant and press left, we want it to Orbit.  When in build mode, left should select the previous tower/plot.  We can create different contexts and assign multiple Game Inputs to each context.  An example of a context could be "Choose Plot Mode", which might have "Select Plot", "Cancel Build", and "Confirm Plot Selection" as valid inputs for that context.



Callback Driven

Instead of polling the input system every frame to see if a Game Input was pressed, we register callback functions to be called whenever the desired action takes place.

The Inspector

The input system itself was finished pretty quickly, but the inspector took a bit longer.  There are several Serializable classes that reference each other, but the serialization doesn't handle references too well.  There's the ScriptableObject base class that is supposed to be able to deal with this type of setup, but I didn't have much luck getting it to work properly.  So I ended up rolling my own.  Since everything has a unique name, I serialized everything myself, storing the name of the referenced class as well as a direct pointer, using MsgPack.  This loses the references but keeps the names, then on deserialization I rebuild the references based on the names.  I'm not entirely happy with it, and wouldn't want to make it available for general consumption, but it works well enough for the two of us to use it as we understand its quirks.

Written by Matthew Bowie

Wednesday, March 12, 2014

Dev - Burden reveal and Community page

Sooo busy!

Today we revealed the Burden Community page and that Burden will be coming to Steam early Access soon!

Since the last post here a LOT has changed with the game - art, story, mechanics. At the time when we decided to make such big changes... it was scary. But we're so glad we did now. The game is better for it even though it has pushed the released date back a bit.

Anywho! can check out a trailer and more info here: http://community.surpriseattackgames.com/burden ,  will be updated weekly (I promise!).

Edit: Promise broken!

Tuesday, November 26, 2013

Dev: Burden New screenie

A few levels coming together now. Public Alpha not too far away and the mechanics are working beautifully.


Editor screen grab - Burden - Outside the Great Tunnels
Editor screen grab - Burden - entering the Slipping Plains

Monday, October 21, 2013

Dev: Burden submitted to IGF

Burden has been submitted into next year's Independent Games Festival in San Francisco.
Not expecting much from it in its current state only because the build is a very small slice of the complete game, we'll keep updating the build with more and more content - Already have newer builds to add - hopefully the judges will leave our game until the end and by that time it will be closer to completion!

A new trailer will be in the works within the coming months. A HUGE difference from the previous Pre-Alpha footage.

The game is truly taking shape with a lot of the behind the scenes mechanics being refined and in some cases completely rebuilt. Feels and plays smooth, enough to keep the heart racing and prevent the eyes from blinking!


Wednesday, October 16, 2013

Dev: New team member on Burden

I want to welcome Matthew Bowie to the Burden team. He's been on the project for just a couple of weeks now as programmer, has made a great impact on its development!
Gets me all excited, it really does.
Burden will be participating in the next Independent Games Festival and we have our fingers crossed for a public alpha within the coming months.
Until then I'll keep supplying new screenshots whenever possible.


Wednesday, September 25, 2013

Dev: Burden Sighting Foreseen

Anyone going to Melbourne's Freeplay this weekend - 28-29th Sep? Burden will be there.
Anyone going to the EB Expo in Sydney 4-6 Oct? Burden will be there too.

It will be displayed at the Surprise Attack table/booth.

I hope you get a chance to see/play it!