Monday, March 23, 2009

Self reflection ....

Hi all.

Back on coding CE again (at least for a few hours today) after spending a good deal of time coding and designing the backend for MYW, writing a tiny versatile CMS and doing some 3d for X.

So today I'm  going to ask myself why the hell I have done a few things in CE the way I did them (I bet you are a lot wiser now).

Let's raise the question if it is worth to add the extra amount of work needed to draw a hard line between the game's "engine" and the game's UI - for your average flash game.

You may have noticed that neither Squize nor me tend to make out lives overly easy when it comes to games, for some odd reason we both tend to try to give out very best for each and every game (even if it is a pain in the back) - well call that stupid.

Give me a good reason to split game and game (play) UI ...
The best reason I can come up with is: reusability, and it is also the least used one.

In most cases I can come up with there seems to be no reason to really split things, because the game is a one-of-a-kind thing. Even for games that share a good deal of similarites (like Wintertales and LogiMotion), a whole lot of things need to be rewritten in order to reuse the engine.

That leaves the reusability inside a single game. !?

WTH?

Inside a single game? Yep!

A good deal of our games either uses an ingame editor (although not usable by the player)  or uses an external editor to generate the level data. Mostly, but not always they share the same visuals. For instance the editor for Logimotion uses smaller tiles than the game itself (so have room for the tools and don't have to scroll the map). That is a good reason to split things between the UI and the "engine".
Another good reason is when you have a stupid designer and you just code - you know those guys tend to be smart and change the size of the assets as often as you should change your underwear.

So why question that and not do it all the time?

Well, it takes a good deal more planing to really split things up. in an ideal world, the "game" knows nothing about the UI, but it still has to control it (ie. update the score, display infos). In my case this is done using callbacks.
A good example might be a game we did (but still isn't playable online): CC

cc_game_00.jpg
(CC game, using 40x40 tiles)

cc_editor_00.jpg
(CC editor, using 32x32 tiles)

As you're meant to be able to play the game inside the editor (without leaving it), the engine had to cope with different tile sizes and environments.

So whenever the game needs to comunicate with its surroundings I provide a callback method, if I would have made it "the right" way, I should have used an interface for that, but ... hell you can overdo it too.

To make it easier and not having an endless number of callback methds I used only a few and gave them params (which are stored in the game's class as constants: like:

public static const UPDATEUI_INFO:uint = 0;
public static const UPDATEUI_BTNPLAY:uint = 1;
public static const UPDATEUI_ITEM:uint = 2;
public static const UPDATEUI_WIN:uint = 3;

Whenever you finish a level, the game would just call the callback provided for UI updates and pass the parameter needed.

And is it really worth the extra work?
Not always.

I like to spend that extra piece of work for games that require and editor or might have parts in it that seem to be a good start for reusing it in a second game. Sometimes you notice halfway through the project that you need to change something to make the game work again (ie. different tile size, or different UI), sometimes (like I did for CE) you notice that the game will be a one of and you cause yourself a good deal of fuzz for "nice code" only.

Well, lets get back coding CE.

nGFX


#    Comments [0] |
 
Sunday, March 15, 2009

Quicker than planned

I have that written on the front of my pants.

The penultimate preview of X is online now and panting for you to play it.

New in this are the options screens, which between you and me I'm really not happy about. I backed myself into a corner with using tweens and bitmaps for the majority of the text / buttons, which take ages to actually get into the game.
Once they were in I realised I'd messed up by not giving appropriate feedback on each selection. I should have re-done them, but it would have taken ages and been really boring, so instead I just dropped in a really cheap way to show the feedback.

If there's going to be a part of the game that really bugs me, it's going to be the options. But the rational part of my brain ( As opposed to the part that makes me want to delete the whole game and start again 'cause those options aren't as good as they should be ) is saying that people will only ever got to the options once or twice ever, that the pay off for the look & feel of the game text is greater than losing out on a bit of feedback, and, well, fuck it.

The main thing in terms of feedback about the options is the alternative control method ( Well two actually, but in a lame lazy way ), which to be honest I really struggle to get to grips with. I coded it a couple of days ago and obviously tested it, and after a while it wasn't too bad ( I'm kinda used to EveryDay Shooter on the psp so it's not a million miles away from that ), but since than I've not used it, and having a quick go today showed that I'd fallen out of the habit of playing X that way, and that I really didn't want to get back into it.
Not really giving it the hard sell am I ? Well it's a case of it's there if you want it, although to me the default method is always going to be better.

Squize.

#    Comments [10] |
 
Saturday, March 14, 2009

3rd from last

Only two more updates to go after this one, we're nearly there.

It's actually getting tricky now, as it's so close to being a final game, what I can and can't post. I don't want to give the whole thing away, but then I don't want to shut the door too early on you guys who have followed from the start.

In saying that the roadmap is as follows,
* build 19, the latest one, features the sound and music along with a couple of graphical tweaks and fixes.
* build 20, options so the new control modes can be tested.
* build 21, the global stats ( We've got something really sweet in mind that we're both really excited about. Not excited about the code, but the results should be way sexy ).

And then that should be it in terms of public releases. In my head I want the game to be finished next Friday, and then it'll just be a case of seeing what we're going to do with it.

For this build I've put a watermark in there. I was in two minds what to do, but I opted for the less sweary version ( I was going to put a harsh word onto the background, but figured that could just backfire ).
I'm not overly happy about having to do it, or rather feeling like I have to do it, but if it stops the game being spread in a beta version then all well and good.

Nearly there. It's really mad to think that it's just build 19. I've had some half days on it, and big breaks where real work has got in the way, but I've really not cheated ( ie worked on it for extra days but not said. I've had to "join" half days together rather than post builds after only working a couple of hours on it ) and to do a game like this in 19/20 full working days is pretty cool.
It shows what can be achieved if you have a real joy for the project, as opposed to an extended slog, and having pretty much complete creative control over it makes such a difference in terms of dev time.
We're going to have a really in-depth post mortem about this and see how we can transfer these things to client work to improve turn around.

Squize.

#    Comments [6] |
 
Friday, March 13, 2009

It's latin for Bullet Hell*

The results of the 4k compy have finally been announced, and it's been well worth the wait.

There are more great entries than your average porn film. Check them all out here and I'm pretty sure you'll be as impressed as I was with some of the stuff that's going on in 4096 bytes, it's just insane ( And you can grab the source for most of the games, which is even better ).

Without giving anything away ( In case you've come here first ), congrats to the winners ( And everyone who entered, you're all winners. Well, the two that came first and second are, the rest of us aren't ) and a huge well done to Pany for running such a silky smooth comp, you wouldn't believe it was his first time, good work mate.
Also thanks got to go to Michael and Chris for the great judging, it means so much more having people actually post considered responses about your work ( Would have meant even more if I'd won, but let's not dwell on the negatives, today is about the winners, not how you guys ripped my fucking heart out then stamped on it. Oh nothing ).

One last favour before you shoot on over there, the audience award is open now, so please show your appreciation to your favourite game and give it a little vote, every vote saves a kittens life, so don't have kitten blood on your hands, vote!

I'm off to find the $50 I need for that second prize, looks like that's another couple of pints of blood gone.

Squize.

* Bovis Abyssus

#    Comments [2] |
 
Monday, March 09, 2009

Time to leave the nest

Bit of a minor update for X++ in anticipation of the options settings.

So what does build 18 bring to the party ? Well lots of things behind the scenes ( Such as FlashJoystick support, which is so sweet. I swear a little bit of pee shot out the first time an asteroid hit a ship and the joypad rumbled ).

On the surface though it's not a world apart for build 17, not every new build is a huge step forward. The main ( Only ? ) user facing update is the option screen right at the start allowing the user to set the "quality" of their machine.

We've touched on the play back issues on previous posts in this little mini-series and it's now become the time to address them. Basically if you've got a good enough machine you get to play it looking all super sexy. If on the other hand you're stuck with a less than able machine, picking the reduced visual quality option will turn off some of the love and hopefully enable you to actually play it.

What would be really nice would be if any of you guys have had input problems in the past ( Due to the nature of the time based mainloop, if things over-run too badly then Flash can't keep up with I/O requests, such as reading the keyboard ) could give it a go with the reduced quality settings and give us a shout back in the comments about it ( Including your spec ).

I'm also going to post this over at FK.games for the first time in it's own thread, 'cause it really needs testing on a wide range of machines. I can almost picture the next hour being one of writing caveats in that thread...

[ Update, thread is here ]

Squize.

#    Comments [3] |
 
Friday, March 06, 2009

Art / Life / Art

< I wrote this yesterday, but then my net connection poo'd out on me, so it's a little bit past tense >

It's good to be back. My first free day for as long as I can remember ( This year at least ). It feels pretty damn great to be honest.

The main reason I'm free right now is that the Maths based educational project I was working on got cancelled the other day. There's a neat little story about life imitating art, indulge me a minute,

Story

Basically ( If you don't want to leave us ) an asteroid passed pretty damn close to the earth the other day.
The weird thing was that the concept of the game I was working on was to use maths to target a missile at an earth bound asteroid. So when I was in a meeting hearing how it was canned, we were all just a couple of hours away from starting over again and living in caves.

If you wrote it in a story it just wouldn't fly.

There's another game I'm close to based on the whole asteroids as the bad guys theme, and today I had a good crack at it again.

Where the development has been paused for such a long time, I'm not a 100% sure what's new and what's kinda new. So forgive any repetition.

The final flv is on the title screen now, and it looks great. It's really large in terms of filesize and ideally we'll be able to cut that down somehow and retain the quality, but it is a thing of beauty, nGFX has done some great work there ( It's worth watching all the way through, trust me ).
The player movement is less, well, shit, which is always a plus.
Options are in there now. Well, a button saying Options, I really wouldn't press it as you'll probably have to reload the swf ( Although you'll be able to look at our logo rather than a blank screen again, which is another new thing ).
( Adding that options button was a ton of work due to the curved text and the set in stone way I'd set things up. That'll teach me ).
The "play" options are in. They're all unlocked now so you guys can check them out easily, but in real life you won't see those options if none of those features are unlocked ( ie, pressing Play will just make the game play as you'd expect without an extra click ).
Notes are gone. They weren't that great so sod it, they're dead and buried.
There's a lens flair in the game now, although it's pretty subtle and is based on a "Chroma fan" rather than a usual flare.

I'm sure there must be some other bits and bobs, but those are the main things that spring to mind. As always, the latest build is here, thanks for taking the time to give it a bash.

Squize.

#    Comments [1] |
 
Thursday, February 26, 2009

Dreamworld

(Update on that):
e-onPotD2009.gif

So that's finally done. My own personal "get away from my beloved 3ds max and start with c4d" tour.

Basically I was a Max user since v1, so it's quite hard to forget about all the nice things it offers, though the deal for c4d was just that tiny amount better (price/what has the software to offer) so we switched instead of upgrading Max to work with Vista.

Now at first c4d was a shock. Nothing worked like it "should" a lot of things where at a different place or worked just plain different due to the very different background/history of the software.

As always it was so utterly depressing to not be able to do the easiest scenes, what should have taken just a few minutes to set up, now took a whole day.
When coding I and getting into a new language, I basically recode a very simple app, this helps to see the differences but I still can compare the code with other languages ... when I first started with AS3 I wrote this (you may have seen it).

Now there is something similar for me with 3d ... and this is the story (and it has pictures, too) ...


Lets start with the inspirational image:
20_walled_garden.png
It's one of my all time favs. An image from Magnetic Scrolls' "Jinxter" (if you have never heard of either the company or the game ... have a look here or here).

Lets start with creating the "guard"
c4d_jinxter_00.jpg
The low poly mirrored mesh.

c4d_jinxter_01.jpg
The smoothed (final) model.

Next to do on the list was the arc ...
c4d_jinxter_02.jpg
The arc with some additional stones, so far it wasn't all that hard ...

c4d_jinxter_03.jpg
OpenGL Display.

Now modelling seems to work quite well, on to scene composing (more images are comming).

c4d_jinxter_04.jpg
Final scene layout.

c4d_jinxter_06.jpg
Preview rendering, way to bright.

c4d_jinxter_07.jpg
Added some trees behind the camera, better now ...

c4d_jinxter_08.jpg
Final mode rendering, earliest scene layout, just some basic textures applied. The trees behind the arc need redoing, the cliff in the background is a joke and the plants in the foreground, well, I don't like them. Sky needs work.

c4d_jinxter_09.jpg
Final mode rendering, sometime inbetween the image above and the final layout. Some ferns update, added some ivy to the walls, remodeled the cliff and added the two statues, still some work needed on the nature part. The sky seems ok now.

guard_finished_small_400.jpg
The final image after a good week worth of work. Most of the plants have been replaced, redone. Done.
Get a larger version here.

Scene stats:
- 29.045.199 polygons
- 1 light (sun)
- 91 objects, 231 plant instances
- rendertime 1600x900 px: 2h26m.
- postwork: none.

And while I'm at it ... we have new shiny pong clock :).

nGFX




#    Comments [9] |
 
Wednesday, February 25, 2009

Twitter and the blog

That's one of my least imaginative titles ever, nice work.

Regular readers will know we've jumped onto the twitter bandwagon. Twitter, it's an odd thing. Totally pointless and quite self indulgent but very addictive for some reason I can't figure.

One major side effect I've noticed though is that it's given more weight to the blog. Twitter is like our side project, our experimental band with some friends, trite and simple and throwaway, whilst the lumbering beast that is the blog keeps floundering on, that things posted here now have to be justified a little more than before.

I wanted to write about how freelance forums bug me, more specifically freelance forums as part of more generic Flash boards ( Rather than things like elancers and all those nasty nasty ones ). I'm not going to single any out, as they're all pretty much the same level of dire.

I'm not sure what bugs me the most, posts like

"Hi, I'm really interested by your project, I've got 5 years experience in as1,as2,as3,php, ajax,ruby on rails,asp, dhtml ..."

That just rings alarm bells. Unless their Nan is really ill and needs an operation, so they're trying to raise money any way they can ( K, the Xbox is on eBay, I guess I should try and bring in as much extra work as possible inbetween shifts at McDonalds ), or they're shit. Or lying.
My personal preference is that they're shit. 5 years experience at anything ( Even McDonalds ) and you should be aiming higher than $100 jobs on a board.

or...

"Hi, pm me"

That to me reads as "Hi, I'm interested in your job, but not actually enough to contact you, as you specifically requested, but I'm so confident that you want to work with me, you can chase me up".
If you can't get the first part correct, ie contact the potential client, that's not really a flying start is it ? It doesn't bode too well for the rest of the project.
There's a little sub-system of this that burns me too,

"Hi, check out my portfolio ( But it needs updating, that's old stuff there, not my latest work )"

Quick translation, "Hi, I can't be fucked to pm you, you check me out. Oh, but when you do you'll find my work is pretty piss poor, but it's 'cause it's old, the new stuff is really good, it's just that I don't care enough to upload it anywhere. I don't care enough about my own public image to potential clients like yourself to spend an hour of my life to upload this new and fantastic latest work ( Which to be honest is as poor as the old stuff, I just learned how to use a new filter for the latest stuff ), but I'll do a first rate job for you."

...and finally...

"pm sent"

Yeah ? Really ? I'm glad you posted that, because email is prone to being lost isn't it. I'll double check my email every minute now I know I'm expecting something from you, thanks for the heads up, phew.
Is this some sort of pr thing ? Just another reason to post a post with a signuture with your link in ? Is it to ward off others ?
"Shit, I see DeathSlayer49 has gone for that job, I don't have a chance. If he hadn't posted about it I would have gone for it, but not now, now there's no point. His location says 'under your mom', he's bound to get the job, any client will find that a sign of professionalism"

But now of course we've got twitter, we can just go there and post these petty / I'd rather be doing anything than working right now observations and keep the blog free for the high brow things.

Squize.

#    Comments [12] |
 
Friday, February 20, 2009

Just throwing this out there

Since I started on X+++++ I've always had it in my head doing it as a d/load game too ( That's why it's 800x600 ), using Zinc to wrap it up in.

X_psp.jpg

I'm blowing hot and cold about this. I really want to do it, we could do something really cool. All the sounds and images would be a lot clearer and better, the title screen flv ( Which is in the current build, although it's only the first attempt ) could be HD quality etc. Basically it'll be a mega-mix of the game.

So I'm thinking about this, both of us are liking the idea, and the cost to the gamer is going to be a really nominal fee, $0.99 - $1.99. In all honesty, after seeing the game so far, and being friends just by the virtue of coming here, would you pay that ? Would you go through the hassle of getting money into your paypal account and all that extra hoop jumping ? Is it far too much trouble to do ( I'm thinking that no one here registered at the NFL site to play our Gameball Maize Maze game, and that's nothing compared to handing over money )

Is the game not worth $0.99 ? By that I don't mean slag it off ( I've had a pretty dog shit couple of days as it is, don't twist the knife any deeper ) but is just a prettier full screen version no big deal over a free online one which may have ads in ?
Is it the sort of game that is all well and cool to play in your browser, but not one you'd fire up to take over your machine for 20mins ?

Flipping it the other way around, what would you expect from a d/load version of a Flash game ? More game modes, regular updates, some other cool feature ?

Has anyone else given this a try ? To be honest every previous attempt I've seen has died on it's arse ( I was even checking out the donations feature on Kong last night, and games with 5 million plus plays have had about 20 people donating towards them. If I made $19.80 for 5 million plays I wouldn't be over the moon ).

I'm thinking this is a pointless and very naïve idea, I know it is and it's just an ego thing on my behalf that I want to see the game maxed out and sexy as fuck with it ideally paying for that extra love, but with all the talk recently of diversifying your revenue streams when it comes to Flash games, maybe it is worth just throwing the idea out to you guys.

Squize.
#    Comments [9] |
 
Thursday, February 19, 2009

Writing a blogpost about GYW posting on twitter ...

So ... thanks tothe blessings of web 2.0 (and the machinery of stupid terms) we're able to give you even more insight into the hard work that we call game development.

No, not only can you see what we're doing on your beloved develpment blog, but now have even more updates aorund our daily work (that is, if we can remember to do so) on twitter (http://twitter.com/GamingYourWay/) - so come on, be a follower.

And tomorrow we may be able to take over the world .... Hahaharharhehehehihihohoarghlphzgmph.

nGFX

#    Comments [0] |