PLA win TIGA Games Contest – Social Games Category

Tom and Robin spent a very enjoyable morning at the TIGA games contest at 8 Northumberland Ave yesterday.  PLA Picked up a win in the social games category with our Mercenary Hire ‘n’ Fire ‘em up,”Squaddies”.  We will now be developing a prototype of the game for Turbulenz’s HTML 5 games platform.  The other winning entry in our category was a fantastic looking game from our friends at Remode, we’ll let them tell you all about that when they’re ready, but it’s gonna be awesome.

Watch this space for news on the development of Squaddies.  But for now, checkout this little guy:

Social Media Week London 2012

Social Media Week is upon people!

PLAers will be attending a number of event over the week to get the lowdown on the later in social media engagement, and throw a few tips of our own into the mix.  If you’re gonna be around East London and want to have a chat about social and viral games or can recommend any particular must-not-miss events, give us a shout.

and don’t forget to #smwldn

A Bit of Game Jam

For those of you who are based in London and fans of the innovative and the interactive, George is organising another Game Jam!  As usual the challenge will be to design and develop a complete video game in 48 hours (ish).

In his own words:

“Hello! This is a weekend of game making. Everyone is welcome, regardless of experience or ability, so long as they’re willing to get their hands dirty. It’ll be fun, and you’ll have made a Thing, guaranteed.

There will be a theme announced at the start of the weekend, and hopefully several small mini-themes lasting a few hours each. Although if you want to do your own thing, that’s totally fine, too.

We’ll be starting at 11am on Saturday, and finishing at 5 on Sunday. There is also a planned trip to the Albert Arms on the Saturday evening, so that’ll be fun.

The gamejam is kindly hosted by LSBU’s Game Cultures course – we’ll be at the Game Cultures Studio, LRC 2 North, (on the corner of Keyworth Street and Borough Road) London South Bank University. The closest tube station is Elephant and Castle, and more indepth directions can be found here: http://www.lsbu.ac.uk/about/maps.shtml

If you have any questions, please get in touch: my email address is vtwentyone@gmail.com , or I’m on twitter as @v21.”

Welcome to 2012

It’s good to be back here in our glass box above Brick Lane, even if the the weather outside is somewhat grey.

There’s a lot of exciting things in the pipeline for 2012 and we’re more than a little excited to get back into the swing of things.  Last year was a big one for anyone with a passion for tech, innovation and especially games.  We’re expecting great things from you 2012, don’t disappoint!

with love,

PLA    X

Merry Christmas All!

Today is the PLA Christmas do!  I thought I’d take this opportunity to wish everyone a happy Christmas before the evening’s inevitable excess gets the better of me.

The 21st also marks the last official full working day before Xmas for us in the glass box above Brick Lane.  As of tomorrow the team begin to drift off to their respective homelands for the festive season for a well deserved break.

We’re very much looking forward to all the projects lining up for the New Year.  To everybody with whom we’ve worked this year and all the great people we’ve met, have a great Christmas!

PLA

Rotating rigidbodies around an arbitrary point.

When we were working on the controls and feel of the speedboat in Super Springbreak Speedboat Hero SD one thing we identified was that it was rotating … wrong. It felt a bit stiff and unnatural, and not like a boat on water at all.

With a real speedboat, the center of mass isn’t in the center of the boat – it’s towards the rear. So naturally we tried setting the center of mass to the rear of the boat. This is trivially easy to do in Unity:

rigidbody.centerOfMass = Vector3 (0, -2, 0);

And we played through again – now when you whomped into the banks or the poor hapless spectators the boat moved like it should. But when being steered, it still felt like a model being manipulated by controls, not a boat. So we needed to rotate it around this center of mass when steering too.

The easiest way to achieve this would be to open up the modelling tool (Maya, 3ds Max, Blender) and change the pivot point, or origin of the model. But this only lets us change the pivot point early in the process – it’s handy to be able to change it on the fly. This lets us do things like changing the pivot point as a boost effect comes in. And it also lets us change the pivot point on the fly while playing the game, in order to get a very quick sense for the feel of the handling. Thank you once again, Unity’s in-game variable twiddling!

So we did it on the fly, by transforming our single torque out into a couple. This is done by splitting the torque, n, out into two forces (of n/2) at positions 1 unit away from the pivot point. These two will sum to zero force, but n torque. Here’s this in Unity code:

//we could rigidbody.AddRelativeTorque(torque)
//but this way lets us pick the pivot point.
Vector3 pivotPoint = Vector3 (0, -2, 0);

rigidbody.AddForceAtPosition(transform.TransformDirection(torque / 2) , transform.TransformPoint(pivotPoint + Vector3.forward));
rigidbody.AddForceAtPosition(transform.TransformDirection(-torque / 2 ) , transform.TransformPoint(pivotPoint - Vector3.forward));

Since Rigidbody.AddForceAtPosition takes it’s arguments in world space, we first have to convert everything into world space – that’s what Transform.TransformDirection is doing.

Note that we’re cheating a bit as we know what plane the torque will be in – we know that the turns will be around the up axis as we’re turning a speedboat going forward. If you wish to provide torque arbitrarily, you’ll have to convert those Vector3.forwards into something perpendicular to the direction of rotation. It’s also worth noting that we’re relying on these to be exactly 1 unit in magnitude, so normalize them!

It’s also worth pointing out that if you just want to do this for a normal rotation, and aren’t using rigidbodies, then your life is a lot easier, as you can just use Transform.RotateAround

transform.RotateAround (Vector3.zero, Vector3.up, 20 * Time.deltaTime);