Thursday, September 02, 2010

Knight's Quest, the story so far...

Sorry we've been a bit quiet here recently, both Olli and I have been beavering away like a couple of mentals on projects which hasn't given us any free time to devote to the blog ( Also we didn't have that much of interest to say ).

Knight's Quest, our first Facebook and our first RPG, has been my main focus for weeks. It's finally starting to come together after weeks of just working on the techy side, so I thought it may be of some interest to go over some bits and bobs from it.

The game is iso, which is a pain at the best of times. Z-sorting is murder. How I've gone about it is to split the map into sectors. Each sector is 16x16 tiles, and we only z-sort on those visible areas ( Also we turn off any plotting in sectors which aren't visible ).
This really reduces the sorting to just what is needed, also the floor tiles are burned into their own bitmap ( See this old post ) so we're only having to sort tiles and sprites, which helps.
Also as we're using the blitter we don't have to worry about sequential indexes, it's like as2 all over again, where you could give a sprite any old depth and not care about it.

Next up, the dungeons. I've used Olli's generator ( He's written tons about it previously ) and it works a treat. Basically it creates "cells" which are in this case 4x4 tiles. The cells tell us which walls or doors are present. Rather than just randomly plot tiles I've set up a lot of mc blocks, eg.

KQ_tiles.png
This may be tricky to explain well so stick with me. As we read each cell we know what's there, let's say for example a north and east wall. From there we look up the array which contains all the blocks with a north and east wall and pick one at random.
The floor is burnt into the background bitmap and the wall tiles ( Or cauldron placeholders ) are converted into blitter sprites ( Bobs ) which can then be plotted / sorted etc.
The reason for this is that we can then hand design a lot of different wall blocks and use them randomly ( Rather than just picking one random tile at a time ). It should make the dungeons look more hand designed, which is what we want.
It's important that we create the impression that someone has slaved over each dungeon to make it look as non-random as possible.

I think that's about it for now, there will be more to share real soon.

Squize.

#    Comments [1] |
 
Saturday, August 14, 2010

Apparently it's misguided love

Here's something that really badly bugs me. I'm sure I've written about it before, but with so many words written here they blur into one.

I was thinking about writing this post the other day, and in a weird twist of synchronicity ( By default that's always slightly weird though I guess ) I popped over to FlashKit games and there was a post summing up exactly the point of this post, the target of my ire.

What drives me insane on any forum are posts like "I'm doing this game for a client... ...how do I make this game ?".

I'm going to make some assumptions. The majority of these questions are for simple games, there's never anything really hard attached to these questions. So these are people who are of a pretty low ability with Flash.
Continuing with my assumptions, these developers know very little about Flash, and have yet managed to persuade a client to go with them. The client is trusting their brand, no matter how large or small, to this developer.
I'm also guessing these developers don't have a great cv. It's quite a stretch that they've got a ton of previous shiny work, but can't do a fairly simplistic game.

Poor cv, lack of knowledge, and yet still won the gig. How could that happen ? It can only be down to the price they quoted ( Or they're excellent at selling themselves, but let me stay on track for now ).

Why does this bug me ? We live in a world economy, what is a poor wage for me is a decent wage for people in other parts of the world. Why should I care if someone has gone in at the cheapest possible price ?

Because it stops the people with real talent, those with the passion to learn and improve, from possibly getting a first foot on the ladder into the industry. If you take a job that you don't know how to do, and hope to just cobble something together using open source ( With no credit for the original author, naturally ) and the good will of forum members, then I've really got no time for you at all.
There's no skill or artistry or creativity or passion to doing that, and for me all those are essential aspects of being a game developer. You're not making a game, you're just shoving bits together in a poor attempt to make the whole greater than the sum of its parts.

I know there's lots of ways to shoot down my "argument" here, we all have to start somewhere, it could be a great artist doing his first bit of coding and needing a head start, a rush job, a favour for a friend, needing to pay the vet bills etc. etc.
I don't really care, that's the beauty of having your own blog, you can be as opinionated as you like ( The comments are there to call me an arsehole if you so wish ). Also I'm making a generalisation here, I think 90% of all these types of forum posts I've ever read support my point, as for the other 10%, I'm hoping you understand and we can still be friends. Not lending money friends, but saying hi in the street ones.

We all have to learn on the job, it's insane to think that everyone should know everything before starting a project, but there's a difference from learning on the job the bits your unsure of, and accepting a job that you have no clue whatsoever how to accomplish.
By doing so you are:
* Producing something crap for your client.
* Putting more crap on the internet. There's enough already.
* Keeping prices artificially low.
* Stopping someone whose taken the time and effort to learn their craft from taking the job.

No one I've grouped into my little pile will ever read this blog, but hopefully next time you see a similar post on a forum instead of doing the good thing and helping them out, maybe think about it twice.

Squize.

#    Comments [7] |
 
Wednesday, August 11, 2010

I can't see you ...

colours.jpg

Let's get right to the point. If you can see a second square inside the square on the left of the image above, chances are that your monitor is at least not too dark. Though, we haven't talked about colour yet (next time maybe).

If you CAN'T see a second square your monitor might be a bit too dark.

And why should I care?

Let's take the game that belongs to the screen I posted last time, it's dark and that is of course part of the idea. But during playtests some of our friendly testers mentioned that the tiles are to dark to be seen confortably and I was about to tell them to crank up the damn brightness.

They won't do it of course. I wouldn't. But then I'm on a colour calibrated monitor (ok, two of them). So for me all my colours are correct.

I guess I'm going to up the brightness of the tiles a bit then.


nGFX

#    Comments [0] |
 
Friday, August 06, 2010

Well I'll be damned

Just a quick picture post, showing the title screen of my first personal game this year. Should be finished in a couple of days.

shrooms_01.jpg

It's not an overly creative gameplay, but for the sake of it I wrote a minimalistic particle thingy that really makes it a glittering experience to play. Once I've got the sound in it should at least score in the mood department.

nGFX

#    Comments [0] |
 
Tuesday, August 03, 2010

Saved from the fire

I was just chatting to a mate, and "The Game of Life" came up. Not the official one, but the copyright name infringing version we did ( I've obviously held onto the email where the client said we should use that name and that they were fine with it. I don't know if that will stop me from ending up in prison and being a bad mans boyfriend, but I'm hoping so ).

As I was digging out the link to show him I was really disappointed to find that tak are no more. I've worked with Dom on quite a few pitches, and of course GOL, and it's a real shame to see an agency that always produced great work having / choosing to close it's doors.
I consider him a mate and would work with him tomorrow, so we just want to wish everyone there luck with their future endeavors.

Obviously this blog wouldn't be this blog without a healthy streak of self interest. There are two versions of GOL, one is the final one the client got, and one is the version without all the last minute dog shit branding that we were forced to put in that made a lot of hard work look just dreadful.
We really don't know if the client version ever saw the light of day. It was one of those "We need it now!" projects that then gets sat on for months. As far as we know it was just going to be an internal release for employees only. About 10 people may have played it, we really don't know.
The good version, where we didn't have to rip out a lot of the surrounding graphics and resize it and drop a huge ugly gif banner in, was only hosted by Tak ( This is where the self interest comes into it ).

Luckily I kept a copy of the pre-de-flowered version, and we're hosting it ourselves now.

Long old story about nothing really there, I could just have easily tweeted a link.

Speak of which, Game Of Life.

Squize.

#    Comments [0] |
 
Friday, July 30, 2010

Ionic: Post Mortem

More looking at the past as a filler whilst we wait for the future to become the present.

ionic_logoGrab.jpg

Ionic, our first ( And quite possibly last ) crack at a Tower Defense game.

What went right:

Visually I think it's very strong. It's a good looking game. That was helped a lot by Lux jumping on board really late in the development and giving everything a lot more love, as well as designing the baddies.

juggernaut.png
It's not a typical tower defense, which was the objective all along. I played a lot [ Of TD's ] when developing Ionic and I was amazed by the number that allowed you to fast forward during the actual "Combat" part. That to me defeated the object totally. I'm placing my towers so I can see them shoot the crap out of the baddies, it's the money shot and that's what I want to see, the pay off for saving up for a nice new tower.
Any game which allows you to bypass that just strikes me as strange, you may as well just reduce it to a text response, "2 creeps got through, 12 were killed, next wave in 3,2,1...".

The game feels arcadey, which was the one design philosophy that ran through it's dna from the very start. I could see the appeal in TD games, but couldn't really enjoy them. The plan was to make it feel like a strategic R-Type, it needed to feel like a real battle as part of a much bigger on-going war. Every shot, every explosion counts.

Adding in the management and repair aspects, although I see those as a plus, I think we're going to touch on them again in the negative pile.

There's a lot of love in there, I really like the empty shells coming off the cannons or the blue flame in the flame thrower or the 10 or so frames of animation when the coin collecting droid is launched or the wolf growl that's mixed into the cannon shooting sample to create that guttural raw feeling.

ionic_mtb4.jpg

The ADD blendmode. It's a thing of beauty and even though it has a performance cost it's worth every cycle it steals. Using pixel bender for the RGB split worked really well too, much quicker than the one in cronusX, allowing us to use it real time rather than just for transitions.
Two pluses for Adobe there then, rather me.

I got the word bitches into the end credits. Rock 'n roll baby.

What went wrong:

The asset management was done early in the development. I got it working, it felt nice, with the idea being that if people wanted more depth they could tweak things to their liking and get more out of the game.
If you just wanted a pick up and play, then you didn't need to touch it and still be able to complete the game.
With doing it early on it was counted as done and dusted. I never touched it once after that. That was quite a mistake as it transpires that just be setting one of the sliders to max straight way ( I can't recall which one, I'm guessing R&D ) you can unlock all the cool weapons really early and basically skew the difficulty level in your favour.

Bollocks.

The coin collecting droids. Although I love this feature, it was a headache to code. Every week or so I would notice that the previous fix hadn't fixed it. They were literally the worst bug throughout the entire development.
So I did what all coders should do, I put a nasty kludge in there. If a coin wasn't collected after a certain amount of time I assumed that the droid was going to ignore it, so I just killed the coin and added it to the players credits.
What a mistake. Even though it was explained in the docs, people still noticed it and wouldn't have it that they hadn't lost out. Also people assumed that if a coin went off screen by the player scrolling they would lose it as well.
Players like to see something happening to confirm it's happened, implication doesn't work well in games. Another lesson learned ( cronusX had a similar issue, with baddies teleporting in on the player. Even though a shield appeared and the player was never ever punished for that, as that would just be really poor design, because it wasn't communicated well enough people still thought they were being punished unfairly, i.e. poor design ).

The walkthrough. Our mate RobotJam warned me about doing one, saying they're a waste of time. At the time we weren't getting the interest in selling it that we expected, so producing a walkthrough was a final role of the dice, a way to give extra value to the sponsor.
Rob was totally right. A complete waste of time, and painfully boring to make.

Balancing a TD is a complete bitch. It is so so hard to do. I looked at so many TD's to see how they did it, and very very few do it well. A lot just extend the game by adding far too many levels compared to the actual content. I think we had 25 levels in this as any more would just be grinding and slow the whole progress of the game down.
I think we got the balance quite good in the end ( If you ignore the bug mentioned above ), and it's here in the negatives as it impacted badly on the development time. It's one of those things you know are going to be tricky to do well, but it's far harder when you actually try and do it.

ionic_dogsOfWar.jpg

Similar to the balance was the whole GUI. I think we did a good job, but trying to please everyone is impossible. The best example is scrolling the dreadnought. I added 3 methods, arrow keys, clicking the radar and a drag bar. In total there was 7 suggestions on how it should be done, including some borderline venomous comments about it not supported A/D, as if by omitting those I was somehow spitting in the players face.
Getting a large amount of information to the player without forcing them to sit through pages and pages of text is very difficult, and something we spent so much time on.

Crisis of confidence. This is a tricky one for a developer to admit to, you very rarely see it. I have certain comfort zones with development, some genres I can piss all over without a thought Not that I'm especially good, just some genres click better than others. Ionic was well outside my comfort zone, so I found myself taking on board what everyone said which created a lot more work, and the more I listened the more I felt I was missing the mark and going out of my way to compensate.
When you have a lot of peers you really admire giving you suggestions, and your image for the game isn't a 100% clear, then it's very difficult to just shut down and pick the most relevant ones, they all seem relevant.

The attack waves, something I should have been strong at doing, were average. By that point I was getting sick of the whole thing, so I rushed through them to get them done. They're ok, but they should have been a lot better.

We're nearly at the point where I wrap this up with a "I couldn't give a fuck if no one likes it, I still think it's the best thing I've ever done" type comment.
Firstly I want to express how much I dislike devs who feel like they have to defend their games too strongly, you create entertainment and put it out there for people to enjoy. Not everyone will, like not everyone you meet in life will like you, no matter how cheeky your grin or funny your words. It's part and parcel of putting something out for public consumption, if you want the praise you've got to silently and with dignity swallow the crap that comes with it.
All that build up is of course there to explain that I'm going to break that rule, I'm going to be a whingy little bitch. Our blog, our rules. I'll regain my dignity tomorrow.

"we can't imagine why the developers neglected to offer the [A] and [D] keys to pan from left to right—it would have made a substantial difference in accessibility".

"Substantial" ? Really ?

"this is turning into a clickfest"

Yeah, it's murder isn't it, having to click things, in a game of all places!

"flamethrower in space void?!"

Fuck off.

I thought I'd feel better for that, but I don't really.

Let's finish this off now. Never do a game with a complex GUI. Everyone has their own favourite way of interacting with things, as I've mentioned there were in total 7 ideas for something as simple as scrolling the dreadnought. Let me clarify that slightly, do it, but expect people not to be happy so have a thick skin ready.
Conveying lots and lots of information is extremely hard to do in an non-obtrusive way, it has to be filtered out gradually and you've then got to take into account a lot of people will still just ignore it. Nothing can be implied, everything has to be spelt out ( Thanks Nintendo for creating a generation of gamers who don't want to fill the gaps ).
In terms of how the games performed, it's had 944,316
plays, which is poor. It received so-so reviews most places, 3.72 on NG, which isn't great.

Overall I'm disappointed with it's performance, I really do think it's the best thing I've ever done. It has faults, in amongst the feedback which pissed me off there was some really good points which I've taken on board.
Like cronusX I can still enjoy playing it even now, it has an almost emergent game play which as a developer is great, it makes it very hard to get sick of which helps development a lot.
I think it's great, it's fun to play and I learned a lot from it. I think that's as good as it gets.

Squize.

#    Comments [5] |
 
Thursday, July 22, 2010

cronusX: Post Mortem

A post mortem on cronusX is well over due. Even though the files aren't online right now ( The webhost the files were on got hacked, and it turns out their talk of backups was a big fat lie, so they just closed rather than restoring things. Nice one ) we did document every day of it's development.

cronusx.jpg

I will re-upload all the files when I get chance.

What went right:

The development diary, which I've already mentioned. It's something we're definitely going to be doing again on the right project ( So many are covered by NDA's, others are quite risky and there's no need to fail in public ).
It really gave us focus and allowed for really quick and great feedback from you dear reader.

The look & feel. I'm really pleased with how the game looks. The screen shake when the asteroid hits the screen during the attract mode is pretty sweet ( And if you've got a 360 joypad plugged in you get a cheeky rubble ), the rgb split transition works nicely ( There were some comments that it took a little long, some comments I just choose to ignore ), the between level tips are a nice touch too, even though one was broken that no one noticed which got hidden with a nasty 11th hour kludge.
Olli did great work with the players ship, the asteroids and the title screen animation. Funnily enough it's the closest we've worked together on a game, and it was really smooth ( I'm sure I'm looking at that with rose tinted spectacles though, I'm pretty positive I pissed Olli off untold times ).
The curved text was a pain though, as I didn't use code to curve it, so it meant using the art package for every text amend. Painful.

Code. It's a really solid game code wise, it uses our distance based broadphase collision routine which worked perfectly for this game. Also procedurally generating the background was really cool, something I'm proud of. The data mining in there is pretty good too, with Olli doing the clever server side stuff.

The game itself. I really enjoy playing it, it's a good game, and that's the best I can ever hope for.


What went wrong:

We had this really good data mining system, and just failed to use it. I did code up some widgets but they never went anywhere.

widget_rock.png

A real waste, but there comes a point of diminishing returns.

The sponsor requirements meant that we had to rename it, which I wasn't over the moon about, and actually remove some features. This meant that the version on Candystand isn't as good as it should be, which is a real pity.
( Just for the record, Dave @CS was a joy to work with, I'm really not criticising Candystand in any way, it's just frustrating removing working features ).

We experimented adding twitter support, being all web 2.0. Total waste of time, it was badly implemented, took far too long to add and no one used it. Lesson learned there.

x_grab.jpg
Old wip grab

Survival mode. Another important learning point. I thought adding a half arsed feature to increase the "value" of the game was a good idea. It turns out that players expect things to be good, rather than just tacked on, crazy talk I know. The perception isn't that it's a bit more to the game, which is how I saw it, it was treated as integral part, and seeing how it was weak we suffered because of that.
Fair enough, it's not something I can argue against.

No one liked it. Ok, a little bit exaggerated for dramatic effect, but it did fall between two stools. Old gamers were expecting Asteroids controls, and were disappointed that we'd gone "Dual stick" with it. New gamers who didn't grow up with Asteroids felt it was lacking in other ways, such as a lack of bosses ( Amongst many other things ).
Basically we hit the middle ground perfectly, which pissed off both sides ( Spoiler alert. The Ionic post mortem is going to end the same way ).

It got an ok-ish 3.80 on Newgrounds, died it's death on Kongregate ( Naturally ). I honestly don't know what it's done traffic wise, we weren't allowed our own tracking in there, the moch-ad figures say just over 385,000 impressions, so add in the skips and the site lock plays and we're looking at a piss poor million or so hits. Nothing really.
This is why the widgets never saw the light of day, there's only so much time you can throw at a project that's not going anywhere.

Before this gets too pessimistic and ends on a low, it's a game we're proud of and it's still fun to play even now. I'm more than happy to have it as part of the GYW back catalogue, it represents us well ( A technically good, pretty game that no one likes aside from us ).
If this was the last game I'd ever written I wouldn't be upset.

Squize.

#    Comments [5] |
 
Friday, July 16, 2010

Much ado about nothing

I think it's time for a little recap, if for no other reason than to show we're still alive.

Work has started on our first RPG / Facebook game, "Knight's Quest". It's a whopper of a project.

So far most of my time has been spent on the boring techy part.

Firstly I figured out a way to do terrain splatting which should work nicely. Basically that's how most 3D engines, including Unity create their terrains ( Speaking of which, have a google for the previews they've been releasing for v3. I know 3D proper is meant to be coming to Flash in the next couple of months, or at least the announcement of it, but Unity is looking more and more stunning every day. If only there was a good web based business model for it I'd ditch Flash in a heartbeat ).
Basically you have up to 3 textures ( Any more and Flash was giving me artifacts for some reason ), in our case movie clips made up of 1 iso tile repeated over and over. By using gradient "Brushes" and the erase blendmode you can remove as little or as much from each texture as you like.

terrainSplat.png

So in the mock-up above the base texture is the grass, on top of that the soil which we erase so only that part you see there is showing, then the road is the 3rd texture, where we do the same again. Basically we're erasing pixels at different alpha transparencies.
The game takes these different movie clips and bakes them all into one big bitmap, which is a bit costly in terms of memory as it's a big ol' bitmap, but in terms of filesize it's nothing, as we've only used 3 tiles and a handful of brush movie clips, it shouldn't be anything more than 20k at most and in-game moving 1 bitmap around is nice and quick, so it's all good.



That's just a test, the final ground will use bigger tiles for the textures, and then we'll overlay a normal mc on top containing flowers / grass / rocks and pebbles etc. and bake that into the same bitmap. We should end up with a really nice art based look at min. cost, much much cheaper in every way than just tiling the whole floor.

As usual I've written more than I planned, so I'll save stories of path finding and z-sorting for another time.

Squize.

#    Comments [2] |
 
Tuesday, July 06, 2010

The Essential Guide to Flash Games: Conspiracy?

We've been very lucky in receiving a copy of "The Essential Guide to Flash Games" to review. Whilst preparing the review we've uncovered something quite startling, almost sinister, which we need to share.

Chapter 11, "Creating an Optimized Post-Retro Game" features a game called "Blaster Mines", here's what it looks like,

blaster_mines_screen.png


Notice the liberal use of that strange looking symbol. This is where it gets weird, we checked out a random sample of games, just plucked them out of the air, and found the following.

symbol.jpg

From top left to bottom right, Adventurous Eric, Gone to the Dogs, Dream Racer 2, Billiard Blitz 3 - Nine Ball, Ionic, Quartet, Space Chaos, Ununicum, Star Fish, K-Million, Rowowor and Traffic Madness:Desktop Edition.

What does this all mean ? We believe that the 8BitRocket boys, authors of the "The Essential Guide to Flash Games", secretly run the entire Flash game scene, that their reach goes everywhere.

Want further proof ?

bookPic.jpg

What kind of sick twisted mind would include us as a reference to "Other Great Web Resources" ? Clear proof they're just toying with us.

Somehow, Jeff & Steve have managed to put together a six hundred plus page definitive guide to Flash game development, a truly essential guide to modern game development in Flash which covers everything from blitting to using Mochi services, and yet at the same time have managed to take over the web.

Just by exposing this I'm in fear. If I should be discovered dead in a cupboard with a belt around my neck and my pants around my ankles, more than likely coated in semen and maybe wearing make up, you know they've got to me. That could be the only explanation.

The only way to stop this spreading further is to buy their book. Buy their book.

Squize.

#    Comments [7] |
 
Friday, July 02, 2010

All new and shiny ...

Two and a half busy days have passed since I finally got into gear and did a reskin of our blog (ok and an upgrade of the blog software). The idea has been there for quite a while now (I guess the first test rendering of the header image dates back to February).

I really wanted to do this post yesterday, but there has been some trouble with uploads that needed to be fixed before (and it seemed that 2 javascripts have been placed in the wrong directory).

Now say hello to our new appearance and while you're at it spread the word and if you're a true fan download the wallpaper :)

a_storm_is_brewing_wp_small.jpg
Just click on the image for the 1280x1024 version, oh and please remind me to do other resolutions, too (I need one at 1920x1200 and a 1680x1050 one, so if you like something else, just post a comment.

nGFX

#    Comments [11] |