Dev - Mag - 26
Dev - Mag - 26
INSIDE:
Part 2 of our LUMA interview A Introversion speaks about Multiwinia A Audacity explained A
More Blender A Did someone ask about Level Design? A Quad Trees A News + Reviews +
Other stuff too!
1
REGULARS
3 Editorial
4 Netbriefs
Features
6 Not so Introverted
Mark Morris takes some time out of his making-awesome-games time
to answer a few of our questions
Reviews
15 Glyph Hunter Braaaaaaaaaaaains! And lots of dying!
Development
19 Ever wondered about effective level design? Of course you have! Look
Level Design no further as we delve into just that!
28 Quad Trees OMG it’s long! But entirely worth the read! We take a look at using
Quad trees to represent 2D data.
37 Blender The only time you can say “Rigid Body” without slapping an R-rating on
Blender the front cover! Warning: Involves “solid objects”
Tailpiece
42 Game.Dev Comp History Part 1 of our Competition retrospective looks
at the first 10 challenges!
2
DreamBuildPlay is done, rAge prep- less to say, we’re all incredibly excited and hopeful.
arations are nearing conclusion and we’re all look- And proud.
ing forward to a crazy weekend where most of the That’s enough blathering, though. Now comes the
CAELESTIS
Claudio “Claudius” de Sa Dev.Mag staff and Game.Dev community will actu- fun part, where I get to tell you about all the things
ally meet each other, some for the first time. It’s that you’d already find on the index page, just in
DEMITTO CAELESTIS
odd to consider that, even though Dev.Mag has many more words. Most importantly, we have two
James “Calamitas” Etherington-Smith
been running for nearly three years, a large major- feature interviews this month – a first for us. One is
PULCRITUDO
ity of the people who contribute to this magazine an excellent chat with Mark Morris of Introversion on
Quinton “Voluptarius” Bronkhorst
on a monthly basis are still faceless pseudonyms to Multiwinia, and another being the conclusion of the
SERVIOS me. Such is the curious nature of an online venture, Luma interviews we started last month. We’ve got
Rodain “Venustas” Joubert
Simon “Tr0jan” de la Rouviere where contributors are so disjoint yet still rather in- another audio-related piece discussing the interre-
Ricky “SecusObdormio” Abell timately connected. lationships between bwumphs and blonks and other
William “Cairnswm...us?” Cairns
And all the above means the busiest month of the words that make spellcheckers cry, and our tailpiece
Danny “RecitoPessime” Day
Andre “Fengolus” Odendaal year will be over by the time you read this. Although goes back and looks at the history of Game.Dev’s
Luke “FrigusManus” Lamothe that last statement was a bit of a hopeful conjec- regular competitions, discussing what aspiring de-
Rishal “IntegerProprius” Hurbans
Gareth “GazzanusEnios” Wilcock ture on my part, mostly because I cannot imagine signers could learn from them, whether or not they
Sven “TergumChucciaios” Bergstrom a month that was busier than the last. More ac- have participated.
Kyle “ErepoCaudos” van Duffelen
Chris “LeoPenitus” Dudley curately, I cannot imagine the aftermath of such a
Herman Tulleken month; finishing the largest game project I’ve ever That’s it for this month. Read, enjoy and get out
been involved in as well as preparing for what is, there and make games!
NUNTIUS
Robbie “Squid” Fraser quite possibly, the most important event of the year
qualifies any month as Freakishly Busy. No person Oh, and finally:
DOMUS
www.devmag.org.za should need to endure many of these every year, rAge!
and I shall certainly look forward to a break after
CELER NUNTIUS
[email protected] the rAge dust storm settles. ~ Claudio, Editor
However, in hindsight, all the effort was well worth
This magazine is a project of the South African
it. By the end of it all, Game.Dev as a community
Game.Dev community. Visit us at:
www.devmag.org.za will have two complete Xbox games under its col-
lective belt, both of which were entered into a high-
All images used in the mag are copyright and
belong to their respective owners. profile competition where even the slightest hon-
ourable mention will have a potentially gargantuan
I’ve stealthily hidden a purple ninja somewhere effect for our little fellowship of developers. Need-
in this issue. If you find him; stop taking drugs
immediately! Also. Burning ducks. Why has no
one made this a basis for a game yet?
3
Shred Nebula Design Docu-
ments released
http://www.gamecareerguide.
com/features/603/documents_
of_newly_published_xbox_.php
released into open beta on Garage- zine will be published on the site.
Games’ InstantAction games portal The first fruit of this new arrange-
vate beta testing phase, puts play- detailing the creation of the game
ers behind the wheel of one of two from the perspective of project lead
4
Torque X 3D Engine now bun-
Retro-Remakes competi- dled with Softimage|XSI Mod
tion 2008 Tool Pro
http://oddbob.wordpress. http://www.gamedev.net/com-
com/ munity/forums/topic.asp?topic_
id=508463
Retro Remakes, a site dedicated to
the retro gaming scene and retro- The powerful, professional modelling and
styled games, have launched their animation package made by Softimage,
World of Goo is Gold
2008 remake competition. The more popularly known for its use with
contest, running till 6 December, Valve’s Half Life 2, is now included abso-
http://2dboy.
challenges developers to submit a lutely free with a Torque X 3D engine li-
com/2008/09/09/pretty-big-
freeware entry under any of 6 cat- cense. The Torque X Engine contains flex-
news/
egories for over £5000 total prizes ible game authoring tools built on XNA and,
to be claimed by the first 10 places with the inclusion of the XSI Mod Tool,
After a long, long wait, and a mas-
in the grand prize, winners of each should become a tool that every XNA de-
sive amount of evolution from the
category, and a special judges prize veloper would want to have at hand. With
original Tower of Goo prototype,
to be handed out at their discre- indie licenses available for only $250 it isn’t
World of Goo has finally gone gold.
tion. Entries are open until 2 De- far out of reach either.
Made by a tiny two-man team,
cember.
World of Goo is a construction-
based puzzle game that won the
2008 IGF Innovation award, an hon-
our previously bestowed on XBLA’s
Braid and PSN’s Everyday Shooter.
5
“As always, we will
live or die by our next
title, and in this case
it's Multiwinia.”
not so introverted
Having thoroughly enjoyed playing through the preview code of Mul-
tiwinia (Dev.Mag issue 25) and bringing our readers a first look at the game,
Dev.Mag decided to have with a chat with Mark Morris, the Managing Director of
Introversion. Perhaps he can help us find our missing Darwinian…
6
Rocket Riot and Blitzkrieg, took us a long time to 2007 coming up with, testing and rejecting lots of
get right. Basically we would try something, see if game modes before settling on the final six. We're
it was fun or not, and develop it. Multiwinia is all really pleased with the end results, and I'm sure
about fun and action, and if we weren't having fun that everyone will have their own favorite modes
with a particular mode, we would try for a while and maps. I personally love attacking in Assault.
and then scrap it if we couldn't get it right.
Mark: Just after we won the 2006 IGF (Indepen- Mark: Multiwinia and DEFCON are very different
dent Games Festival) award for Darwinia, we were games, so from a design perspective, DEFCON
talking with Microsoft about getting Darwinia onto didn't influence Multiwinia, other than a rather
Xbox Live Arcade. They were keen, but wanted unsubtle nod to DEFCON, included as a crate
us to include a multiplayer mode within the pack- power-up. That said, we had learnt a lot
age. At first we thought this would be a quick about networking and game stability
job, but over time, we realized that we were re- from our work on DEFCON. The prob-
ally onto something. Multiwinia was really great lem was that we had to go back to the origi-
fun to play and we decided to turn it into the next nal Darwinia code, which wasn't as robust as our
major release from Introversion. We had to work latter work. The result was that much of the code
really hard to get such a variety of maps and dif- that we had written for DEFCON needed to be re-
ferent modes, but we are really pleased with the written for Multiwinia.
results!
Dev.Mag: What hurdles did you encounter
Dev.Mag: How did the design process for with the development of Multiwinia?
Some of the modes were really obvious, like King of variation in the maps and the different
the Hill; but the more complex modes, like Assault, game modes. We spent most of
7
main effort; developing great new games. As always, we
will live or die by our next title, and in this case it's Multi-
winia. Keep your fingers crossed for us!
Dev.Mag: What was it like working with the Xbox Dev.Mag: First you rattle our collective gaming
360? minds with Subversion, and then we hear about
Chronometer. When are we going to get some
Mark: The 360 is a really great platform to work with. info on this? When do you plan to release it?
The console itself is basically a PC, but they do some
clever stuff to get as much out of the hardware as pos- Mark: *smiles roguishly*
sible, this meant that we were able to get a basic port up
and running quickly, but the real challenge is getting the Dev.Mag: How does your design process work in
performance up. Of course we are still a little bit off the general? How do you get your wild ideas
Live Arcade launch, so you'll need to ask me the question onto paper and then into a solid game?
again in a few months!
Mark: We have a very relaxed and free flow-
Dev.Mag: Was it difficult to adapt the Xbox con- ing design process. Chris has most of the big
trols? ideas and then he’ll go away and jam for a
few months. It probably takes him about six
Mark: Multiwinia was designed with the 360 controller in months, working part time, for him to come
mind, but it’s Darwinia that is giving us the most trouble. up with the core of a game. At that point we
We are nearly there, but we did think it was going to be a bring in Gary; he is our Chris multiplier. Gary is
much easier job than it actually turned out to be. I think great at seeing the themes that Chris has cre-
we have gone through about four or five control revisions ated and jamming around them. Show Gary
and I'm still not sure we are there yet! a map, and he’ll come back a week later with
six. During this time, the other members of
Dev.Mag: You've been going for quite some the team will be adding new features or
time. Do you foresee a shiny future ahead for you extending ideas as directed by Chris.
guys? Once we start to run out of money,
we all get scared and we work like
Mark: We're in a very strong position now. We're pretty mad for a few months to get
well known in the industry, and our back catalogue of the game bug free. Sound
games still sells in reasonable numbers. We have a few simple?
ports in the pipeline, which should help to support the
8
Dev.Mag: Do you plan on releasing Darwinia mer- very, very hard to make a great video game, but if you want
chandise? Those Darwinians are a hot commodity. it enough, you'll get there!
Mark: We already have a store full of cool Darwinia stuff. Dev.Mag: After working on the Xbox, do you still see
Check out http://store.introversion.co.uk the PC as your main platform?
Dev.Mag: The entry point for great indie games is Mark: Yeah, we will always be principally a PC developer.
getting higher and higher? Don't you think it is dis- The PC is an open platform and that means that nobody
couraging for beginners? pushes us around or tells us what to do. We are fiercely
independent, and whilst I'd love to see our stuff on other
Mark: Indie games are getting bigger and better, and there platforms, the big boys need to understand that they can't
are more and more tools out there to support the develop- have a hand in the design process. That said, Microsoft
ment effort. I'm talking about the likes of XNA. This does have been really helpful and have given us loads of feedback
make it a lot harder for new people to get set up and pro- on how to improve Multiwinia.
ducing games, but I don't think that is a bad thing. It is
w ee t
an d S
Short
Mark Morris
Peanuts or Raisins?
Diablo 3 or StarCraft 2?
DRM or No DRM?
Mark: Listening to DRM-free MP3’s whilst eating peanuts and playing StarCraft 2.
9
Last issue, we featured Luke Lamothe from Luma, talking about
their latest offering, BLUR - this issue, we finish off by talking to BLUR’s
lead artist, Chris Cunnington, and creative director, Dale Best, about some
of the challenges they faced bringing out this anticipated offering!
BLURRING
The lines 2
10
Chris Cunnington
Dev.Mag: As lead artist on the BLUR project, The beauty of the InstantAction platform is that it but it got changed slowly into the world it is now.
which aspects brought new challenges? is able to load any game engine – obviously with a Now it is awesome; who can complain about a
few tech changes – into the browser. So when we level filled with Palm Trees? Reactor Station was
We came into BLUR just off the back of MINI#37. set out creating BLUR, we never limited ourselves great fun to make. We wanted an industrial, pip-
With MINI we had been very restricted by TGE in at all with any thoughts of, “It’s an in browser ing filled world, but went wild with it when we
the way we produced the road & pavement sec- game.” We created it as if it was a standard PC added a huge glowing reactor to the scene. So
tions, not allowing us to make flowing, curved game. We actually only got it into the browser yeah, worlds with more detail are awesome, even
roads with textures that followed the curves. So very late on in the project. The only limitation we though racing games still don’t let you get to the
heading into BLUR one of the first things I wanted then set on ourselves was file size. We wanted to level of detail needed for a modern FPS.
to re-engineer was our road production. The out- keep it small and neat so that people don’t need
come of a couple of weeks work was a modular to download huge amounts of data.
system, that allowed for completely flowing sur-
faces. The drawbacks were that for each single Dev.Mag: Working on worlds with good de-
road section, I had two sections, one you see tail has its perks. What was your favourite
and one you don’t. The visual improvement over map or scene to create?
MINI#37 completely outweighed the drawbacks
of handling double the art assets. Otherwise, we Hmmm, that’s a tough one! Each level has its own
generally pushed the bar as much as we could, as unique quality that jumps out for me. SkyCity was
we always will, allowing a huge visual leap! the first to be built, and I really dig the shiny clean
feel of this world. Par-
Dev.Mag: With developing for a browser adiseCove was planned
environment, were there any art limitations, to be more a gritty,
compared to desktop games? graffiti-cum-old–Eu-
ropean, coastal town;
11
Dev.Mag: As an artist, what ‘ideal’ map would
you have made?
12
Dale best
Dev.Mag: What part did you play in the overall pro-
duction of this game?
13
Dev.Mag: If you were to make another rac-
ing game for InstantAction, what would you
choose?
14
http://www.gamedev.za.net/filecloset/data/files/589/GlyphHunter.zip
There exists a theory; that to truly express your hatred of the zombies in Glyph Hunter,
would bring about a black hole of contempt, capable of devouring the universe and replac-
ing it with something even more frustrating. There is conjecture that this has already hap-
pened.
Chris “Braaaaaaains” Dudley
15
That said, this is not a horrible game in any way. This is where the aforementioned zombies come
While a mixture of dungeons, monsters, and swords, into play, with their unsettling obsession of having
is hardly the most innovative combination in the in- a chunk of cranium for dinner. The zombies don’t
dustry, for local indie developer Rodain “Nandrew” merely gang up, they swarm. They amass. No mat-
Joubert to take those elements and create a game ter how many times the player shoves the business
as enjoyable as this one is quite a feat. Such a lot of end of a sharp metal object into their faces, they
quality has been packed into this title, that it is easy pick themselves up and stagger on, with a chorus of
to get drawn into the action and forget the generic “You’re never gonna keep me down!” A quick fireball
‘magical quest’ storyline. will turn them into a zombie flambé, and send their
The meat-and-potatoes of the game involves hack- tortured souls back to hell permanently; but mana
ing, slashing, and various combinations of the two has to be used sparingly if the player is to make it
deadly assaults. The tutorial gives you the gist of past the ghouls, and to the haven of the next save
the simple gameplay, throwing a few enemies at the point. Once there, they can rest assured with the
player to get them started. After that, the game knowledge that the next section will prove to be far
lets the player get to the carnage, with the occa- more difficult.
sional pop-up informing them of their progress. For The sense of euphoria that the player receives upon
the most part, the gameplay is cut-and-dried; hack slipping into safety with their avatar on the verge of
through monstrous hordes to a certain point, flip a a grisly death is so immensely satisfying, that they
switch, slash all the way back through more mon- will suddenly find themselves unable to tear away
strous hordes. from it, striving to reach ‘just one more checkpoint.”
Along the way, tension and addictive frustration The addiction lies in the difficulty though - be warned
mounts as the player watches their life slowly dwin- - this is not the most relaxing of games, but still a
dle. Mana steadily drops as they frantically attempt high quality production, coming out of the local dev
16
http://lostgarden.com/
Lost Garden
Claudio “Chippit” de Sa Solid game design knowledge is traditionally kept close to the hearts of
those who possess it; rarely does one find people willing to divulge their insights
into the art and even rarer still are those who are willing to do so regularly, for no gain
whatsoever other than the simple act of seeing others benefit because of it.
17
“Game design insights
posted on Lost Garden
Daniel Cook is one such person. Also a contributor are well presented and
to the well-known development related sites Ga- offer incredibly handy
meDev.net and Gamasutra.com, Cook – under the knowledge.”
moniker Danc – helms a game design blog named
Lost Garden, where he regularly posts insightful
game design essays and thoughts, provides free
hand-drawn art for game prototypes, and occa-
sionally challenges his readers to create game
prototypes based on his design and theme.
One such challenge, concluding just last month,
tasked developers with creating a game in which
world shadows are an inherent part of the game
dynamic. A player would need to lead mushrooms
harvested from the world back to a ‘home’ point.
Since the mushrooms would shrivel and die in the
sun, the player would need to hug dynamically
changing shadows created by the changing time
of day to achieve the best performance.
The game design insights posted on Lost Gar-
den are also well presented and offer incredibly
handy knowledge for the indie developer. In fact,
all the offerings on the site will be invaluable for
an independent game developer: design chal-
lenges to test your skill; design essays to impart
useful tips; insights and knowledge; and artwork
to facilitate your masterpiece creation. All in all,
a priceless resource that should live on anyone’s
bookmark list.
18
Looking at
Level Design
Paul "Nostrick" Myburgh
Have you ever had a really cool concept for a level of a game you
enjoy? Have you ever made a level, but it just didn't come out quite the way you
planned? Ever given up because you just couldn't find a way to get your (brilliant)
ideas out of your head and into the game? Perhaps, on the other hand, you have
never thought about level design or modding in the slightest; but someday you'd
like to give it a shot. Whatever your level designing experience may be, you are
reading the right article!
19
Here we aim to give you a grasp of the design aspect of
level creation; it’s a little something on how one might go
about the design process, the process by which you bring
your ideas into being, to create a playable and fantastic
level for all to enjoy! Although simplified, this explanation
should be effective enough to get you on your way. To
explain this process, we are going to use the example of
building a level (or track) in Track Mania. Explanation will
be as generic as possible, so that you may take these basic
concepts and apply them in other games as well.
To understand what makes a good level in a game, it’s
always best to know the game well beforehand; experi-
ment with the game play mechanics, and take note of what
makes the levels fun to play. There is no better example to
follow in level design than that set by the creators of the
game. The most downloaded and highly rated user levels
are also great examples, so you might want to find a good
website with a database of levels pertaining to your game
of choice. Start by gathering ideas from these designers,
and taking that inspiration to fuel your own creations.
Once kitted up with a bit of knowledge and inspiration,
it’s time to get started on the actual building and design
process. We have an idea, now how do we go about mak-
ing a track? Do not be intimidated by the ‘blank canvas’ of
the level editor; it is your playground, so treat it as such.
Just go at it with everything you have, and don't stop to
think twice. Begin by laying down the basic level design; Do not be intimidated by the ‘blank canvas’ of the level editor, it’s your
similar to sketching outlines on a drawing before you clean playground - use it as such!
up and shade in. In Track Mania, run tracks all around,
add loops, corners and little jumps. Just let loose; allow
that idea in your head to flow down your arm, into the
mouse and onto the screen!
20
Always begin rough; treat it as a draft. Don't be- people find beautifying a level/track unimportant, I'd
come concerned over little things such as how the say it plays a big role in the overall experience, but
player is going to take the first corner, or perfecting remember - don't overdo it! Sometimes less is better
the first jump. This is just a distraction and will be than more!
detrimental to your master plan; leave it for later. Finally, and most importantly, have lots of fun! It
Once you've experimented a bit with the rough should be something you do in good spirits and enjoy
draft, and found something that works, we move on as you design and play-test your very own creation.
to the next step; the flow. This is where play-testing If you are having fun, you will be more involved and
begins to play a role, as refinements to the rough- proud of your creation, and you might find yourself
ness of the level take place, shaping it into some- tweaking and play-testing to perfection right through
thing more playable. This is a very important step. the night!
Ask yourself; could someone else race on this track So, find a fun game, get those creative juices flow-
(or play through this level) without becoming too ing and just go at it. You might be surprised by the
frustrated? Make sure that the overall flow of your awesome things you can come up with. Happy level When design ideas run low, nature is
level provides a fun experience, while still providing making everyone! often our best resource
a challenge.
By first creating the ‘skeleton’ of your level, you
will find it easy to go back and add more interesting
and fun ways to link areas together, and fine tune
certain areas for an even better experience. You
should constantly have your mind focused on how
the first-timer to your level would experience it and
how they will either grow to like it or hate it. Never,
ever, forget about the end user.
Once finished with fine tuning the mechanics of the
level, the beautification begins. Try to add hints, such
as which way one should be turning next, or in which
direction you should be facing to make a jump, by
strategically placing surroundings. As much as some Trackmania has an excellent level editor The best part about designing a level -
which lets you imagination run wild! is testing it out!
21
22
Interested in making your own sound effects for videogames?
This month we'll be looking at Audacity and a few of the common effects that
can be used to turn your humble “blink-blonks” into fantastic “kaphwooms!”
Audacity
23
This article deals with the mildly technical side of You can also opt for a stereo sound format, but understand this article just the same, but try and
sound production in Audacity, so it'll assume that mono means a smaller file size and will usually do have a gander at it anyway. Also, be sure to grab
you already have a wave file loaded up and ready the job just fine unless you specifically need two your own copy of Audacity from http://audac-
for priming. In terms of format, you may want to channels. ity.sourceforge.net/. Right, now that we've
look for a file that's based on the standard PCM got all the details out of the way, let's look at the
WAV structure (it's the most common WAV file So, to clarify, you'll prefer these settings for an interesting stuff.
format, so you're probably using it already) with input file:
a 16-bit, 44100Hz quality (these details will be
shown in the info box to the left of the file when • PCM WAV format;
you load it up in Audacity.) • 16 bit;
• 44100Hz (or similar);
• Mono.
24
The Audacity effects
Select all, or part of the file that you've loaded up in Audacity (this can be done by clicking and dragging the mouse over the desired file component). This is going to be the
section of the file that you apply your effects and filters to. Now select Effects from the top menu. You'll see a whole list of neat things that can be done to the innocent
sound file which is now under your control.
We won't be looking at every effect that's on display, but a few of the simpler ones will be covered. What follows is a description of several effects, giving you their job,
their potential for game development and a few useful pointers to get you going in the right direction. Let's go!
Change Pitch
Technical Description:
Change Tempo
This effect alters, well, the
pitch of the sound. How Technical Description: This is the counterpart of changing
high or low the notes are, so to speak. You can plug in a spo- pitch. Do you want the same sound to play much faster or a little
ken sentence and decrease the pitch for a deep, manly-man voice bit slower than the one you currently have? Tempo can make a
or conversely increase the pitch to make it sound like a chipmunk. “bwooooooooooom” into a “bwumph,” and vice versa.
Wheee! Game Use: Maybe you want a quick and tiny explosion noise
Game Use: This is one of the most commonly used effects to tweak sounds. You may want but only have the Manhattan Project on hand. Or maybe your character is using a
to change the pitch of an in-game explosion. Perhaps you have a piano somewhere in your weapon with a high rate of fire and you've only got sound effects which last for at
game and you want to get several pitch variations of the same sound clip. Or you have a least two seconds. No problemo! Increase the tempo until you're able to justifiably
nice cartoony game where you want to take a standard set of sound effects and make them go “powpowpow” for as long as your character needs.
all cutesy by swinging the pitch up. Hint: By doing some extreme compression or extension of sound effects with the
Hints: This filter is great if you want to speak in your game but need to mask your voice or tempo changer, you'll actually start hearing some very, very weird things. This can
simply make it sound cooler. Lowering or heightening the pitch ever-so-slightly will greatly be rather neat if you're looking for some exotic and/or sci-fi sound effects, so give
improve the sound in your own ears, and you could potentially voice several in-game charac- it a shot.
ters simply by altering the way you speak each time and applying a pitch effect.
25
Fade In / Out
Change Speed Technical Description: Gradually brings a sound clip from zero
volume to full, or vice versa.
Game Use: A very specific effect which is probably most useful for
Technical Description: This function is the equivalent of chang-
tailoring background music or longer sound effects (power up and
ing both the pitch and tempo in one go. A higher pitch delivers a
power down sequences, for example). Can replace amplify in certain
faster tempo, and vice versa.
circumstances.
Game Use: If you're going to be using both pitch and tempo
change for a sound effect, this can be handy for doing it with one
effect.
Reverse
Technical Description: Puts the sound clip back-to-front, so that the
Echo (Echo) end plays first.
Technical Description: Adds a basic echo. Game Use: Can be used for a wide range of funky effects. If you're
Game Use: Handy for dramatic announcements or sound effects in keen to experiment with a sound, try reversing it and see how it comes
a cave. out!
Hints: Most uses for the echo will involve decreasing the default Hints: If you know how to use stereo tracks in Audacity (it's a more
delay time. A high delay time may sound good in certain areas (ex- convoluted process than you may experience in some other programs –
perimenting to find exotic sound effects is great) but generally it just check Audacity's help file for more details), you can reverse one of the
makes the effect rather confusing. channels and leave the other one playing normally. This occasionally
grants a really cool effect.
26
Amplify Remove Clicks
Technical Description: Increases or decreases the volume of the selected sound clip. Technical Description: This is the easiest way to remove that
Game Use: This is mainly to place emphasis on a certain portion of a sound. For example, horrible crackly effect that one typically encounters when using ama-
if you want an explosion to start off loud and then trail off, you can use amplification to tweak teur recording equipment. Make your sounds crisper and less ‘pol-
various parts of the sound. You can also use it to get all the sound effects in your game on luted’ with this filter.
acceptable volume levels. There's no point in your water sound effects drowning out the sound Game Use: If you've got ‘clean’ sound effects mixed with crumbly
of loud bangs, after all. messes in your game, it helps to apply this effect to the culprits.
Hints: If you're recording your own sounds, don't rely too heavily on amplify to fix your Hints: This isn't a perfect effect, so try not to rely on it too heavily.
volume. Making sounds louder will increase the chance of background noise becoming no- Rather make an effort to generate a smooth sound before it goes into
ticeable. Conversely, screaming into the microphone and then the Audacity editor. If you truly feel confident, try using the Noise Re-
reducing the volume probably won't get rid of the distortion that moval effect instead (this will require you to capture a separate noise
sometimes crops up. Use amplification for minor tweaking only. profile and then use it to remove noise in other parts of your clip).
In Conclusion
These are just a few of the simpler effects in Audacity. Fiddling with some of the more complex tools can lend more interesting effects, but the point
of this tutorial is to provide you with the basics, to be able to confidently tweak your own sounds and get rid of the more glaring problems in your
files. If you seriously want to go into sound editing and file fixing, it's worthwhile to consider finding a more powerful and/or specialised application
to do the job. Many programs come with sets of filters and tweaks that can offer you a wider variety of sound wizardry (useful in generating robot
voices, impacts and other common effects). However, do not to underestimate the power of a well-recorded sound and a few choice effects – after
giving it a shot, you'll wonder how you ever settled for your database of 1001 Free Sounds for your day-to-day gamecrafting.
27
Quad Trees
Herman Tulleken.
Quad trees are 2D data structures, useful for efficient representation of 2D data (such as images), and look-
up in a 2D space (where are those monsters?). In this tutorial, we focus on the implementation of quad trees that represent 2D data
efficiently; that is, where quadtrees can be used to compress data. Although quadtrees can be used with a variety of data types,
we will focus on colour data (images) in this tutorial. In part 2 we will look at more general applications, such as occupancy maps
and force fields. We also look at the properties of data that determines whether it is suitable to represent as a quadtree.
Quadtrees take advantage of the fact that cells in a grid are often the same as adjacent cells – for example, a red pixel is very
likely surrounded by other red pixels. Thus, we do not need a data point for every pixel, as we do when we use a grid – we can use
a single point for an entire section of the grid.
28
Implementation
Every node on a quad tree has exactly 4 or 0 children. A quad tree is always constructed from a grid that contains the raw data. The root
node represents the entire grid. If the grid does not have enough detail, no children are necessary, and the entire grid is represented by one
data item contained in the root. If, however, the data is interesting enough, every quadrant of the grid is represented by a child node. These
nodes can be further divided based on the squares of the original image they are to represent, and so on, until every piece of the image is
represented by a single node.
29
Original Quad Tree Quad Tree with Rectangles
30
Defining the Quad Tree Class
This class is very simple: it stores the root node and the algo-
rithms, which are explained in the sections below. Here is how
that would look in Java:
class Quadtree
{
Node root;
QuadTree(Grid grid){…}
Color get(int x, int y){…}
}
The node class is where most of the work is done. It should store its four
children (possibly all Null), and be able to handle construction and access
functions.
class Node
{
Node children[];
int x, y;
int width, height;
31
Detail Measure Algorithm
This algorithm calculates the amount of detail on a rectangle of the grid. How that detail is measured, depends on the application. For images, the average Manhattan
distance between colours and the average colour is a crude measure that often works well. The Manhattan distance between two colours is defined as:
Where ‘r1’ is the red component of colour 1, and so on. Note that the entire grid is passed to the algorithm, with extra parameters to indicate the boundaries of the piece
we actually want to measure. We also define a help function to calculate the average of a rectangle in a grid.
//Adds the color values for each channel. // Calculates the distance between every pixel in the
for(int i = 0; i < x + width; i++) region
for(int j = 0; j < y + height; j++) // and the average color. The Manhattan distance is
{ used, and
Color color = grid.get(i, j); // all the distances are added.
redSum += color.getRed(); for(int i = 0; i < x + width; i++)
greenSum += color.getGreen(); for(int j = 0; j < y + height; j++)
blueSum += color.getBlue(); {
} Color cellColor = grid.get(i, j);
colorSum += abs (red – cellColor.getRed());
//number of pixels evaluated colorSum += abs(green – cellColor.getGreen());
int area = width * height; colorSum += abs (blue – cellColor.getBlue());
}
// Returns the color that represent the average.
return Color(redSum / area, greenSum / area, blueSum // Calculates the average distance, and returns the
/ area); result.
} // We divide by three, because we are averaging over
3 channels.
// Measures the amount of detail of a rectangular re- return colorSum / (3 * area);
gion of a grid }
Color measureDetail(Grid grid, int x int y, int width,
int height)
32
Construction Algorithm
The construction algorithm can be put in the constructor of the Node class. The constructor of the actual QuadTree class simply constructs the root node. The al-
gorithm is simple: the detail is measured over the part of the grid that the node is meant to represent. If it is higher than some threshold, the node constructs four
children nodes, each representing a quadrant of the original rectangle. If the detail in the rectangle is lower than the threshold, the average colour is calculated for
the rectangle, and stored in the node. The threshold value passed to the function is often determined empirically – that is, you change it until you get what you want.
Obviously, the smaller it is, the more accurately the quadtree will represent the original data, and the more memory and processing time will be used.
// Constructs a new Quadtree node from a grid, and pa- children = new Node[4];
rameters
// that indicate the region this node is to represent, //upper left quadrant
as well as children[0] = new Node(data, x, y, width/2,
// the threshold to use to decide wether to split this height/2);
node further.
Node(Grid grid, int x, int y, int width, int height, //upper right quadrant
threshold) children[1] = new Node(data, x + width/2, y,
{ width - width/2, height/2);
this.x = x;
this.y = x; //lower left quadrant
this.width = width; children[2] = new Node(data, x, y + height/2,
this.height = height; width/2, height - height/2);
33
Access Algorithm
The access works as follows: if the node from which the method is called is a leaf (a node without any children),
that node’s colour is returned. Otherwise, the call is delegated to the child node of the correct quadrant. The
method is shown below:
// Returns whether this node has any children. return ((Node) children[0]).get(i, j);
boolean isLeaf() }
{ else
return children == null; {
} return ((Node) children[2]).get(i, j);
}
// Gets the colour at the given pixel location. }
Color get(int i, int j) else
{ {
if isLeaf() if(j < y + height / 2)
{ {
return color; return ((Node) children[1]).get(i, j);
} }
else else
{ // Decides in which quadrant the pixel lies, {
// and delegates the method to the appropriate return ((Node) children[3]).get(i, j);
node. }
if(i < x + width/ 2) }
{ }
if(j < y + height / 2) }
{
34
Real-world Implementation Debugging Tips
The typical real-world implementation will differ in sev- • Implement a way to visualise the quad tree, even
eral respects from the simple implementation described if the quad tree does not represent an image. In addition
above: to the normal visualisation, also implement visualisations
that:
• Integers will be used to represent colours in the o render every square in a different colour (see exam-
raw data and Nodes, rather than Colour objects; ple algorithms http://arxiv.org/abs/cs.CG/9907030);
o render outlines of blocks over the normal visualisa-
• Intermediate values of colours will be stored as tion.
floats, where component values are scaled to lie between • Implement a visualisation of the error of your quad
0 and 1; tree representation against the original;
• For benchmarking, implement node count methods
• Whatever detail function is used, its output will be for counting:
scaled to lie between 0 and 1. (This makes it easier to o all nodes;
determine a correct threshold); o all leaf nodes.
This is useful to make sure that a quad tree is indeed a more
• Adding several hundred (or even thousand) red, efficient representation of you data (for example, white
blue and green values will cause overflow problems. The noise will be better represented by a grid).
summands are often scaled before they are added (for
example, the division by the area can be done before they
are added to the sums);
Resources
Calculating the average is expensive; where it is used as http://www.ics.uci.edu/~eppstein/gina/quadtree.html A list of quadtree re-
part of the detail measuring algorithm, it will be calculated sources from Geometry in Action.
separately, and passed to this function, so that the value
can be reused. Downloads
You can download examples of implementations in Java and Python on code-spot:
http://www.code-spot.co.za/2008/10/06/quadtrees
35
36
Blender
RigiD Body Physics
Claudio “Chippit” de Sa
Rigid body dynamics is a term used to describe the motion and behavior of solid physical objects;
simulating such things as friction, gravity and collision responses, in the six degrees of freedom that describe the state of
most physical objects. A movement along any of the three dimensional axes is referred to as ‘translation’, and is described
by the nautical terms of heaving, swaying and surging. ‘Rotation’ around the axes is described by roll, pitch and yaw. Rigid
body physics ignores the potential deformations of objects during collision and motion, and focuses only on linear momen-
tum (movement and force in a certain direction) and angular momentum and torque (governing rotation and rotational
force). This is commonly used in the current generation of video game engines and is also simulated by Blender’s Game
Engine.
37
Blender Game Engine
Scene set up
Physics engines need objects to operate on. Whilst the bullet engine can op-
erate on complex objects; boxes, spheres and planes are the fastest and sim-
plest to use. I’ve set up a quick example scene using a haphazardly stacked
pile of boxes, a ball, a plane to represent the floor, and another plane for the
ball to roll down.
The key to a successful rigid body simulation is - as with the other simulations
previously covered - a good setup. Every object needs to have certain prop-
erties defined, the most important being their collision type and their mass.
All the relevant options are visible in the Logic context. Note that before you
place a large quantity of objects in your scene, you will need to define physi-
cal properties for each item individually. If you plan to have a lot of items in
the scene with identical or similar properties, it is often best to create a single
one, set up its collision properties, then make duplicates of it.
38
Object Properties
Rigid body objects are actually comparatively simple to set up and use. A
quick overview of each relevant option follows:
Actor: This object is active and will be evaluated by the game engine.
Ghost: This object will not collide.
Dynamic: Object obeys the laws of physics.
Rigid Body: For accurate rigid body calculations, including angular veloc-
ity and momentum, necessary for rolling motions.
No sleeping: Object will never enter a ‘rest’ state where simulation stops
running on it.
Mass: Total mass of the object.
Radius: The radius of the sphere that represents this object’s bounds.
Only necessary for a spherical collision setting.
Damp / RotDamp: Damping values for all movement and rotation.
Bounds: Specify object collision bounds for physics. If you do not specify
one of these, the collision engine will use the actual mesh. Choosing one
of these usually speeds up your computation time, however, so it is recom-
mended where possible. Within the bound menu are three settings.
Static triangle mesh: For complex shapes that do not move, commonly
used for terrain or static obstacles.
Convex hull polytope: Will use the smallest convex hull as the collision
Because our planes aren’t going to move, we don’t need to do anything
mesh for this object.
to them; they’ll collide with objects automatically. The other’s need a few
Sphere/Cone/Cylinder/Box: Uses the specified shape as a collision
changes, however. The boxes should have ‘Actor’, ‘Dynamic’, and ‘Rigid Body’
mesh for the object.
enabled, together with Box bounds. The ball is the same, but with spherical
Compound: The object is made of multiple compound shapes. Used for
bounds. Be sure to set the radius setting to match the size of the sphere.
more complex simulations where objects are tied together with child/par-
You’ll notice that the radius is represented graphically in the Blender 3D view,
ent relationships, to make more complex shapes.
though it’s often easier to see in wireframe mode.
39
Tying everything up
Once you’re confident that all your objects are set up, simply
press P or select Start Game from the Game menu in the
main Blender menu bar to start the simulation. If all goes
well, you should see the ball roll down the slope and strike
the boxes placed at the bottom, all in real-time. Press Escape
to end the game simulation when you’re done.
Once it completes, you’ll see that you can step through the
baked animation just like any normal keyframed animation.
You can also edit the IPO curve, just as you would do other-
wise. Note that the IPO curve also defines where an object
will be at the beginning of the game simulation. If you wish
to move an object after you’ve already recorded a previous
animation to IPO, you’ll either need to clear the IPO curve or
add a keyframe with the new position at the starting frame.
That’s all for this month. Next time we’ll get to actually using
the BGE for what it was intended. Interaction and making
games! Have fun till then.
40
41
G
L
Ea
ch
Lo Co
ok m
ou p
m ha
en t sa
tL fo le
r ss
es th on
so e
n Ga to
fro m be
m e le
ea De ar
ch ve ne
on l op d
e! -
A Retrospective glance at
Game.Dev Competions Rodain “Nandrew” Joubert
Part 1
Compared to most other game development competitions, Game.Dev's fondly-named “Comps” have always
stood out on one particular front: each new incarnation has always set out to challenge, direct and develop entrants within the
field of game development. Instead of the oh-so-typical “create a game about kitties and/or mudkips” mentality that many mainstream
events focus on, the Game.Dev competitions have always sought to home in on an aspect of game development that people don't always
consider, and try to train new developers in the techniques that it describes. Although some may frown upon this method and drop out
as a result, those who engage with the competitions often emerge from the experience as more mature and insightful developers.
Since January 2005, Game.Dev has worked to inspire and lead game developers with these competitions, and some truly intriguing
titles have come about as a result. What follows is an overview of early Game.Dev Comp history, along with the lessons that people have
learned along the way. Read on and be inspired.
42
Comp2 Circles vs Squares
GL GL
squares. The group was still rather young and
wide-eyed at this point, but the competition pro-
vided several entries from members who would
It's possible to make videog- later become influential components of the Game. It pays to study the classics.
ames, whoever you are, what- Dev group. In any game, it’s important to look at
ever your experience level. the fun factor first – you can get to the rest of it
later. Comp 2 produced some hearty entries from Game.Dev’s Comp 3 asked gamers to do a remake
people who used circles and squares to their best of famous old-school games (aside from a few hor-
The Game.Dev competitions had very humble be- effect to create a fun and engaging experience, ribly cliché ones such as Pong and Tetris). The re-
ginnings, as most things tend to. Comp 1 started limited to a simple graphics set and forced to fig- sults were interesting, to say the least. Some opted
off as a simple idea posted on the NAG forums ure out how they can make their game stand out to take the classics and improve upon old dynamics
in January 2005, before Game.Dev itself even ex- from a field of similar-looking entries. with the availability of better development tools and
isted. The concept was basic and the criteria were greater processing power. Others took even more
broad: make a game, any game, and post it on creative routes and merged several classics to cre-
ate an entirely new game using rules from each.
GL
the forums for judgement. The competition even-
tually produced five games, most of them using This competition was possibly the first to display the
the recommended development tool, Game Maker. game development maturity of entrants: the top
These entries were crude compared to later of- Great games can be made with games homed in on the most fun aspects of these
ferings, but they proved one thing: there was an the simplest of graphics. bygone offerings, proving that they understood what
interest in game development amongst gamers made great games great; adding improvements in
(who would have thought?). Even though some the correct places to make these titles even better.
people scoffed at the idea of such a 'childish' tool After all, everybody knows that PacMan is famous;
being used to craft games, anyone who bothered not everybody truly understands why. To excel in
to download this free application and take the game development, Game.Dev wanted entrants to
time to fiddle about with it was generally able to analyse the games they play more critically, and
produce results by the time the competition came adopt that special ‘game developer’ mindset that’s
Too often, game developers try to make a good game Playtesting and fellow Game.Dev’s Comp 6 decided to go in a slightly differ-
by adding more bells and whistles. Not enough va- developers are golden. ent direction and forced entrants to look at previous
riety in your project? No problem, just add more work for inspiration. Most new game developers are
enemies and abilities... Right? Wrong. A flawed quick to generate a fun or quirky title, but tend to
game doesn’t become better simply because you lose steam after they’ve finished a “full go” of the
add more features – it’s the core dynamic, that little Action games are difficult. They tend to be real-time game or realised that there were too many extra re-
kernel of your game which defines it and makes it and a lot of control leaves the developer: you can’t sources to generate easily. Comp 6 was very much
special. This was an exercise to create a few rules force the player to take a turn, deal a specific amount a discipline competition – people are often reluctant
that the game developer could twist and manipulate of damage and tailor the enemy response to provide to revisit their old creations, favouring a hop to new
to generate a massive variety of gaming scenarios, a balanced counter-attack. Every split-second mat- titles, rather than lingering with the old. But polish
and exercised the creativity and flexibility of devel- ters; which means that the developer needed a lot is important for good game creation, and most of
opers. This particular competition produced one of of help to make sure that the game felt ‘just right’ the successful games out there weren’t simply done
the finest games of Game.Dev’s early era – an of- no matter who played it. By the time Comp 5 came with one take – they repeatedly changed as develop-
fering titled Roach Toaster which stood head and about, a flood of new developers had entered the ment progressed, and no matter how heartbreaking
shoulders above the rest of the entries up until that forum and it fell upon the established crowd to help it may be to throw away a particular piece of code
point and raised the bar for all competitions that them get into the swing of things. This revealed or artwork and start again, it’s necessary to allow
followed. It didn’t have mind-blowing graphics. It a trait about the community which has successfully growth in your game where it’s needed. Successful
didn’t have a load of flashy scripted events. It didn’t lasted to this very day: an openness and friendli- competitors were also generally able to modify their
even have sound effects. It just had a basic roach ness which is crucial for allowing good game devel- games quite easily – they’d left enough room in the
generation algorithm and a few well-balanced roach opment. Whether an entrant was a development design for change, rather than creating a static game
busting tools that were meticulously considered; veteran or a complete newbie who had just learned with no opportunity for expansion. Remember to
providing a player with a simple experience that felt the concept of ‘player.x + 1’, feedback from the com- plan ahead when designing your game – you never
like an epic. munity was inevitably constructive and helped make know how it may change at the end, and it’s much
early, clumsy offerings into golden games by the end better to modify a small amount of code rather than
GL
of the competition month. Those who posted early being forced to restart the whole mess.
drafts excelled in this competition, because instead
GL
of relying on a single developer to playtest and hunt
Less is more. for bugs in their title, these entries had the feedback You can always improve.
and collective expertise of at least a dozen enthusi-
asts to back them up.
Comp5 Action!
44
Comp8 Consume!
GL
for inspiration and ideas. The idea for this Comp
came from Experimental Gameplay, a site known pulled out of a hat.
for its interesting prototypes, which was holding a
Style counts too. similar competition at the time. There were two
major points in this competition: firstly, the descrip-
tion was simply ’Consume’, affording a great deal of
flexibility to entrants keen to pump up their creativ- Comp 9 was odd in the way that the lesson it taught
Have you ever played a game with that certain X ity. Secondly, each entrant was required to submit was quite dramatically different from the one which
factor that made it really special? That feeling or two games instead of one. The result was that de- was originally thought up. After more than a year
vibe which turns an average Joe game into some- velopers had to learn the skill of prototyping – rap- of competitions (running one every two months),
thing a little more involving? Style is an elusive as- idly conceptualising and establishing the framework Game.Dev decided to engage developers a little
pect of game development and competitors found for potential games without getting bogged down in more and have them looking in rather exotic direc-
it difficult to define. In all respects, this was the details or long-term development. Prototyping is an tions. The premise for this one was therefore quite
most advanced Game.Dev Comp to date – not only incredibly important skill in game development: new creative: entrants were each given three words to
were people required to craft a game, but they had developers often try to make “the next big game” use, and all of their in-game graphics needed to
to grasp an abstract concept and try make it show and end up getting bogged down with a concept consist of imagery extracted from Google image
in their final work. To ease the process, this com- that often isn’t all that good. A far better idea is the searches based on these three words. This was
petition was once again oriented around remakes, rapid generation of several minor game concepts, meant to be another competition which focused
to ensure that game developers had a springboard allowing the developer to gather a broader range of on the generation of good gameplay, while forget-
to launch from instead of floating about in a haze. experience and browse through an entire collection ting about complicated graphics. Unfortunately, for
Many of today’s remakes often have some sort of re- of ideas to see which one works the best. some developers, this task was a little too restric-
vamp or stylish factor to make them more appealing tive – they found themselves developing games that
to players, whether it’s a particular colour theme, they didn’t feel entirely comfortable with, and the
GL
the type of sound effects employed or even just a results showed in these cases. Discipline is impor-
funky change of art direction. Once consolidated in tant in game development, but it’s also important
a remake, these sort of ideas can be carried over to remember that game development is an expres-
and used in original games, to put your own unique
Prototyping is vital. sion of your own creativity and enjoyment, and that
stamp on your work. the best titles are created when the developers love
what they’re doing.
Comp7 Style.
45 Comp9 Google it!
Comp10 Management Games
By the time Game.Dev had hit the double digits for its com-
petitions, it had gained enough influence and enough of a
following, to attract a sponsorship of a R10 000 (just over
$1000) cash pool for Comp 10. This was met with consider-
able enthusiasm from the community, and to do justice to this
cash sponsorship, it was decided that the competition would
run for an extra month, focusing on a particularly challenging
GL
Balancing is trickier than you
think.
46
Gear Count:
It’s time for our
favourite game!
Ho-down!
Go call your
mom.
OHsnap!
www.devmag.org.za
47