Blip: MW3 and some updates

MW3 had a fairly tortured creation, but I doubt anyone could’ve noticed that from the final game. Besides a few moments in single player that made me briefly scratch my head – which can probably be attributed to the generally over-the-top nature of a series finale – it felt as tight as MW2 and MW did.

I still feel the first Modern Warfare was the best of them – unlike MW3 it had a clearcut story with actually quite engaging (at times) characters. In MW3 your character dies at the end of basically every level, which doesn’t aid any emotional investment in the story, and consequently it all just blurs into a barrage of military folk barking things over radios about nukes. But maybe that’s the point of games like CoD. Maybe I just love Captain Prices moustache too damn much.

Moving on. I haven’t spoken of the pinball project for a while, so I thought I should. Continue reading

YouTube downloader

YouTube’s been sapping our collective bandwidth for over 5 years now, and it’s always been a great resource, not just for personal interests like music videos and brutal home made weaponry, but also for instructional videos for everything from assembling furniture to complex maths. I’d argue YouTube’s worth is ever-increasing – it’s the webs visual Wikipedia.

Continue reading

Tim Schafer, Master of the Universe

This month has been an odd one all round, but far more so for Tim Schafer.

For the uninitiated, Tim Schafer is a game designer/developer who worked for LucasArts, and made his name in the 90′s by producing (with Ron Gilbert, the creator of the genre) some of the finest adventure games ever made – Monkey Island, Grim Fandango, etc. In 2000 Schafer opened his own studio, Double Fine Productions, and began work on what would become a cult classic – and one of my absolute favourite games – Psychonauts.

More recently, Double Fine has been making smaller XBLA games such as Happy Action Theater, and still doing a bloody good job of them.So why’s he been so busy this month in particular? Continue reading

Lighting is fun [when you cheat]

So after fixing that crazy bug in Box2D that had my code crashing all over the place, I jiggered a few things about and made a push to the last “big” thing I wanted to do: Lighting!

Now, god only knows real-time lighting is pretty damn hard to do, and super-duper expensive when you have no shaders (and ultimately no control over the end product of your code, which is the curse of a convenient multiplatform language), so I’m just cheating and doing canned effects. All I have running right now is lights reflecting on the ball, but it works pretty well I think.

I have a new manager in my code which handles lighting, or more precisely the *reflections*. Actual illumination of light-bulbs is done by just putting another Sprite with the lit-up image over the top and playing with the alpha. I had to make a few more things at the same time to help make it look cool (and for other effects) , my own Timer system because I wanted some custom stuff so I could have the lights fade in/out, a load of changes to my playing field (which I haven’t really tested yet) to accomodate the access needed to game assets, and some nasty scaling code which spends half its life crashing.

The alpha of the reflection varies linearly with distance, and each light also holds two “attenuation” variables – one of which is publicly accessible, one internal – so the alpha of the light source can also have an effect (i.e, alpha = (1 – (objectDistance / MAX_DISTANCE)) * attenuation1 * attenuation2 ). To rotate the Sprite to the correct angle was also a pain, since ActionScript3/NME use the top-left corner as their origin and it can’t be altered! Luckily in Sprite.transform you can manipulate the transformation matrix directly, which makes it all better.

Pretty though, huh? Right now there’s no additional code to check for objects between the target and source, but that shouldn’t be hard (since everything that COULD obscure it is on the table and collidable, I can just skim the list of objects kept by Box2D). Performance seems solid however, no drop in FPS… Although I’ve yet to try it all in motion (and obviously, I have about 2% of my graphics done). Here’s the code I run to update the lights — not hard but I’m sure it’ll be useful to someone (I always have trouble remembering angular stuff). Continue reading

Blip: Box2D works again!

I spent most of my holidays lamenting the fact that I got a bunch of awesome new games to play, and I was without my 360 for almost a week. But every second I wasn’t doing that, I was trying to solve/ignore/have an aneurysm over the damned bug that apparently killed my whole project at the start of December.

After everything I’d done trying to fix it (if you can’t be bothered to read: Clean code from SVN commited two weeks prior displayed the same bug) I couldn’t bring myself to actually look at the code, because god, it made me mad.

Then I remembered seeing something. Some crackpot solution involving changing some variables to inline (i.e, const). Why that should make a blind bit of difference to a crash that the VS debugger said was happening in a totally unrelated section? But it did!

So now it’s all running again, nice and smooth. Onwards and upwards, fellows.

Blip: L.A. never looked so good!

Oh man, my lust for vintage gaming (previously: The Saboteur, Stubbs the Zombie) has just been fed again… I finally got L.A. Noire.

Thou shalt not covet thy neighbours 40′s Noir game and all that, I know, but I have to confess I watched L.A. Noire approach release with some excitement. It just looks gorgeous. I’ve only put in about an hour… and most of that was wandering around checking out the retro set pieces. But I’m so looking forward to playing through it, it’s gonna be great.

Incidently, I got a bunch more games which will be sharing my attention for the next few months: Halo CEA, because I’m a Halo whore, and I love Halo CE but no one ever wants to play it anymore; James Bond Bloodstone, because the Bond games are uninspired, usually pretty generic affairs, but they usually nail the feel of the game and make a decent shooter; and Kane and Lynch… I know this is a pretty… well, not a great game. I’ve played the sequel almost to completion in co-op, and I kinda just wanted to check it out (for £3 who can argue?)

Anyway, until next time!

The Saboteur

What a momentous day. I finally finished Pandemics’ “The Saboteur”! The game centers on an Irish racing driver called Sean who finds himself fighting with the French resistance in Nazi-occupied Paris, with the ultimate goal of defeating a Nazi general named Dierker who cheated him out of a win in a 1940 race, and murdered his friend Jules.

Continue reading

Blip: MW3

Just got MW3, played the first mission. Seems as tight as Call of Duty has been since MW1 (by which I mean, it could basically be a map pack for MW1, which isn’t necessarily a bad thing) and shiny overall.

I doubt I’ll discuss my MW3 experience at any length because… well it’s CoD, it’s everywhere, if you don’t understand CoD yet there’s little hope.

Still, the gaming train rolls on!

Threequel, but we’re not talking Chipmunks

One day, and I don’t make this promise lightly, I’m going to make a post only about good things. It’ll be all flowers, rainbows and ponies.

Unfortunately, I think there’ll be a lot of these bad ones to get through first.

Some good news I suppose: I got Box2D up and running and it was beautiful. I even got all my modifications installed, made a few more tweaks and got my flippers flipping! But then something went really wrong, and I’m not really sure why.

I hadn’t done anything major, I was still cleaning up from the Physaxe => B2D port, deleting unused code mainly. I compiled the code just to check it didn’t crash, and it did. I scratched my head a little, went back and looked over the changes I’d made and checked I hadn’t done something silly, made a few small changes to make the code more explicit (who knows what happens when this is translated to C++, after all) and ran it again: No difference. Continue reading

HaXe NME: The Sequel

Hey all, it’s been a while but I have been working some. I got to rough prototype stage and came to the conclusion the game idea I had was alright, but wasn’t going to be quick, which poses a problem. I really wanted to crank this out before seeking a job so I have something to show, but I’m really not sure I can – diving headfirst in to something you have limited experience of is a bit foolhardy, but I’ve found it’s a good way to learn. Once you make a stupid mistake that costs you time and energy to rectify, you’re unlikely to do it again.

With that said, let’s move to my first mistake! Continue reading