Академический Документы
Профессиональный Документы
Культура Документы
PROJECT
BLENDER
TUTORIAL: PART 2
QUALITY TOUCH
THE USER EXPERIENCE
MOBILE GAMES:
HOW TO CREATE GAMES
USING JAVA PART 4
04 - DIGITAL STOMPIES
FEATURE
05 - MAKING GAMES IN 48HRS OR LESS
SPOTLIGHT
07 - MATT BENIC
REVIEW
10 - NEHE OPEN GL
11 - SULACO
DESIGN
12 - QUALITY TOUCH PART 2: USER EXPERIENCE
14 - SEPARATIONISM RANT..
MOBILE
20 - GAME DEVELOPMENT IN JAVA: IN CONTROL
TECH
TAILPIECE
24 - ITS RAGE BABY!
COMIC
25 - DIGITAL MAYHEM
05 12 18
RANKING OFFICER
R
Age is only a month away. This will mark a considerable change in the Stuart “GoNzO” Botma
focus of this month’s issue towards rAge and the game development talks
being hosted there. With a large proportion of our staff being presenters at
the event it’ll denitely be worth your time. So make sure you read the write-up SECOND IN COMMAND
(Nandrew’s article) of what to expect there, and don’t miss out. Rodain “ Nandrew ” Joubert
NAG’s Game.Dev Comp 10 begun on the 1st August. The goal: Create a simple,
yet fun, management game. With everyone attempting to get their grubby hands DESIGN SQUAD
on the R5000 (1st place prize) it’s got the makings of a great competition. If that’s Brandon “CyberNinja” Rajkumar
not enough to tickle your taste buds, then there’s also the R1000 cash prize to Paul “Higushi” Myburgh
the best new entrant. (‘New’ meaning anyone entering the Game.Dev competition
for the rst time)
CEREBRAL SOLDIERS
Best of all it’s free to enter, so make your way over to the Game.Dev section of the Simon “Tr00jg” de la Rouviere
Nag forums! (www.nag.co.za) Ricky “Insomniac” Abell
William “cairnswm” Cairns
Bernard “BurnAbis” Boshoff
Danny “dislekcia” Day
Andre “Fengol” Odendaal
WEB WARRIOR
Claudio “Ch1ppit” de Sa
WEBSITE
devmag.googlepages.com
http://www.garagegames.com/
to create their games and are using it for Marble Blast Ultra, a new Xbox360 title
their upcoming Quest for Glory 2 remake designed to take advantage of its multi-
as well. player capabilities, was developed for the
console by GarageGames and has already
received decent reviews from many online
sources. Marble Blast Ultra in centred
around trying to navigate your marbles
through vast 3D levels, using the terrain
and obstacles to collect gems and reach
the exit as fast as possible. It also features
competitive online play and leaderboards
http://www.gamasutra.com/php-
bin/news_index.php?story=10450
W
ell it’s certainly possible should be spending time working out clearly different aspects. There is the
to get a complete game how to create a splash screen for your core gameplay and then the peripheral
out within the 48 hours you may game when you only have 48 hours to extras like splash screen, credits etc
have left. To make a very rapid do the complete game. Of course you (Refer to Quality Touch - Dev.Mag no 4
game development project a suc- need to know the structures and rules for a full list). If the theme of the
FEATURE
cess you need a plan, the impor- of the framework to be able to use it contest doesn’t immediately give you
tant steps you will need in your properly. Grab your favourite framework a Genre dening game idea, spend
plan are highlighted in this article. and start your project. In fact a splash some time getting the peripheral
screen is a really good place to start
As indicated before (Dev.Mag issue developing until you have an idea of
3), a game framework is critically what you actually want to do.
important to very rapid game devel-
Your Framework is your friend. be able to use later, for example for
ideas of the game are working complete sitions between the game states and
Getting a great theme based idea the peripheral screens. Finish the help even spend some time allowing the
is often the hardest part of the screen, the splash screen and the player to set more and more options.
very short contests. Some themes default values for high scores. It is When it comes to polish you really
may give you immediate ideas, while important to remember that the com- do not want to optimise code, or nd
others may take some time to give pleteness of the game is heavily better ways of doing things that already
you ideas. The most important thing impacted by the quality of the other work. In a contest the only polish that
about whatever idea you get is that it screens and not only of the game idea counts is the bits that the judges will be
must be do-able. When you get your you are implementing and you should able to see and feel in the game.Bugs
idea ask yourself, “How long will this therefore complete these screens are a terrible reality in all computer
take to do?” Just remember that you before polishing your actual game. software development and in game
should at least double, triple or even development they can be terribly elu-
quadruple your time estimates to get Based on the time left in the contest you sive to nd. Whenever you reach a
a better idea of how long its actually need to decide if there is time to polish point in your game development where
going to take! If the answer is more the game play, adding all the little extras you have a stable, working game you
than the time allowed you may need that will earn you bonus brownie points, should make a backup. The number
FEATURE
to simplify it. Complex ideas can or if it’s time to sleep. Typically by this of people who have wanted to enter
often be simplied, for example that point you’ll be pretty sick of playing and a contest and didn’t because their last
cool RTS idea could be turned into a replaying your game, you are getting change broke something is very high,
turn-based game instead. tired from not enough sleep and your don’t fall into this trap. Whenever you
family is probably wondering where you encounter a bug while play testing the
A good strategy for getting the game are. If you submit your game at this game, you must try and sort it out as
idea into the game is to prototype it point you’ll probably be in the middle of quickly as possible. If trying to x the
within the Game screen of the frame- the pack. Spending some time to add all bug takes too long, rather roll back and
work. If the prototype takes too long the polish extras could lift you out of the recode the latest idea. As a great mind
at least it’s already in the framework pack and make your game something once said “If its complicated to code,
and can be entered into the contest. special. its even more complicated to debug!”
The prototype should include the
key design ideas of the game, this If you decide you have enough time left Entering extremely rapid game devel-
includes all the ideas that will make to make improvements on the game, opment contests is great fun. You know
the game fun, and must be clearly and you really can go the full 48 hours you are competing against people with
linked to the contest theme. Unlike without sleep, it is time to add some similar limitations as yourself, and the
normal game prototyping where you polish. Spend your time wisely as you winners are typically the people that
only need graphics once the game want to make as many very visible know their tools the best. By entering
play is ready you should be including changes as you can, with the least these contests you are pushing your
the graphics as you develop the pro- amount of work. Good places to nd limits and abilities. Success in these
totype. Once the prototype is done these sort of changes are, improving contests comes from knowing your
your game should be playable, it the background images, better special tools and having a good understanding
should clearly comply to the theme of effects, more sound effects and pos- of the frameworks you have available.
the contest and have the key aspects sibly adding a credits screen if you left CAIRNSWM
Matt Benic
around the world ranging from South Africa to America, Australia and more. Dev.Mag recently
interviewed Matt Benic, one of the creators of Smallfry Mobile, to nd out more
Who is the Smallfry Mobile team? the underwater theme for abYss because, quite frankly, space
Currently the core Smallfry Mobile team consists of myself and war shooters had been done to death. It also allowed us
to make use of a unique and colourful look that really makes
and Chris Tsimagionnis. We share programming and design
the game stand out from similar titles.In addition to abYss,
responsibilities, while I also handle the business side of things.
SPOT LIGHT
we promote and sell Diorgo’s game Demolish, which is an
In addition, Diorgo Jonkers creates our art assets and plays a
action platformer that casts you as a lone warrior out to retrieve
large part in the design process. a magical artifact stolen by an evil wizard. We will soon be
releasing a colourful typing game called BubbleBee QuickType
What inspired you to start Smallfry Mobile? that should appeal to the SMS-mad masses. It is a relatively
simple typing action game, but it looks great and is devilishly
About 3 years ago I got a new cellphone and was amazed at
addictive. BBQT will also be our rst game to feature online
the quality of the games available for it. At that stage I started
high scores, and we’re hoping to keep that as standard func-
looking into what was involved in developing such games.
tionality in upcoming titles.
When Chris and I left I-Imagine the next year to go into more
‘traditional’ jobs, we both knew we needed to keep doing some When designing a game for a cellphone, what elements
kind of game dev to stay sane. We decided to start doing have to be approached differently that most people would
mobile development as it seemed like the most practical way never even think about?
to develop something marketable with such a small team and For me, the biggest issues are the controls and screen size.
with so little time available There have been systems before in which developers had to
released is abYss, an old-fashioned side scrolling shooter. In and game designs really have to work around that by being
the game you pilot a submarine through the depths of the economical with screen space and having well thought-out
ocean, facing deadly robotic sealife as you persue a mad control schemes.Another big element is the wide range of
scientist out to ood the world. Chris, Diorgo and I have all phones out there, each with their own quirks and issues, not
been gaming for ages, and enjoy ‘old school’ games, so we set to mention different screen sizes. Games should ideally be
out to create something old school with abYss. We settled on designed to minimize the impact of such designs.
in most cases. Our art assets are all created in Gimp, which
Do you think the current state of the cellphone game
is an extremely functional art package that more than meets
our needs.On the hardware side, we need to have a variety of market has any more room for growth and innovation?
of everyone we meet that has some unusual model that we’ve ‘killer app’ that will really represent the format. The market is
great moment, in a strange way, was nding a thread on a company one day?
right now
SPOT LIGHT
It’s a pleasure, and thanks
Y
et, convenient as it is, years already and still gets updates. A series of about 20 articles on topics
OpenGL still needs to be An announcement in July revealed their such as matrices, skeletal animation
learned. In this regard, there plans to revamp the old lessons with and particle systems are all available
are few places out there on the easier, clearer ones, courtesy of a for easy viewing. Between these and
Internet which are comparable to highly skilled team that’s recently been the regular lessons, the lives of many
REVIEW
the NeHe OpenGL tutorials as far assembled to manage the site. Addi- newbie 3D programmers are bound to
as catering to beginners is con- tional advanced lessons are also in the be made easier. Be sure to pop in at
cerned. NeHe Productions deals works, with a focus on making them as this website if you ever decide to dis-
with everything OpenGL-related, cross-platform as possible to stick with cover the joys of OpenGL usage - you
placing special emphasis on tutori- their cosmopolitan approach to teach- won’t regret it.
als and other learning tools.. ing. Of course, the tutorials aren’t the NANDREW
only good thing about this site. Last known update: 07-07-2006
Although not strictly game develop- http://nehe.gamedev.net
ment, any 3D devver wanting to get
started with this would be crazy to
S
ulaco is a South African handy for beginners who do happen to At its heart, however, this site was
OpenGL site that’s been run- work in Delphi/Pascal. built for power players, and power is
ning since 2001, containing a great As mentioned already, this site is very what you’ll get if you look around here.
deal of intermediate and advanced much community-based. Advertised is Some of the stuff featured is truly
tutorials on a wide range of topics. Quake To Delphi, a joint effort with impressive, and it would be a shame if
REVIEW
The site is run by two individuals, sourceforge.net to convert the original any OpenGL programmer was to skip
but tutorials are submitted from a Quake source into Delphi code. Links over this handy local site.
much broader community, mean- to indie websites, OpenGL resources NANDREW
ing more content for the user! and forums also feature, making this a
Learn how to use skeletal ani- comprehensive place for most newbies Last known update: 07-07-2006
mation, project shadows, load up to start. http://www.sulaco.co.za/
Quake 3 BSP les and even have
T
he points raised in the rst rmation of what is happening in the the game in the recycle bin. The oppo-
article of the Quality Touch game. Ambient sound are sounds site can also be true, if the player
can be considered as “Must which give tone to the game and help to wants to immerse himself deeper into
Haves” for creating a complete immerse the player in the world. Back- the world he might want to set ambient
game. In this article we’ll look at ground music is ambient sound and sound louder than the direct sound to
“Should Haves” to allow user to ambient sounds play regardless of what hear what’s going on.
will immerse the player further into The second look in this article is at the
the game. Games that are easy to The player should be able to manage visual outputs of the game and since
play and give the player a number the volume of direct and ambient sound this is where generally most of the
of options to make their experi- or turn either one of them off if they
ence better are more likely to be become a distraction or make the goes, the rst thing the game should
successful. game unpleasant to play. Tastes vary have is to allow the player to improve
Controlling the user experience game developers and players) and an graphical features. This could be
means allowing the user to manage unpleasant audio experience will nd dynamic lighting, shading effects and
the game.
DESIGN
the game. The real life environment be able to manage mouse (or other
around the player plays reects light devices) sensitivity to correctly relate
onto the screen and can darken what physical movement into game space.
he sees. By allowing the player to The player should be able to swap an
adjust the brightness of the game, input device for another one to create a
the player can counteract the lighting different feel for the game.
in his physical environment and see
what’s going on within the game. This could be a gamepad, joystick or
An easy option to give the player is game wheel and peddles.
the choice to play the game in
We’re the problem? idea decides to set off on his own jour- so little help and thus won’t get much
ney through game development, doing that’s useful. Finally, even though you
Yes, we are. It’s something we do, all the hard work along the way of set- think you’re keeping the game “yours”
instinctively as people brought up in ting up his own forum (with hundreds and not giving it away to anyone,
SA, it’s a part of our culture. We want of sections, each devoted to a single you’re still relying on other people to
aspect of the eventual game) and creat- help you make it.
DESIGN
independence.
ing his own website to wow people into
It’s true that in some cases being contributing art, time or money to his Building a game is a lot of hard work.
independent is a wonderfully good idea in the hopes of making it a reality. You don’t want to be working on things
thing, it’s just that when it comes to that don’t help you get your game n-
growing an industry, skill-base, inves- Newsash - that doesn’t work. If it did, ished, fun and playable. Yes, there’s
tor-base, favourable public opinion we’d have hundreds of games popping a place for websites devoted to com-
and a market at the same time (as we up out of the net-dreams of each geek pleted games (especially if you’re sell-
game developers have to do here) with webspace. Heck, we wouldn’t have ing them), but having hundreds of
So? development industry in SA because my forum!” isn’t going to make any one
there would already be one, with tons of them successful…
fanbase/circle and don’t bother talk- website, effort that isn’t going into your The “independent” in indie, refers to
ing to anyone else who already game. independence from publisher money
knows what’s going on. Those of to make games. Just like indie lms
us who have been watching all the But wait, you’re running your own site don’t have big-time Hollywood produc-
attempts over the years have seen so that other people can help you, ers funding them, or indie rock bands
this pattern play itself out time and except that so few people are going to don’t have deals with record labels that
time again: some guy with a bright see your brand new site that you’ll get pay their bills.
don’t owe your game to a publisher assistance where they can… games. The only way forward for our
because they paid you to make it. industry is to kill the separationist atti-
Technically, all the game developers In the end, we’re a small portion of a tude once and for all - if isolation
in SA that have made a game are small group of society in this country: worked, you’d all have jobs making
indies, except maybe the big places gamers that want to make games. games.
like I-Imagine and Devon Systems There’s no reason that we should all DISLEKCIA
(depending on if the guys in PE have insist on being kings of our own little
DESIGN
Being indie is not about being
alone
do so.
ing into the most important stage game. You could even use a combina- certain parts of development, espe-
in the development of your game. tion of iterative and incremental (build- cially aspects such as interface design,
Before I begin, I feel it is important ing one full piece at a time) techniques. gameplay balancing, and timing-critical
from regular PM. In game design, third part of project management. of your game, as well as developing
it is often difcult to determine supporting mechanics.
can tell if these will truly work the that you follow the stages presented to
DESIGN
way one intends them to. you in these articles. Prototyping may
ment. What this means is that you will mind that each phase of prototyping
be developing your game in waves. should be made up of its own 5 stages.
creating it). Once you are happy that The design stage will determine exactly game’s genre, and your own person-
the foundations of your game are in what happens in your game. It is during ality. You could, for example, design
place you can continue. this stage that you will design your incrementally using prototyping if you
levels, enemies, NPCs, dialogue, items, are creating a simple, linear, action
By following this system, you are quests, and anything else in your game. game, or you could design iteratively
ensuring that your game will, most Bear in mind that this stage is still not using traditional development if you are
importantly, have solid gameplay. It practical and you should be doing all of creating a complex, non-linear RPG.
can easily detect at what level in Having said that, I feel it is important to
your development the problems are address the issue of prototyping versus
occurring (if you encounter a bug in traditional development. In prototyping,
the third iteration, you know that the the developer will rapidly create small
problem will most likely be in the sections of the game and will either
second or third iteration). continue to build on those sections,
There are many advantages to itera-
is, however, important not to force the Sims, one can see that the fundamen-
player into any such situations. Since tal mechanics driving the game, such
each gamer is unique in their approach as the family or gene systems, have
to any game, it is unwise to limit their been designed, created and tweaked
Certain games require linearity while play. It’s senseless designing hundreds
others are nothing without the scope of resource gathering options if the
of choice they give their players. Linear- only reason to gather resources is sta-
ity is a valuable tool, as it simplies tistics. People play games for pleasure,
an interactive “movie” for the players nation thereof. Whatever your target
to indulge themselves in. The problem market is, you must make your game
DESIGN
with linearity comes into play where the enjoyable for it to be successful.
The Hook game’s core mechanics are not inter-
esting or dynamic enough to keep the Next month, we will examine stages
When designing your game, you player involved in the game. This can be 4 and 5, which will nally see you
should create certain goals that you caused by insufcient change or choice creating content for your game. Enjoy
would like your game to achieve. in the game, which leads the player to designing your game!
Examples of such goals could be to keep on a straight, often boring, line and GEOMETRIX
have the player completely enthralled will suffocate their game play experi-
by the sheer scope of the game (an ence. Choice can still be present in a
example would be the Elder Scrolls linear game, but a ne balance must be
series), or to have the player spend achieved to give the player an impres-
hours making decisions (the Civiliza- sion of scope, while at the same time
tion series), or to have the player leading them to a predetermined goal.
scared witless after playing the game An excellent example of linearity that
(the Doom series); it could even be creates the impression of non-linearity
something as simple as the rich, is the Grand Theft Auto series.
tangible feeling of games like Loco
Roco. When creating a non-linear game, it is
vital to have the groundwork perfected
If you keep these goals in mind before you begin designing the possible
during the design of your game, it paths a player can take. It is also impor-
will help you to create a particular tant to give the player sufcient goals or
avour for your game, something that rewards depending on which path they
will remain with the player long after choose. Many management or simula-
they turn off their machines and will tion games follow a non-linear design.
F
or this tutorial, we won’t need view (Numpad 1) and, in Object
that old cube, so let’s start off mode, add another plane. Scale this
The editing panel.
by removing it. Select it with your one to 3 times size as well. Move
right mouse button and, making snap objects and even vertices to the this new plane to the rear edge of
sure you’re in Object mode, click grid, so it can come in handy. Use it if the existing
DESIGN
the object menu at the bottom of your objects become misaligned. oor plane
the 3D view and click delete (or and align it
press ‘X’) to remove it from the Adding things neatly. You
scene. may need to
Press the Space Bar to bring up the move the
Now, let’s have a look at the 3D add menu. From here you can add view around
cursor. The little cursor is shaped like items to the world and have access to using the
a targeting crosshair and it dictates various editing functions. Objects are middle Make sure you’re in object
it around. It’s often easier to work numbers in the bottom-left edge of the Since our side wall will be the same
using the grid, so let’s snap the screen to see the degree of the transfor- proportions as the rear wall, we can
cursor to the gridlines to make our mation. You can type in numbers using simply duplicate the rear wall rather
lives easier. Press Shift + S to bring your keyboard if you want to be precise, than creating it again. Select the rear
up the Snap To menu, and select or hold in CTRL to constrain to xed wall in object mode, and click Object,
Cursor to Grid. This option is also units. Scale the plane to 3 times size. Duplicate (Or press Shift+D) to create
available in the Object menu under Now that we have a oor, let’s add a a double. Align this new wall to the
Snap.This menu can also be used to rear and side wall. Switch to front edge of the oor and the existing wall.
interesting to the scene now. In The lighting in our scene leaves some- little bit of extra lighting. Drag it above
top view and object mode, add a thing to be desired. To make things look a you scene so that you can have some
UVSphere mesh from the Spacebar bit nicer, we’ll change our simple lamp into light shining from above. In the Shading
menu. Accept the default values of 32 a spotlight. Select the lamp, and change panel again, look in the lamp tab for an
DESIGN
for segments and rings. Switch to the the shading panel by clicking the shading energy value and change it to about 0.4.
front view, and move the sphere so button or pressing F5. In the preview This will make hemisphere light dimmer
sphere is near the middle of the oor. After I had done a little bit of tweaking
You may need to move the camera with the light angle and placement,
object so that the scene is clearly repositioned the camera, and resized
visible in the render. Remember that the walls and oor, my nal scene
CTRL + ALT + NumPad 0 will move looked like the following. You can save
The shadow and spotlight tab. Change various
the camera object to match the view this le through the main Blender menu
lighting and shadow related settings here.
of the 3D window. Rendering the by clicking File, Save. We’ll continue
scene now should result in an image tab, click spot to change the lamp’s type
similar to this. to spotlight. You’ll notice the lamp now
You’ll notice that the sphere in the tab. I set it to 45 degrees for a more download from the Dev.Mag website’s
render doesn’t really look round due focused beam. Experiment with different content section.
to all the individual faces being values and see which outcome you prefer. CH1PPIT
PART 1: IN CONTROL
I
’d like to start this instalment of the tutorial off barSprite, initializing it and placing it at the bottom of
the screen in the same way as ballSprite.As before,
with some clarication on Java versions and
we render this sprite in our doPaint() method. In the
which are applicable to us, since some readers
run method, we determine what keys are held down
have apparently had a problem with this.
using the built in getKeyStates method.
Because the latest stable release of the WTK is ver- This method must only be called once per game loop,
sion 2.2 (2.5 is only available in Beta), we are using so we cache the results in the local variable keyStates.
MOBILE
found at:
very useful collidesWith method. Listing 2. TutorialCanvas after player lives and sprite
interaction has been added.
MOBILE
... public TutorialCanvas()
static Sprite barSprite; {
...
//Constructor }
public TutorialCanvas()
{ //run the game loop
... public void run()
try {
{ while(!exit)
ballSprite = new Sprite(Image.createImage(“/ball.png”)); {
barSprite = new Sprite(Image.createImage(“/bar.png”)); if(lives > 0)
} catch(Exception e) {
{ ...
e.printStackTrace(); int ballY = ballSprite.getY();
} if(ballY < 0)
ballSprite.setPosition(1, 1); {
barSprite.setPosition((getWidth()+barSprite.getWidth())/2, ballVY = -ballVY;
getHeight()-barSprite.getHeight()); }
} else if(ballY + ballSprite.getHeight() >
getHeight())
//run the game loop {
public void run() lives--;
{ ballX = ballY = 1;
while(!exit) }
{ else if(ballSprite.collidesWith(barSprite, false))
//update our bar position {
int keyStates = getKeyStates(); ballVY = -ballVY;
if ((keyStates & LEFT_PRESSED) != 0 && }
barSprite.getX() > 0) ...
{ }
barSprite.move(-1, 0);
} ...
else if ((keyStates & RIGHT_PRESSED) != 0 && }
barSprite.getX() + barSprite.getWidth() < getWidth()) }
{
barSprite.move(1, 0); //paint the canvas
} protected void doPaint(Graphics g)
... {
} ...
} g.setColor(0x0000ff);
g.drawString(“LIVES: “+lives, 10, 10,
//paint the canvas Graphics.TOP|Graphics.LEFT);
protected void doPaint(Graphics g) if(lives == 0)
{ {
... g.drawString(“GAME OVER!”, getWidth()/2, getHeight()/2,
barSprite.paint(g); Graphics.HCENTER|Graphics.TOP);
} }
} }
}
T
hey range from simple meth- but like ints, also have language and plat- (In many languages, bytes are
ods of merely storing data, form specic implementation that can pro- referred to as characters or chars)
used for such things as accessing data. They are perfect for storing large
specic data quickly or easy man- amounts of similar data when you
agement of dynamically changing C-Based pseudo-code of some simple know the maximum number of items
The base method for storing informa- int objectID1; // stores a single object ID to discard items from inside of list, as it
int objectID2; // stores a single object ID
tion in computer memory is the vari- int objectID3; // stores a single object ID is usually quite inefcient to keep track
able, which is a representation of a oat x; // the x element of a vector of any empty list positions other than
oat y; // the y element of a vector the current end element of the array.
single piece of data. While different
programming languages have their
own implementation of variables, the Arrays are also great when it comes to
standard variable types that exist in Arrays storing data that needs to be iterated
most of them are bytes , integer num- through, as you only need to increase
bers (ints) and oating-point numbers However, most games are complex your current index into the array to
(oats). enough that they need methods of storing obtain the next value in the list.
As their name implies, bytes are used way that is easy to manage. Not only is iterating through an array
byte in size. Ints generally store infor- Most languages accomplish this by simply you are working in the same area of
mation that is up to 4 bytes in size, evolving a variable into what is called an computer memory due to the linear
however some languages and plat- array, which can be best described as a nature of an array.
forms support 2, 8, and even 16 byte list of variables of the same type, that is
integers. Floats are also generally of a xed length, and is stored linearly in
TECH
oat y; // Y position of the vector
}Vector2D;
between different areas of com- These are but a few of the types of
//Rectangle Structure
puter memory) structure data structures available for computer
{
int top; // top coordinate of the rectangle programmers to use. In Part 2, we will
int left // left coordinate of the rectangle
int bottom; // bottom coordinate of the rectangle
Structures int right; // right coordinate of the rectangle move on to more complex systems that
}Rect;
While arrays are great for storing will allow for even easier code man-
//Graphic Image Structure
large groups of similar data together, agement and efciency.
structure
{
there are many times when different char lename[64]; // name of the le that is COOLHAND
// loaded for the image
types of data, requiring different int width; // width of the image
// (in pixels)
int height; // height of the image
types of variables, needs to be // (in pixels)
byte *imageData; // pointer to memory that has
grouped together. Generally these // been allocated to store the
// pixel data for the image
}Image;
types of data structures are called,
//2D Sprite Structure
quite simply, structures .Structures structure
{
are probably the most commonly Int ags; // bit ags for the sprite
Rect source; // rectangle dening the area
// within the parent image that
used type of data structure, as well // represents this sprite
Image *image; // pointer to the image that
as the most helpful. The idea behind }Sprite;
// the sprite is referencing
inconceivable joy to billions upon billions of people and is, in fact, considered a key element to nally obtaining world
peace. Or something like that.
M
arketing hype aside, rAge Free Stuff! takes your fancy). We’re talking about
really is the biggest thing Right, so free copies of the mag aren’t industry professionals and big names
to hit SA in terms of gaming, so the only thing. We’ve archived the coming to tell us what-for and how they
it comes as no surprise that the entire set of magazines onto promo- see the game industry today. Pick
art of game development rears its tional CDs lled with game development up some courage, ask them questions,
head there too. That’s right. In resources, projects, tutorials, links and show them your ideas. It’s bound to
a way that previous incarnations other handy tools for any wannabe be rewarding, as long as you don’t
have never seen, this year’s rAge game maker to get his or her teeth do something creepy like tattoo their
is going to go all-out on its into. Look out for ashy posters names onto your body. They will, of
game development section, com- and people wearing the Game.Dev / course, be involved with the talks and
plete with stands, keynote speak- Dev.Mag t-shirts to make sure you get workshops.
TAILPIECE
ers, free stuff, prizegiving events in on the action! For those of you enter-
and, of course, your friendly local ing NAG’s comp 10, we’ll be handing Your Place in the Limelight!
Dev.Mag. Want to learn more? out some sweet amounts of cash at the Yep, you read correctly - come show
Well, here’s ve things to remem- rAge prizegiving to those entrants who us what you’ve done and we’ll give you
ber when you go devving at rAge managed to get themselves in one of a projector time to show everyone. No
this year: the top positions. catch. These local dev spotlights will
be running in between the workshop
The event of the year just wouldn’t Throughout the expo, the gaming devel- only advertise your projects, but get
feel complete without the presence of opment crew will be running hour-long real face-to-face feedback and attract
the writers, designers and marketers sessions consisting of either talks or a few “oohs” and “aahs” at the same
responsible for your favourite monthly workshops. Speeches consist of indus- time. So start preparing something
e-zine. Expect members of the mag try professionals (some of them from now to bring to the table when rAge
to y, drive, walk and crawl their way amongst the ranks of the Dev.Mag writ- arrives.
to rAge, just for their loyal readers! ers) delivering talks on a wide range
of game development topics, such as If you weren’t going already, make sure
That, and the free t-shirts they get frameworks, development communities, you haul yourself to this mega-event at
so that you can identify the team on prototyping, evolution of game making the end of September! We’ll be waiting
the exhibition oor! Most of us will and more. When there isn’t a speaker for you!
be around for the whole rAge event, at work, audiences will be sure to nd NANDREW
ing out with some sort of menial task info on the following sites:
you run into any of them! Nope, this is not a national sing-off www.gamedotdev.co.za
www.prehysteria.org
has held in two years, but never before have such large amounts
(http://www.nag.co.za)
(http://www.gamedotdev.co.za)