Monday, October 01, 2007
That's how long it took me to play through Resident Evil 4, wii version. I also got some extra milage from the "second" mission, and the other bits and bobs they give you..
It's one of the best games I've ever played. When I first started playing it, I remember thinking how much the wii graphics suck in comparison to the 360 ( Gears of War has spoilt me ).
Sticking with it, you don't even notice it. In fact the fire and water effects are just stunning, and the whole atmosphere just drags you into that world.

In terms of levels, the game just keeps giving and giving. It's vast, and you never feel like you're just walking down the same corridor. Just when you think you've seen everything the game could possibly have, there's more. And more again.

One of the most stunning games I've ever enjoyed, just brilliant.

Wednesday, like I imagine one or two other people, I picked up Halo3. It's everything you'd imagine it to be. It's nice and familiar, but a million times larger and wider in terms of visuals and depth. So I had a couple of days hitting it hard after closing Flash. Picture how much it sucked that by Saturday, I've finished it.
Like sex, it's a lot of wow, a lot of enjoyment and... oh, it's finished. At least with sex it's my fault it's over before it needs to be.

It felt like the campaign mode is just there to supplement the multiplayer modes, rather than the other way around. That they've given you these huge ( And perfectly formed ) vistas to mess around with, a handful of new toys, and then sold it all a bit short.
I guess it just shows how much effort a game of this scale really is. I don't think Bungie have been lazy, I just think that if they tried to double the length of the game ( I'm sure I did it in 10/12 hours. Now I'm not the most anal gamer, I didn't go exploring every where, I just wanted to get in there and beat the game. Finding every hidden area has never appealed to me. So yes, perhaps if I'd gone exploring I could quite easily add a couple of hours to that ), then they'd still be developing it in 3 years times.

Maybe it's a symptom of the huge graphical advances that have come with the current generation of boxes, that we all expect every image to look like a photo of some alien world, that to actually finish developing a game the number of levels have to be cut down to balance it all out.
I mean the Halo3 world is really big, it's just that I didn't think I'd tear through it quite so quickly.

If nothing else, it's made me realise I do need to get a gold membership to Xbox Live so I can get a lot more milage out of that 40 quid I've spent.

Oh, and at the end, don't skip the credits, there's a little extra at the end.

Squize.

Monday, October 01, 2007 8:32:05 AM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Tuesday, September 25, 2007
Just a quick well done to team preloaded for scooping best game at the FF awards.

There's nothing left from my preloaded days to pick anything up now, so that's my award cupboard gathering dust for the foreseeable future.

Squize.

Tuesday, September 25, 2007 4:43:02 PM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, September 03, 2007
Written a game, or just planning to write the next HeliAttack ? Either way, no matter how great your love of game development is, it's still nice to have something to pay the bills with.

Our mate Adam ( Author of the sexy Asteroids Revenge III ) has put together a great resource for all things sponsorship. If you're an old hand, or brand new to the whole world of selling your Flash ass for cash, it's well worth a read.

In fact, do it now, by clicking here.

Squize.

Monday, September 03, 2007 9:13:57 PM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Saturday, August 18, 2007
So after Squize was boring us with that grid, I thought it's time to give AS3 a go (finally).

While diving into the "new" AS version I also tried a new editor, I use(d) se|py for AS2, but felt the need to try something new editor wise, too.

I had a look at SharpStyle Neutron, a coding plugin for Visual Studio 2005 (imho one of the best coding environments), but as it's AS2 only (the current beta is able to handle AS3 it seems) so while it's great for AS2 it didn't help me on my current task ...

Another Editor I wanted to give a go was FlashDevelop. I instantly fell in love with the current 3.0.0 beta build. It feels like Visual Studio, it's fast and has some niffty, helpfull features.

So I did what I always do in a new language, I coded a 3d formular plotter, the idea reaches back to the good old c64 days, though, it took a whole night to render a way smaler version.

Anyway this is what I came up with during my first 2 hours of AS3:
plotter.swf (1,31 KB)

It's not that impressive, but it's fast (just used an onEnterFrame to show the plotting).

<olli/>
Saturday, August 18, 2007 2:15:47 AM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Monday, August 13, 2007
Well I carried on working on the GWars effect last night, and discovered quite a few things.

The example from yesterday used a raster line plotter, but I tried it with the Flash drawing API ( Which uses Flash's vector plotter ) and it crapped all over it in terms of speed. I was surprised but I guess it's 'cause the dAPI works on a "hardware" level.

Next up was to look at Geometry Wars itself, where I realised that the grid was made up of a load of dots rather than lines. Back to the code, I used the dashTo prototype ( An example of that can be seen here ) and got a nasty drop in speed. No shock there really. Then it dawned on me that the raster line drawer could be kinda handy here, after all it's just a loop and some setPixels, if we're skipping pixels to make a dotted line then it'll reduce the length of the loop.

Sweet, ran a lot quicker.

Next up was a bit of a lucky one. I had a bitmap which I copied the grid to every couple of frames and ran a ColorMatrixFilter on it to fade it down ( By reducing the alpha every frame ), and where I was putting a surround on the screen and positioning things I screwed up the alignment of this bitmap, so I could see the lines slightly offset. It didn't take long to align it so it was offset by half a grid position on the x/y, hey presto, twice as many lines and for no more hit than it was running at anyway.

Time to drop a player sprite in there ( My very first as3 one, I imagine there will be more ). I really liked the control system in neon2, where holding ctrl down stopped the player ship so you could just rotate and shoot, and as3 just gave it to me for free.
When using a MouseEvent.MOUSE_DOWN event listener, the event which is called has an arg passed to it. This arg has all types of interesting goodies in it, one of which is a boolean ctrlKey flag. So adding the keyboard control I wanted took about 3 lines, and from a cpu point of view it's a freebie ( Ok, at the hardware level Flash is scanning the key, but it does anyway on a MOUSE_DOWN event so it's not like I'm polling the keys seperately ).

Want to see it ? Yeah you do.

GWars_v2.swf (37.69 KB)

Squize.
Monday, August 13, 2007 11:28:02 AM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Sunday, August 12, 2007
Inspired by this thread at FK games I decided a nice little break from mansion would be in order and started playing with a geometry wars style grid.

It's still not a 100% right, and I think to get much more speed out of it I'm going to have to really rethink it, but it does look pretty cool.

A lot of the actual clever stuff which is beyond me was taken for a example at the always astounding liquid journey site. I also used bytearray.org's raster based line plotter, which I tweaked slightly to try and get a few more ms out of it ( Code for the tweak is here )
public static function quickLine(bmp:BitmapData,x0:int,y0:int,x1:int,y1:int,c:Number):void{
    var i:int;
    var xinc:int;
    var yinc:int;
    var cumul:int;
    var x:int = x0;
    var y:int = y0;
    var dx:int= x1 - x0;
    var dy:int= y1 - y0;
    xinc = ( dx > 0 ) ? 1 : -1;
    yinc = ( dy > 0 ) ? 1 : -1;
    dx = (dx ^ (dx >> 31)) - (dx >> 31);            //Math.abs
    dy = (dy ^ (dy >> 31)) - (dy >> 31);
    bmp.setPixel32(x,y,c);

//Test for a straight vertical line
    if(dx==0){
          for ( i = 1 ; i <= dy ; i++ ){
            y += yinc;
            bmp.setPixel32(x,y,c);
        }
        return;
    }
    if(dy==0){
          for ( i = 1 ; i <= dx ; i++ ){
              x += xinc ;
            bmp.setPixel32(x,y,c);
        }
        return;
    }
   
    if ( dx > dy ){
        cumul = dx >> 1;
          for ( i = 1 ; i <= dx ; i++ ){
            x += xinc;
            cumul += dy;
            if (cumul >= dx){
                  cumul -= dx;
                  y += yinc;
            }
            bmp.setPixel32(x,y,c);
        }
    }else{
        cumul = dy >> 1;
          for ( i = 1 ; i <= dy ; i++ ){
            y += yinc;
            cumul += dx;
            if ( cumul >= dy ){
                  cumul -= dy;
                  x += xinc ;
            }
            bmp.setPixel32(x,y,c);
        }
    }
}
And that's about it really. I'm hoping to play with this some more next time I get chance and hopefully make a homage to a certain popular shoot'em up.

GWars.swf (7 KB)

Squize.
Sunday, August 12, 2007 2:16:01 PM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Thursday, August 09, 2007
The current project, "Phantom Mansion" is a port of a mobile phone game.

When the site actually goes live you'll see ( If your interested ) case studies for all the projects. The case studies are written in a more professional style, outlining the thought processes as well as the development cycle.

They're glossy and nice.

When it comes to describing Mansions' development, I imagine I'll write something like "A difficult development process due to adhering to the existing design restrictions".

In real life, Mansions' development has been a total cunt.

This is why I've been awol from the blog, and I owe a dozen people a dozen emails ( Sorry ). Indulge me why I vent my spleen a little. The game is  I guess what would be called an "Arcade Puzzler" and as a game it's pretty sweet. It's just that it was designed for java, and so doesn't play to any of Flash's strengths.

At present I'm in the hell that is depth sorting. It's not something I ever seem to do too well, just another black hole in my mind when it comes to coding, but this isn't the usual swapDepths based on the sprites y position. Nope, that would be far too simple. The game has bridges that you can walk over and under. And the baddies can walk over and under. And you can push crates ( You know the score by now ).

Not too harsh. But, and this it the beauty of it, all the sprites are offset on their y position by around 10 pixels ( ie, the image is placed at -10 on the y axis ). This was because in the original it allowed for simple depth sorting with some of the tiles in the game ( So the sprites wouldn't have to be behind certain tiles, so you don't need to worry about sorting for that ). Easy old school trick that surely could never come back to haunt you ( And no, that wasn't a pun ).

So you've got a bridge, and you put it in a higher layer than the sprites, so you can walk beneath it. When you have to walk over the bridge, simple and sly, just have a copy of the same sprite in a layer higher than that, and _visible=true and it's job done.
But, hang on, the sprites are offset. So although they're 32x32 pixels, the same as the tiles, they actually cover the tile above. Surely that means that walking infront of a bridge would lead to the sprites top 10 pixels ( Roughly a head's worth ) being obscured.

Ok, not a problem, we just check that and turn on our higher up copy of the sprite and it's all fixed. Internally every sprite has a zdepth var, so we know what "level" it's on, so you can walk over a bridge and a baddie walking beneath you can't kill you ( It wouldn't be the fairest of games otherwise ).
Where were we ? Oh yeah, at the foot of a bridge bump the sprites level to 1 and display the sprite in the top layer. Now if the sprite is to the left / right of the bridge we shouldn't do this, so we don't. I'm building up to the kicker here. Let's just push that crate along. Oh arse, it's over the bottom of a bridge, let's knock it's level to 1 and blah, blah, blah. The player's sprite whose just pushed it there though, he's still on layer 0, he doesn't know anything about the bridge. So what happens when he goes to push the crate, which is higher than he is ?

pm_bugGrab.png

There's the bridge, tinted orange so I can see it's in a higher layer. The crate which overlaps it tinted green, again so we can tell it's not in layer 0, but look at the Hector ( Our hero ), he's not green 'cause he knows no better.

This is part of why this is a "A difficult development process". There are way more joys that I could share, but I'll hold fire. No one wants to read about someone bitching about their job.

Squize.

Thursday, August 09, 2007 6:27:44 PM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, August 03, 2007
Yesterday my CS3 design premium box finally arrived. Man was I disappointed.

You certainly know the excitement when a *very* expensive piece of software finally arrives? Not that I was already a bit bitter about the fact that I had to pay a *lot* more than an american customer (for the English version mind you).

So I opened the parcel, and what came ot was a ... 5cm x 15cm x 20cm, about DVD-Box sized, thin cardboard box with the CD's ...

I mean, not even a Quickstart guide ... I wasn't really expecting a printed handbook (which really would be a dream), but at least some sort of keyboard shortcuts ...

</rant off>

Though I must admit that the whole thing is impressive ... so I ordered a new comp, too.

So waiting for a bit of free (ROFL) time to start playing ...

nGFX

Friday, August 03, 2007 9:52:42 AM (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [2]  |  Trackback