Gaming Your Way

May contain nuts.

How did I know ?

Way back on the 5th of Feb I wrote these wise words,

"We came up with the issue of the lower powered shots just stunning the baddies, and then in theory the player could just sit there shooting the crap out of one baddie to earn a hi-score. Ok, you'd have to be pretty anal to do it, but it does happen"

In less than a day people have worked this out. The hi-score at the time of writing is 1,111,580, that's about 500,000 higher than the number of points "readily" available in the game.

There's a lesson there somewhere.

Squize.

A day for sweet, sweet love

Just the finishing touches today, although we lost about 3 hours thanks to Flash's security policies ( The tilesheet is externally loaded, and when running on the test server here and the swf on the live one, it failed to load them. 3 hours wasted on that one ).

I guess I'll liven this post up with a screen grab later, but for the time being go and get Loved Up.

Squize.

I knew it wouldn't last

So I skipped a day. I'm pretty surprised it was only one.

Yesterday was a bit of a painful one, I guess that's why I couldn't face writing an entry about it.

It was a lot of skinnning up as I was getting new assets through out the day. It's always a double edged sword, on the plus side getting great new assets really gives you a boost when you're getting a bit sick of the game, it makes it feel new and fresh and complete.
On the harsher edge, it's very rare that you get every asset just how you coded them, so there's always a bit of jigging around. A good designer knows they're way around Flash, and Ian whose done some great work on this, has made it as pain free for me as possible.

At this stage of a project, the vinegar strokes, you can't hide from things. All those boring / tricky / hard / nasty jobs that you've been putting off have to be tackled. The original assets were delivered as vectors. The head seperate from the body, that kind of thing ( So for example you can just have the head tweening over 5 frames, whilst the body animates over 20 to get a complete running cycle in there ). What the original artist had done was to draw them huge, and then just scale them down to size. That's all cool with vectors, but not so great with bitmaps.
Basically it meant exporting every single vector frame ( Again ) to a bitmap, and then re-sizing them all ( One of the baddies was over 1000 px wide, each frame ) and then batching them with Fireworks to 8 bit png's with alpha blending ( The best thing ever ).

Drawn out, boring, but so worth it. The game dropped from around 2.8meg to 1.7meg.

Today, the big push. We wanted it live by five. If you don't want to know the outcome, don't look for a link on this post.
First thing, and a bit late in the project but it's been really condensed, was a To Do list. Just simple and quick done in Notepad. First thing this morning I was looking at around 12 things that needed attention, from the simple ( Alter 1 graphic ) to the things you don't want to be doing on deadline day ( Fix major, fatal, bug on the horizontal collision ).

We managed to burn through it, although we spent around 4 hours getting the sfx in and working nicely ( It does sound really good, it all fits well ). Top tip, don't fall into the trap I always do of thinking the sounds will only take an hour or so. They never, ever do.
Lot's of little things were tidied up, things which can't be avoided, and it was a case of knocking one thing off the to do list, but fixing another 3 things that I'd spotted whilst working on the original task.

Well, where's the link ? I can explain... We planned to have the game done by 5, but it then slipped to the game done by 5, with an extra hour to put the hi-score and mochi-ads code in.
We got the game done by quarter to 6, and then on to the hi-scores. I'd been avoiding these, as they're a pain in the arse 99% of the time, and mainly 'cause mtasc wouldn't compile them ( It's a component developed by gimme5games ) so I didn't want to revert back to using Flash until the very end ( mtasc compiles the game on average under a second, Flash with all the sounds in it, makes that about 20-30 seconds ).

I had a bit of a mare getting them working, but it wasn't too dragged out. Then on to mochi-ads, which I've never done before. In the mean time the game was being tested briefly, where a couple of bugs were thrown up.

It became time to admit defeat, the assets for the site weren't done, so it wasn't going to go live tonight anyway. The game needs more testing too, it's only been really tested by the people working on it, and you need a fresh pair of eyes.

Very gutted to be honest, it sucks donkey to really kill yourself to hit a deadline only to fall flat on your arse. And on that note I'm going to call it a night, and tomorrow is a new day ( A love day no less ) and there will be a shiny new link on here.

Squize.

What the hell happened to the weekend ?

Joy, Monday so soon.

Today was a bit of a reviewing where we're at day, as the game's producer and designer were back from Amsterdam ( Some casual game conference as opposed to a drugs fest ).

Got the locks ( Although they're now called switches as locks wasn't the best term for them ) in. There's a bit of an issue about the player collision with them as the original engine wasn't really designed to be pixel perfect for things like this, and it was a bit of a mare connecting each switch to each row of tiles, although I'm pretty pleased with the solution ( Short version. Each time a switch or bank of invisible tiles is plotted into the map they're given a "group" value to tie them together. When the player triggers a switch by shooting it, it fires off an event with the switches group number, which the invisible tiles are listening for. If it's a match, sweet, the tiles stop being invisible and appear. Quite simplified, it took a good hour or so for me to get my head around the best way to link two different objects like that without being able to link them via the map data ).

With a designer on board full time now, there have been some changes, the main one being the stage size, and therefore everything has been moved around to take advantage of it, which has thrown up a couple of problems.

Also we've got the first 3 levels in the bag. It's going to start nice and easy, but it's looking like the difficulty curve may be a bit sharper than we originally planned, which isn't a bad thing.

Finally, dropped in the gimme5 high score component. It meant ripping out some existing code 'cause I didn't realise the view hi-score option was a page re-direct rather than in the game ( Which I'm not a huge fan of to be honest ).
mtasc seems to be not liking it, so I can either hunt around to try and find out why, or just put the hs stuff off until right at the very end and then just publish the game via Flash rather than mtasc ( Which just kills my workflow, so it's something I'm loathe to do, so I'll put that off until after everything else is sweet ).

That's it, getting closer.

Squize.

End of week 2

A bit more of a constructive day today, good to end the first full week of working in the office with.

All the baddies are in now. The 2nd flying one ( Wasp ) that I mentioned yesterday, and 3 types of ground based baddies ( One just moving back and forth, one charging at you, and one jumping around ).
Also all their mutated states are done, some better than others ( It's really difficult having limited graphic resources trying to come up with something more than just making them move / shoot faster. To be honest, I failed. They do just move / shoot faster ).

There are a handful of bugs, but only tiny anal ones which I notice and they really burn me.

Left to do is the "locks" which when shot will turn on previously invisible platforms, and that should be about all the actual content done, so hopefully by the close of play Monday ( Which is the 11th, deadline is 14th at latest, idealy before, so the game can be pimped out ) all the game related stuff should be done, so it'll be a case of adding sfx / extra images / love / making sure it works with the levels which are to be designed for it, and any ad / hi-score stuff which will be needed.
In a perfect world it'll be gold Tues, ready to be pushed out the door first thing Wed with a day in hand. That's the perfect world plan anyway.

Squize.

More words

To quote from yesterdays post "I'll be adding the rest of the baddies in one big hit, which should be fun."

Oh dear.

Today has been spent adding the mutated Rabbit ( I'm 35 and writing phrases like that ). I was struggling with what to do with him, as I've been told we've not got any budget left for animation and we've only got running frames, so... he now fires lazer beams from his eyes. As mutated rabbits do.

I think I've written far too many shooting routines as it didn't take long at all ( Worked first time too, aside from some alignment issues ).

So pushed on and added a bird baddie, who throws stones at you. That was quite straight forward too, until I decided it may be cool that the stones he throws ( Drops ) should detect platforms and bounce around a bit if they hit one.
Not exactly rocket science to get working, but took longer than I'd planned to get it looking nice.

That's about it for today, which seems bugger all really. I've got another flying / stone throwing baddie to do, which hopefully is going to be mainly copy and paste, and then I think 3 more baddies left, so they should be done tomorrow.

The game's really hard now, as on my test level I've got all the baddies tightly squashed in together for easier testing, and I'm looking forward to having some final levels designed that play to the games strengths.

Squize.

Day 2, kinda

Following on from yesterdays post, this one is going to be a little bitty.

Yesterday before calling it a day I dropped in another baddie and wrote the mutation routines for them both, so if you shoot the hell out of them without trapping them in a heart they'll turn bad, and be even more intent on killing you.

Today has been more of a consolidation type of day ( Read, boring but necessary ). Dropped in the game over screen animations, and the pause mode ones too.
Ripped out the last remaining presentational assets from the last game, so the hi-score input / display is reskinned now.

Major thing was getting the game to realise when a level has been completed, and bump it on to the next one. Got held up for a while as the Toxic engine was designed for a different tile sheet for every level, whereas this game will just have the one ( Although all the map / object data is still loaded externally ), but got it after about an hour of swearing.
The game also knows how many levels there are now, so the game complete screen has been dropped in and works too.

All quite boring, but it means that it's passed the milestone of being a real game now. Not too much fun, and still quite rough, but a game it is, and that's always good.


Did the preloader too, which involved coding on a movieclip, which is totally alien to me these days, and felt very very old school, but it's only a simple "duplicate lots of clips then move them" routine, about 15mins and it was done.

And that's about it. Tidied up the player dying routines and fixed a bug where the camera wouldn't follow your body correctly if you were killed and fell off a platform. Bonuses at the end of level are all in ( Re-used from the last project, which stole the idea from the JBJ Sisters way back ).

Tomorrow I've got a couple of bugs I want to get out of the way ( If I don't manage it in my last hour today ), and then I'll be adding the rest of the baddies in one big hit, which should be fun.

Squize.

Dear diary

Thought it may be a nice idea to do a bit of a diary thing on here for the current game under development. I'm not sure how long I'll stick with it, but let's hope it's fun whilst it lasts.

The new game ( Let's just call it "Another NDA protected game" for the time being ) is based on the Toxic platform engine for the platformer thats still dragging on behind the scenes.
So getting the basics in there and running was nice and easy, strip the odd asset here, remove the odd class there and it's up and running. At present it's still a bit bloaty ( 1.7 meg swf ) but there's more to come out of it, including a lot of sfx.

As this is a themed game, for Valentines, it's a boy chases girls heart premise, based in a vertically scrolling platform world. Bubble Bobble and it's sequel, Rainbow Islands, have been strong inspirations for this project.

K so it was started last Monday, and we've got the title screen / loading screen / pause screen and game over screens in place. The first baddie took his first steps yesterday, just a nice and simple back and forth bad guy.
Last Friday I was tied up installing Eclipse etc. on a new machine ( I'm office bound til the end of June, so all the joy of travelling in London, and none of the getting up whenever I like that was the beauty of freelancing at home ) so I got very little done, but made a start on the shooting ( Hearts, what else ).
Yesterday after the baddie was put in there it was then time to enable you to shoot him, which worked a treat. The longer you hold down the fire button the bigger your shot. Little shots just stop him in his tracks, but if you save up a max shot you can trap him in a heart.
From there a collision routine was added to test for pushing the heart ( Using a couple of nice and simple circle-2-circle checks ) and a further one for jumping on the heart, which will make you jump that little bit higher.

( A core feature of the game will be to trap baddies, move them whilst encased in a heart, and then jump on them to reach those out of the way platforms / collectables )

Today so far has been spent giving the bullets a range. We came up with the issue of the lower powered shots just stunning the baddies, and then in theory the player could just sit there shooting the crap out of one baddie to earn a hi-score. Ok, you'd have to be pretty anal to do it, but it does happen ( Some people just love seeing their name in lights on a hs-table ), so we've decided that the more powerful the shot the shorter it travels before floating upwards and exploding ( In a shower of hearts naturally ).
Joy of joys first time of testing I stood on a platform beneath a baddie and fired a big shot, for it to rise up and trap the baddie above me. Things like that never ever work first time.

It's not really fixed the problem of anal gamers just shooting away, it's just opened more game play avenues. We're thinking it'd be cool that if after x number of shots the baddie mutated, like in the old Mr Do! games for anyone as old as me, so that's what the rest of today is going to be spent on, making the cute baddie Panda a nasty sod when he gets angry.

Hopefully more tomorrow.

Squize.

2007 in words and pictures

Well I've been freelancing for over a year now, and GYW must be due it's first birthday, and what with it being the start of a new year I thought it'd be cool to look back at what's gone before so we can look to the future.

warmbeer_grab.jpg

The Day of the Warm Beer. One of my favourite games, I was just given so much freedom on this, and one of the few games that I'm really gutted with didn't have more time with 'cause there was so much more we could have added.
I'd do a sequel tomorrow if I could.
( One quick thing to note, the boys at skive had to alter it, click tracking I guess, so the correct font isn't shown on the sat nav and the arrows pointing to your friends don't tween correctly. )

polarity_grab.jpg

Polarity. I love parts of this, and really dislike others. Should have been better than it is, but it's still pretty impressive.

greenlight_grab.jpg

Greenlight. A really aggressive deadline for this so it was a stressful development ( I was also finishing off Polarity at the same time ). Not my thing to be honest, but I think what we did we did well. It's recently had some more levels added to it, but I was tied up so they were done internally at Skive.

thinkDrive_grab.jpg

Think & Drive. My first job with Morpheme ( Before starting on the Phantom Mansion games ). It's still sitting around waiting for the client to supply a final bit of copy before going live. Feels a bit dated now ( It's been gold over 6 months ) but it's still fun, and it was great using the mouse to control a driving game.


sol_2.jpg

Signs of Life. Epic huge project, although I really had next to no input. A pay the bills job for me.
I'm not going to link to it as it's UK locked due to it being a BBC project ( And therefore funded by UK licence fee payers ). I think 'cause of that it's recieved a lot less attention than it deserves, which is a crime.

pm_screenGrab.png

Phantom Mansion(s). A very difficult and drawn out development, but we're there now and it plays really well. I've just all but finished the next chapter ( Blue, which is number 5 I believe ? Starting to blur a little now ) so that should be out before the end of the month.
( Some of the early chapters have an issue with the loader frame work, if it gets to 3 hands on the preloader and just sits there, hit F5 and it'll work fine ).


FF_logo.png

Model City. Bit of an emergency job to help out a mate, I re-coded Fuel Factor-Y from scratch in 8 days ( I think that includes the never ending supply of amends ) as the original game source we were given would have been too much work to reskin and add the additional features.
Also did the code for the model city itself ( The loading Hub ) and various bits and bobs on the other two games.
Not the most fun project I've ever worked on.

grabFinal.png

Crazy Balls. Just a rebrand and re-release of an old game to see how it would fair on Kongregate. It died on it's arse.

GiftShopButton.png

The Game of Life. This was actually being developed when I was working on Signs of Life ( And "Golden Balls", which still hasn't been released and I think I'd be badly busted if I even posted a screen shot of it ).
First time as a project manager, and one of the best things I've ever done, and great working with Olli and Marmotte on it. There's more than enough posts about it on the blog so I'll leave it as that.

And that's a years worth of development. Hopefully when Olli stops being lazy and taking time off he can post some of his goodies too.

Coming up we've got the platform game ( Which I'm really proud of. It's on par with GOL in terms of love and quality ), the continuing Phantom Mansion games, Orbs and Olli's got a great old school game that we've been commisioned to do. All good.

Squize.

Little as3 speed test

I was just tinkering and wondered what would be quicker, using clone() on a Rectangle or just copying each property by hand.

Totally blown away by the difference,

 

import flash.utils.getTimer;
import flash.geom.Rectangle;

var time:Number = getTimer();

function runClone():void{    
    var rect:Rectangle=new Rectangle(0,0,100,100);
    var destRect:Rectangle=rect.clone();
    time = getTimer();
    for (var i:int = 0; i < 10000000; i++) {
        destRect=rect.clone();
    }
    trace("runClone: ", (getTimer()-time));
}

function runCopy():void{    
    var rect:Rectangle=new Rectangle(0,0,100,100);
    var destRect:Rectangle=rect.clone();
    time = getTimer();
    for (var i:int = 0; i < 10000000; i++) {
        destRect.x=rect.x;
        destRect.y=rect.y;
        destRect.width=rect.width;
        destRect.height=rect.height;
    }
    trace("runCopy: ", (getTimer()-time));
}

runClone();
runCopy();

And here's my results ( Please feel free to post your own, or to point out anything dumb I may have done to affect the outcome )

runClone:  11567
runCopy:  65

Squize.