February 23, 2010


Filed under: Uncategorized — wickedworx dev clone 1 @ 12:52 pm

Couple of screenshots from STICK ‘EM UP, soon to be released on X360 Indie.

Uses BOX2D for physics – working very well. Lots of explosions, rockets, particles… cool stick men, stick vehicles (cars, helicopters, and more…). It’s looking really good so far, and we’re in the final stages of the project. 1-4 player co-op, and VS.


February 15, 2010


Filed under: Uncategorized — wickedworx dev clone 1 @ 10:33 pm

sooooo here’s my news. keytar is still the same as it was 20 days ago… I’ve got a bunch of songs to import in to it, and once other projects are done, I’ll be moving on to that.

DEBT made it in to 1UP’s “101 free games” list. Cool!! The article is here: http://www.1up.com/do/feature?pager.offset=2&cId=3177782 ! The top scores still haven’t been beaten (and I doubt they will be – they are very good!)

I’ve been working on an X360 Indie game with Jon Colverson ( http://jjcgames.com/ ). It’s going well, and soon I’ll post some screenshots from it. It’s a 1-4 player co-op/vs side scroller, with cool physics, vehicles, rocket launchers, explosions, UFOs, and more… we’re on a pretty tight schedule as we’re aiming to have this done for the Microsoft Dream-Build-Play competition…. having been a combination of ill and busy the last few days, I feel like I’m lagging behind a little.. but I imagine I’ll catch up by the end of the week!

We’ve been using the Component-based architecture for this game… and so far – no problems. In fact, it’s worked far better than I could have imagined. We can build up new objects very very quickly, and re-use behaviours in many different situations.

This is an example enemy GameObject .xml – which shows the kind of building blocks our GameObjects are made up of:

<component type=”animate_character” filename=”Content\CharacterTest.xml” />
<component type=”position” x=”0″ y=”0″ z=”0″ rx=”0″ ry=”0″ rz=”0″ />
<component type=”humanoid_physics” w=”1.5″ h=”3″ bottom=”1.5″ />
<component type=”rocket_launcher” min_x=”-1″ min_y=”-1″ max_x=”1″ max_y=”0.2″ m_angle=”0″
part=”gun” vel=”15″ x=”0″ y=”0″ fire_rate=”1″ length=”1.1″ flip=”true”
object=”Content\Object_rocket.xml” control_type=”0″ can_slide=”false” />
<component type=”health” health=”15″ />
<component type=”team” index=”2″ />
<component type=”color” r=”255″ g=”255″ b=”255″ />
<component type=”ai_humanoid” x=”0″ y=”0″ z=”0″ use_width=”10″/>
<component type=”destroyed_sound” sound_cue=”Humanoid Explosion” />
<component type=”multiplayer_modifier” health=”50%” fire_rate=”-15%” />
<component type=”random_anim_enabler” anim=”baseball_cap” chance=”50″ />
<component type=”random_anim_enabler” anim=”glasses” chance=”15″ />
Communication between GameObjects is sometimes handled by messages, and sometimes just by calling a function on a known-to-exist Component within the object. If you want all Components in an object to be affected, send a Message to the object.. however, if you want to do a specific thing to a specific component in the object – calling a function is more efficient, and less hassle.
Compared to DEBT (which used a more standard ‘inherit everything from a base game object’ style game system), it has been a lot easier to re-use functionality. It’s also a lot easier to put together a new kind of object – just using the ‘shopping list’ technique, and adding a new component for any different functionality this object may have.
Components only have a few functions:
initialise (generic construction data passed in, register with render/update/physics/similar systems, etc..)
linkup (whole object has now been initialised, patch up anything that relies on this, e.g. if you’re the physics component, you might need to get your initial position information from your root object’s position component??)
unregister (being destroyed, unregister with anything)
sendMessage (message being sent to this component, react if needed)
ok bye.

Blog at WordPress.com.