Gaming Your Way

May contain nuts.

Keeping the wolf from the door

Just a little pre-release bit of news about Orbs, the quick game I've been working on the past week or so. It's all but done now, just adding some sounds and then its time to wrap it up ready to sell.

orbs.png

Little tribute to Taitothere, as they're giving Flash developers some love atm.

Long term readers of the blog may remember another game called Orbs, which featured what could be described as an identical player sprite. It just never saw the light of day, it was one of my first as3 games and I just made a mess of it to the point it was just easier to write it off. But, never waste a good name or a sprite.

It's a funny one to explain this, I've quoted "Rally-X" as being the nearest thing I can think of. It's pac man with a driving mechanic set in Geometry Wars space I guess ( How I can imagine the shit I'm going to get for lack of originality with this one ). Top down racer with no other cars ? I'll have to think of something.

It's not going to set the world alight, it's just 10mins simple switch your brain off fun, and that's enough for me with this one.

Hopefully it won't be too protracted a process to get it live, you can take it as read that I'll mention it when it does.

Squize.

Log into these beauties

Time for a quick Outpost catch up. It's been slightly derailed due to amends hell with another project. The game itself is going great, I couldn't be happier with it, just an old job is strangling me and its really badly screwed my timing up ( To the point where I've had to start another really quick game just to keep things ticking over, not a situation I want to be in. Yes, I'm bursting with resentment about this whole situation, and like a hung over morning I'm repeating the mantra of "Never again" ).

Anyway, even though I could write a huge post just bitching, let's look to the positives with some pre-production art from Lux, as it makes me happy.

WIP2_supplies.jpg


So this is a WIP image of the terminals you can log into to buy weapons / supplies and other surprises. Having to scale it down like this to fit the blog is a crime, it's such a stunning image.

WIP3_secured.jpg


And these are the consoles which greet you on level 6, the mainframe deck. They are locked down, and will require a mini-game to unlock them.

Anyway I thought I'd share these just to show that Outpost hasn't gone away, and as soon as I stopped getting fucked in the ass with this client shaped steel poker, we'll be back on it.

Squize.

My todo list told me this is overdue.

You're probably tired of this already, but there are some Nuts & Bolts news just around the corner. In a private beta play Deeperbeige (.com) gave it a complete bash and pointed at a few wrinkles that I'm just about to iron out.

Biggest addition will be a nice little victory animation that is tormenting my CPUs at this very momment, so you get something relaxing to see after you've solved all levels (I've been told to keep pen & paper ready for the later ones - or wait for the first set of video guides that will be released with the game).

Then there are 2 bugs that I haven't spotted so far (one of them allowed to cheat ...) but should be easy enough to fix.

More right after this comercial break...

(While I try to get my head around a teaser video to post here)

nGFX

Friends and foes

For anyone who's interrested: it's shit weather outside. And cold. And grey. And it rains.

So Nuts and Bolts getting near gold status every minute I thought I might explain how lazy I was this time with the level editor. So lazy in fact, that there is no such thing. As Nuts and Bolts is a puzzle game and is using a fairly simple map structure I thought I could get away with doing the maps in the Flash IDE.

The basic idea was to place Movieclips on a grid and read out the names and positions at runtime.

Here's a screenshot of the first level:
nb_post_ide_howto_00.jpg



The squares and circles are in the background so that I know where to align my Movieclips, you can see the textboxes which provide addtional informations for the parsing routine (name is not used in the game anymore, but I was to lazy to remove it and the last box contains the help screens that should be displayed).

Each of the level elements got a name I use to build the map, so the yellow circles with the white "p" are normal platforms (name:"pl"), the green "e" is the exit and so on. Luckily we can use the same name more than once in as3 so I could just copy and paste elements once I had decided what name they should use...

Here's another screenshot of a later level:
nb_post_ide_howto_01.jpg

All we have to do now is to get a copy of the Movieclip (the level MCs are exported for runtime use) with this:

private function getLevelMC (iLevel:int):MovieClip {
	var myClass:Class = getDefinitionByName("mcLevel_" + iLevel.toString()) as Class;
	var mcReturn:MovieClip = new myClass() as MovieClip;
	return mcReturn;
}

And the run the parser of that MC (just a part of the code, though):

// find platforms 
for (i = 0; i < mcMapTemplate.numChildren; i++) {          
	mcLevel = mcMapTemplate.getChildAt(i) as MovieClip;          
	bVisible = false;     
	x = Math.floor(mcLevel.x / 60);     
	y = Math.floor(mcLevel.y / 60);          
	
	switch (mcLevel.name) {         
		case "pl": // normal platform             
			this._aMap[x][y].p = PLATFORM_NUTS;             
			bVisible = true;             
			break;                     
		case "start":         
		case "start_0":         
		case "start_1":        
		case "start_2":         
		case "start_3":             
			this._aMap[x][y].p = PLATFORM_START; // we'll set the dir later when adding beam's data             
			this._aMap[x][y].d = 0; 
			this._pCurrent = new Point(x, y);
			this._pNuts = new Point(x, y);                          
			if (StrUtil.contains(mcLevel.name, "_")) {                 
				this._aMap[x][y].d = StrUtil.cInt(StrUtil.part(mcLevel.name, "_", 1));             
			}                          
			bVisible = true;             
			break;                      
		// [Skipped a lot of code ...]     
	}      
}

Then the Movieclip can be removed again and I can plot the level from the resulting map data array ...
2011_nb_01.jpg

For this game this was hazzle free way of doing (and changing) the 30 levels.

And with that, I'm getting back to the game, I have some sounds to add before it becomes gold ...

nGFX

Worth stating ? Possibly not.

I read a fantastic quote from AA Gill on the subject of being a critic,

"Can anyone do it? Is everyone's opinion worth the same? No. My opinion is worth more than other people's. Of course that's a horrendously arrogant thing to say, but that is the nature and basis of criticism. If you are sticking your opinions in front of two million readers every Sunday, then you have to believe that your opinion is worth more."

It got me thinking seeing how our little indie world is virtually all based on the critique of complete strangers. By that I don't mean just how well our games are received and arbitrarily ranked with handy little stars, which of course does have a direct effect on our earnings ( We crave those front pages, partly as a pat on the back for a job well done, partly to pay that bill which just came in ), but in the very direction we take our future developments.

Does that sound too strong ? That the influence of I3yRo1dV1rg1n has on us with his "Sucks 0/5" comment is being given too much weight ? If you release a game which you think is like a golden dolphin flying through the night sky, a vision of gaming beauty, and enough people tell you it sucks because it doesn't have a shop, or it's not original enough, or it's too original and they don't get it ( No matter what, the vast majority mean "If I was good enough to create a game myself, and I was making this one, I'm make it much better than you did, and here's how..." ) then are you going to follow a similar path next time ? Are you going to birth that sequel that you kind of planned in at the start because you thought the game was worthy of a sequel, that not all the story had been told ? Worst case scenario, are you going to lose the courage of your convictions and make a game that aims to be popular for the sake of popularity ( Been there, much to my shame ) ?

You could argue ( There are no answers here, just thoughts, so argue away as I'm not taking a particular stance ) that those are our consumers, we make games to entertain and to be played, with the happy side effect of them paying the bills if they hit that front page, and if the people we give our game to say it sucks, maybe it just does. Maybe you're not all knowing just 'cause you made something. Maybe you've got blinkers on because after investing so much time and effort you don't want to stand back and see the Mona Lisa that you created in your head in the cold light of day is just a stick man. Drawn on a toilet wall. In shit.

But going back to the quote that this post hangs on, maybe not all views are equal. Perhaps those 0/10 "Sucks" comments are just as pointless and trite as those 10/10 "Awesome" reviews that make us feel all warm and fuzzy. Possibly we should just take on board the reviews that actually help us as developers, the ones which are articulate and well thought out, even if they say that our beautiful Mona Lisa is a bit of a dog, because they explain why.

That someone plays your game is nice, it's rewarding, after all games are meant to be played. It means the game has achieved it's required result, even if the player hates it. That someone cares enough about your game to provide a well thought out response to the experience is absolutely fucking fantastic. It's quite possible the person writing that just likes seeing their own words, that they want to rise above the 0/10 and 10/10 gangs and show that by giving you a sample of their intellect ( Shit, I'm writing this post, as if my words carry any sort of weight about anything ) but it's equally as possible that they cared enough about the game they've just played that they want to show you and in effect help you become a better developer.

I read a great article about anger management the other day, and there's this theory that at times we actively seek confrontation, it's the whole adrenaline and dopamine reward it gives us. Sometimes being pissy just feels good.
I've found I'm very guilty of this. If I see those 0/10 "Sucks" comments, I find it near impossible not to bite. Ok, maybe not those as they're just noise, but give me a little something that has some meat with it's venom and I'm in there. I'm coming at you bitch with all the sarcasm and bile that you accumulate over 39 years.
( Can I just say this unhealthy desire for an angry dopamine hit is only to do with my games, I'm not a mental who goes looking for a fight under every stone. I think it's a combination of loving your baby that you've just put out in the world, and expecting people to piss you off with trite throw away comments that take them less than 30 seconds to write, after you've spent months making the very best work you can. If you know you're going to be annoyed you get in there first, you're ready for it, and attack much quicker than perhaps you should. Sounds awfully like a previous relationship ).

So, where has this rambling path taken me ? Basically I'm going to try and improve my shit filters. Why should I get defensive / aggressive with strangers who aren't best placed too comment on my work. Praise from my peers, people I respect, matters to me. I think it matters to everyone. Critique from people who I don't know whose views are just vacuous and there because it's an available avenue aren't going to get under my skin anymore.
Players who provide constructive feedback are in effect aiding the game post release, as I learn from them, which is what I aspire to do, to learn from people and become better at what I do.

Worth stating ? Possibly not. Possibly so.

Squize.

A little place called Haven

Sorry about the lack of updates, and the lack of alpha demo. I realised there's so many set pieces in there that they would be spoilt if you saw them too early ( Things are only frightening once ). So that's why.

Just a quick recap. Last time I went over using the IDE ( Just to clarify, I meant the Flash IDE itself ) for laying out the levels and mentioned that it was a pity that the shadows weren't in their own layer. Well they are now, and it was well worth the effort, there's nothing like a face hugger running out of the shadows towards you.

Loads more has been added, its really coming together. The main issue now is the lack of original graphics ( You'll see I'm using sprite rips in the grab below ). I'm currently working on level 3, and just added a new baddie, look at him...

outpost3.png


That's proper nasty first time he opens his eyes and runs towards you. Also with level 3 you can see I've gone a bit mental with the shadows ( They're plotted via code, so I can set their "length" and alpha ), as level 2 is a bit shooty, I wanted to claw it back to being scary.
As the game progresses I think it's going to move away from survival horror to an out and out shooter, although hopefully with enough set pieces to make you jump.

That's it for now, just a short post to let you know we're still doing things. I'll leave you with some 3D.

outpost4.png


Nice.

Squize.

I think I want a wall there

Two posts in two days ? I don't know about it being my birthday, it's like Christmas for everyone who likes reading Flash gaming related crap.

I thought I'd go over how we've approached the level design in Outpost, there may be some ideas you can re-purpose for your own stuff.

outpost2.png
I wish we were more like a crap version of cracked.com


Ok, so we're using the IDE. May seem strange for such a tile based game, but it has a ton of advantages which we discovered when working on Knight's Quest.
Perhaps it would make sense to explain how the scroller works first. Basically we've got a holder sprite, and within that we have lots of 640x640 bitmaps. It's done this way so as we scroll around we can turn off the bitmaps which aren't on-screen ( To be honest I've got to code that bit yet, but that's the plan ).

Each level is in a mc, and within that we have 4 more mc's. Background, Walls, Objects and Collisions. Background is literally that, the floor. We can make this totally art based, nothing needs to be pixel aligned if we don't want it to be and we can throw blend modes etc. in there for no cost.
Next up is the walls clip. This has to be tile based, but we can still mess around with it to some extent. The IDE's snap to grid makes life a lot easier with this. The wall tiles are just 32x32 bitmaps dropped directly onto the stage.
Objects are in-game sprites ( Surprisingly enough ), so you can see crates in the above grab, and the yellow squares are baddie start positions. Also the doors are on view as they are technically sprites as we have to open them / run collision checks.
The final layer is the collision one, which is made up of just those red rectangles you can see.

That's the basic nuts and bolts ( Now that's a great name for a game ), the more interesting bit is how we actually use this. Firstly we loop through the background and grab 640x640 pixels at a time, and plot them into our scrollers 640x640 bitmaps. We then grab the walls and do the same. Before we finish with the walls we loop through each tile and store it in a small bitmap ( Where each tile = 1 pixel ) which we then use for path finding / line of sight / displaying the map.
So the data is just burned flat into our bitmaps, hence no extra cost if we add say gradient shadows in there, and we have the luxury of using High settings for filters which you can't really do "real time".
Next up we loop through the Objects, using the instance names to create the relevant item ( Instance name == "Baddie1", ok lets make one of those and position it ).
Finally, we loop through the collision layer. We just need the vectors from the rectangles because we then pass these to Nape. Yep, we're using a physics engine in our game. It started off a little "Fuck it, lets spend a day dropping it in to see what happens", and it worked way better than I thought it would, so it now handles all our collisions, from baddies being able to push crates out of the way to the player bullets hitting walls.

There are some downsides to this approach, the shadows are burned into the background whereas I'd really like them in their own layer so sprites could go into shadow, and it's obviously not as quick to design a level as using something like Mappy, but I think it's going to more than pay off in the long term.

Squize.

The owl men are here, and they're hungry.

Figured it was time for an update on my new game, "Outpost". Let's clear the air right from the start, it's heavily inspired by the Amiga version of Alien Breed. There's no point refuting it, and I'm only going to get it thrown in my face, so let's be upfront. It's a homage. That's the nice term for a clone.

I'm currently using a mixture of ripped and place holder art, so I'm a little loathe to show in-game shots right now, here's the title screen ( Which obviously gives no indication of how the game plays ).

outpost1.jpg


So we've got Away3D lite running a nice looking model, kindly donated by our mate BlinkOk.

In terms of the feel of the game, I'm going for a survival horror feel to start with, rather than it being an out and out shoot'em up.  That means there's a slow build up which doubles up as a tutorial. I'm slightly worried about this and it's unusual for a Flash game, the over riding rule is that you have to grab the player as soon as possible, and I'm kinda going against that.
I'm hoping that the set up sucks people in long enough to stick with the game and then we can go from a slow burner atmospheric build to an out and out battle for survival. If I'm going to fail, it's better to do it spectacularly.

Most of the tutorial is in now, and I think all the set pieces for level 1 are in place, so now it's just throwing data at the first level to see how it feels all together. It's set up so in theory I could release a 1 level demo, which I'm quite tempted to do, maybe as soon as this Friday. We'll see, with it not graphically finished I'm a little loathe to do it although having feedback about the pacing would be good.

Anyway, that's a post where I don't really say much. More nothingness soon.

Squize.

[In desperate need for a catchy title]

So what am I going to write about today?

I guess my last post is so long ago you must believe I left GYW and let Squize do all the posting. Well, no. I just had nothing to write about, nothing even mildly related to games anyway.

And while Squize wrote all this posts (and awesome games), I wrote … an online picture database. This 'small' project took way, and I really mean WAY longer than I thought. My first guess was 'ok, maybe three month, max four' - lesson learned there. In the end it took a year and changed from a very basic database driven website to schow (and sell) some 40 years worth of black and white press fotos to an ajax driven catalog monster. There is a quite complex backend to handle the images' keywords and background informations, import and upload methods, a product and discount editor and a whole lot more, that makes up a good third of the all-in-all 54,000 lines of code - ok this includes some 9k lines of javascript and a lot of css.

By the way, if you happen to speak German, go have a look at it (otherwise you've just have to click on "Fotosuche":
http://www.krefelder-fotoarchiv.de/

And if you like a hairy leg on a woman, have a look at these "swimsuit models", (And while you're at it consider buying a few prints :) )

Now that I got this out of the system, I can as well add something about why it took so damn long (about 10 month):

1. style and code revisions. As I mentioned earlier this one got bigger than the first idea, this wasn't such a big problem as it was an inhouse project.
2. oh and it was an inhouse project. So adding things, tweaking design and layout caused some rewrites and with no fixed schedule … do I have to say  more?
3. Ajax. Ajax eats time, and imho javascript sucks (even when using  jquery). Until I started to use Aptana Studio each fucking line was a chore (and honestly still is).
4. customers :-), just when I really was deep into the c# code of the backend there was scheduled client work ahead.

Although looking back now I'm quite proud of it.

And now - finally - games.

Right after (and when I really couldn't face serverside anymore) I started working on two games. One's nearly finished: a flash puzzler based on two cute (and cute normally isn't a word I like to use in this context) robots called Nuts and Bolts. The other one is an Unity based gamed re-using an old game idea of mine where you collect items and solve small switch based puzzles to reach the level's exit. It's got quite an unusual control scheme which I hope will bring some mobile/gyro feel to the mouse using gamer (and later be ported to Android without much trouble).

Right, enough text for me, here's a big lot of screenies:
2011_crystalis_00.jpg

2011_crystalis_01.jpg

2011_nb_00.jpg

2011_nb_01.jpg

I'll let these stay uncommented.

And now ... levels for Nuts & Botls

nGFX

Sometimes your babies suck.

I've been meaning to post this for well over a week now, but a new project has sucked up my time.

Anyway after DN8 was in bidding but still not quite finished I thought I'd be all good and proactive and start the next game. Physics games are such a popular genre and what with Nape looking so sexy it felt right to start one. A nice quick physics game ( You know that sentence is dripping in irony don't you ).

seu1.png

"Smash 'em Up". A wrecking ball knocking down buildings. Felt fun in my head. Move the crane ( Which is still a twinkle in the art packages' eye ), drag the ball back with the mouse and let it go. What could go wrong ?

Between me and you, I don't really like physics games. I've done a fair few, even going back as far as a Flade powered one ( Remember that kids ? ) but having no knowledge of physics means development is a painful hit and miss affair, which is getting slightly less painful each time but never what I could describe as fun. Worse though, as a genre, they don't really do anything for me. There are a handful I like, but I think most of those are by friends, so I'm predisposed to play them more and I guess they grow on me.

So I'm making a game that I'm not loving, and the ideas just dried up. Yeah it's great fun knocking over walls, but there's no real skill as such, it's more a case of trial and error figuring out where to launch the ball from, and I don't find any fun in failing at a game until I get exactly what the designer wanted. Yep, Angry Birds leaves me cold.

Want to see it ? There's no preloader and I think it's just over a meg. Here you go, Smash'em Up.

Back to the drawing board. I know there's something there, it's almost fun, so I tried to look at what was missing. Killing things is always fun, so maybe that was it, smashing walls isn't enough on it's own.

seu2.png

I came up with some soft body baddies. They worked really well and it was quite straight forward in Nape ( Which is a real joy to use ).

Now, how to weave them into a story. Ok, a physics game doesn't need an accompanying novella, but I have to justify things a little.
How about this. So many games focus on the alien invasion, but what about the aftermath ? There must have been a hell of a clean up operation after Independence Day. Someone has to make the damaged buildings safe. So this takes place after your favourite invasion themed game.
We all know aliens are sly sods, so they deposited their jelly like spores around the city, so lets kill two birds with one stone, take out the unsafe buildings and kill those pesky spores who will grow up to bite your face off.

In terms of the game, this meant re-skinning it, from the nice city scape we have in v1, to a burning hell on earth. I really enjoy doing pixel art, I'm far from good at it, but I do enjoy it. When I feel like doing it. Which is in very short bursts, usually until I find something I've done looks crap ( eg, those trees ), and then I'm bored of it, because I'm frustrated at not being as good as I want.

Let's review. There's a ton of pixel art which needs re-doing, 17 or so levels that need designing, the pass / fail condition for the game needs changing, those post level stars just don't work anymore and I don't really like physics games.

Fuck it.

There's still a good game in there struggling to get out, but not now. I do my own stuff because I enjoy it, if I didn't I'd be doing agency work and never have to worry about money again. I'm not enjoying working on this, and I won't until I have a big break through so it's on hold for now. Possibly forever.

Here's Smash'em Up: End of the world mix

I thought I'd do this post as we're developers, and as such we have hits and misses, and learning from the misses is just as important as basking in the warm glow of a good game being well received.
It's not a complete loss, the burning ember particles are nice and I'm sure those will be used elsewhere, and I've got a nice wrapper class for Nape so if I ever crack and do "Destroy Every Car" we've got a nice foundation to start with.

Squize.