December 3, 2009

excruciating guitar voyage : behind the screens 1

Filed under: Uncategorized — wickedworx dev clone 1 @ 12:21 am

Excruciating Guitar Voyage is only just entering development – however, I thought it might be nice to share a screenshot and explain some of the concepts used.

I’ve recently switched over from FMOD to OpenAL on all my projects… switching over didn’t require that much work, as I’d already got my own layer between the game and the sound library (wickedworx sound system), so it was just a case of filling in the blanks there. The only reason I switched was because I’d rather use a free library than one I’d have to pay a license for. If you’ve never used OpenAL, I’d recommend you take a look – the terminology may be a bit different, and the processor usage may be a bit higher (or at least, it was for me… using ‘generic software’..) but it’s not that big a leap.

While ‘project two’ (screenshots/full explanation coming *very soon*) benefits most immediately from this (with little alteration), EGV needs more work, as I will have to write a ‘virtual voices’/priority system for ambient looped sounds. There are likely to be many of these in different areas, due to the nature of the game.

OK – so here’s a screenshot of the WIP.

So, here’s a summary of some of the cool stuff you can see/not see in the shot:

  • Most obvious – the lightmaps. These are generated offline using a simple ray-trace system which takes the level geometry and creates a large lightmap texture for the level. Lights have position, colour, distance-of-influence, and brightness values set. Skies are not affected by lightmaps.
  • 2D bodypart animation. All the characters use a 2D bodypart/vector animation system.. kinda like a puppet – all of the sub-sprites of the character move and interpolate smoothly between frames. For example, this player character is split in to 8 parts – 2 for each leg, 1 for each hand, 1 body, and 1 head. Yes, that is my face.
  • Physics is supplied by Chipmunk Physics. I’ve added some functionality to allow things like platforms you can jump through from below, and sensors (I see this has now been added in a more recent version of Chipmunk anyway!). I found Chipmunk lightweight and easy to get along with.
  • Scripting is provided using my own “XML to Object” based scripting language. It’s very ‘game level’, providing things such as dialogue choices, inventory functions, character animation
  • I use a pathfinding based music loop system, to allow smooth transitions between two unrelated music loops, through defined intermediary loops. This needs an overhaul as, while it is working, it isn’t as flexible as I want (with layers, ability to jump out halway through a loop etc..)

Anyway, this is going to be taking a bit of a back seat while I finish off the other project – but I figured this is something I can share on here now, so I may as well!

1 Comment »

  1. Heh. Yeah, I only recently remembered that I had wanted to add sensors. Ultimately it took like 4 lines of code. :-\ Why it took me so long to realize that we may never know.

    I also recently added a one way platform demo after realizing how easy it would be using the revamped collision callback system that has collision begin/separate events. If you begin a collision a collision with a bad normal, ignore it until they separate again. Yay simple and effective!

    I look forward to playing your game!

    Comment by slembcke — December 3, 2009 @ 2:38 pm

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: