Professional Documents
Culture Documents
Dev - Mag - 07
Dev - Mag - 07
R E V I E W S : L E G E N D . O F. S H A D O W : G A M A S U T R A
DEV.MAG ISSUE 7 2006
I N T ROV E R S I O N , M A R K E T I N G 1 0 1 : B R A N D I N G
CONTENTS
REGULARS
03 - ED’S NOTE
04 - DIGITAL STOMPIES
FEATURE
06 - ROACH TOASTER POSTMORTEM
SPOTLIGHT
08 - INTROVERSION
REVIEW
12 - GAMASUTRA
13 - LEGEND OF SHADOW
DESIGN
15 - QUALITY TOUCH PART 3: ADDING THE QUALITY
MOBILE
25 - GAME DEVELOPMENT IN JAVA: PART 5
TECH
TAILPIECE
33 - MARKETING 101: BRANDING
COMIC
36 - DIGITAL MAYHEM
06
05 13
08 34
RANKING OFFICER
Y es, rAge is here. Or already past, if you weren’t lucky enough to be at the
expo when you got this edition of Dev.Mag. If you didn’t go, I can only stress
that you make every effort to be there next year, because it’s a pretty big event
Stuart “GoNzO” Botma
WEB WARRIOR
Claudio “Ch1ppit” de Sa
Robbie “Squid” Fraser
WEBSITE
www.devmag.org.za
Blog: 3pointD
http://www.3pointd.com/
“The Metaverse and 3D Web, as blogged by Mark Wallace and friends”. Sounds
simple enough, but has a surprising amount behind it, including some really handy
and insightful looks at the world of computers and the Internet. Although not
exclusive to the art of game development, this blog does provide some handy tidbits
here and there, and merits a read for those interested in the greater IT world as
well. If you don’t fancy this stuff, give it a miss, but avid blog readers should enjoy
Mobile Dragon this one.
so does the demand for mobile develop- A new site, afliated with Gamasutra, has
ment environment. Mobile Dragon is a just recently launched for people who are
cross-platform 2D/3D game engine writ- interested in learning about - and getting
ten in C++, designed for use with PDAs into - the gaming biz. It’s already lled
and Smartphones running any sort of with features such as how to apply for your
mobile OS. It includes all the necessities rst game development job, as well as
for mobile game dev, supporting network- reviews of good game development books
ing, 3D environments, numerous input and a convenient “Getting Started” section
systems and its own physics and math for those who are new to the site. Round
libraries. The 1.0 beta release is cur- this off with an all-important newsletter for
rently available, complete with documen- those who want to keep track of what’s
tation and several demo applications. going on and presto, you’ve got a valuable
online resource that’s open to all.
http://seriousgamessource.com/
http://www.gamevil.com/eng_new/
game_view.jsp?game_id=4&category=1
http://msdn.microsoft.com/directx/xna/
NEWS
Book: Articial Intelligence for Games
http://books.elsevier.com/us/mk/us/
subindex.asp?isbn=0124977820&country= Autodesk community portal available
United+States
http://area.autodesk.com/
http://www.gamasutra.com/php-bin
news_index.php?story=10720
to recreate was a riot control was started on version 1.3, but it was nate. I had to dig up totally new game
squad. The basics behind the scrapped for the sequel. mechanics to justify some design prob-
term “Roach Coach” taken you later on, but believe me,
in your head for a very long rate object for every unit. This
time) to “Roach Toaster”, which meant that I had lots and lots more to
When I started development on Roach
aptly ts the game’s premise. do when I detected a general bug (no
Toaster, it was a sort of hit and miss
pun intended and for hereafter) in the
affair. I did not quite know how it would
I am very proud of Roach Toaster. units, and thus had to change “some-
turn out. This resulted in design prob-
It is my most popular game and thing” in every unit, which took quite
lems that popped up during all stages of
has been received very well. It has some time.
development. The basic premise of the
appeared on gaming magazines and
game turned into something I did not
freeware games databases. Since So my advice is develop with the end
intend it to be. This luckily turned out
the download counter was initialised in mind. You do not want to get stuck in
to be a good thing in a way, but I felt
on Roach Toaster in January 2006, a situation like this.
do matter: on the 2nd time round, Roach Toaster liked the concept and thought it would
nabbed about 250 downloads just from be fun to play. If you develop games
I have always had the motto that the Gamemaker Forums. that are fun for yourself, regardless
“gameplay is king”. In every aspect Sound is crucial too. If it is bad and of how small the market is, there are
I still believe it is true. What urges cannot be muted, people will stop play- bound to be others who will enjoy play-
people to download your game? ing your game before they have even ing it just as much as you enjoyed
What little do they have to judge started it properly. I got this comment making it!
look pretty and have eye-candy. Develop for yourself: Find Roach Toaster at Tr00jg’s web-
site:
When people commented on Roach One thing I noticed that some people
Toaster I realised that if I had better apparently disliked Roach Toaster http://www.shotbeakgames.za.net
graphics I might have gotten a few downright, while others praised it for its
more downloads, and every down- “excellent design” and “awesome fun”.
load matters. If I had better graphics, When asked why, it came to the fact
the overall game would have been a that they simply do not like this genre, or
FEATURE
much more pleasant experience. these types of games. A good strategy for getting the game
(version 1.0) to the Gamemaker title (although there are exceptions). at least it’s already in the framework
Forums, it received almost no down- Thought has been put into making and can be entered into the contest.
loads. The main menu was horrid Roach Toaster 2 more action-packed The prototype should include the key
and it used resource pack sprites. for those people who like action, but I design ideas of the game, this includes
I changed the menu, spruced up decided against it. all the ideas that will make the
such as DEFCON and Darwinia. TROOJG takes the helm and has a chat with them.
What advice do you have for bedroom programmers all indie developer at the present moment is that you simply don’t
over the world? have the time and resources to compete with other much larger
SPOT LIGHT
Setting up your own company is extremely difcult and your developers in the making of certain types of games. Having
driving impulse must be primarily for the love of gaming and such a small dev team means that we struggle to produce
creating games - although the money (once it comes in) does content, and a number of reviews said that Darwinia was too
help. Above all, you need to have the courage of your convic- short, but it had taken us 3 years to produce a game with
tions - we knew we had something worthwhile at Introversion, 10 levels! Content production is the major time drain on most
strong games and unique ideas; we just needed the grit and games and we’d hoped to generate our levels automatically, but
determination to see it through even when things got rough. we ended up building each level by hand which took a very
long time.
It’s probably not what anyone wants to hear but being part of
an independent developer involves a lot of hard graft and is At Introversion, we have to make our small dev team an asset,
not even half as glamorous as it sounds! Or course, there are which is why we concentrate on producing the kinds of games
enormous benets to being independent - primarily you can that are better suited [to us] - that is, games that are simpler
do whatever you want! We own our own company, decide our and purer but more able to experiment freely with ideas and-
work hours, and we don’t have publishers breathing down our
the cash ow is drying up. That said, we’ve had some great
awards this year made all of the blood, sweat and tears
or at least certainly when we started 5 years ago, is that create. We rst approached Valve when we originally launched
publishers aren’t really interested - that’s the bottom line and Darwinia but it wasn’t until we launched our second Darwinia
it can be a real struggle to get yourselves noticed and taken demo that they got in touch with us. As far as game sales go
seriously. When Darwinia was released, we were big enough - Steam was in a completely different league, giving us access
to self-publish in the UK, but the US market is around ten to a much wider range of gamers. We sold more copies of
times larger and we just didn’t have the staff. It took a success Darwinia on Steam in three weeks than we’d managed to sell
SPOT LIGHT
story like the Darwinia launch on Steam for publishers to sit ourselves via UK retail and the Introversion store during the
up and take notice and we were very happy to team up with whole launch period!
Where do you see it going in the future? It’s not something we would use, as we want the true freedom
Here at Introversion we think that on-line distribution may well to create new ideas. The problem with game development
be the saviour of computer games. Modern game develop- apps, is that what comes out tends to be broadly similar to
ment costs millions of dollars that developers usually have to other games produced with the same app, even if the underly-
seek from a publisher. In doing so, the publisher takes a ing idea is different. We’ve not had any experience of using
large nancial risk and as such the royalty payments made these systems - we just develop our own, as it’s easier and
back to the developers are not favourable. Once retail and quicker for us in the long-run.
rewarding for us - we have worked so hard to earn some merit do is to license the game to everyone, as you’ll start a price
in this industry and it can be a very tough path. In addition to war, and you’ll just erode your earnings. Also any deal you get
this we have been able to gain much credible coverage and should be in advance of 50% return back to you…
it a natural evolution?
SPOT LIGHT
We entered the IGF awards initially because we were encour- Ideas just occur randomly really, although we do get a lot of
aged by the fact that it was a games award ceremony for the inspiration from movies. We allow those ideas to mill around
independents which meant that we weren’t trying to compete in our heads, letting them develop for a while before writing
with hugely successful mainstream titles by big publishers; anything down. Months can often pass before we do actually
previous winners has included games like Terminus and Oasis get round to writing anything down, primarily because if you
so we thought we stood a pretty good chance becoming a do this too quickly the idea can stabilize without having given
nalist in one of the categories. We decided that if we could it a chance to expand. With Uplink and Darwinia, the design
win even a small prize it would add a lot to our credibility process was on-going; we didn’t have a big design plan from
in the industry and improve our prole. We’re also in favour the start. (continued...)
difcult to make yourself heard over the noise of the major “Setting up your own company is extremely difcult
game developers. and your driving impulse must be primarily for the
What issues have you had (if any) with selling your games
happy with that, so you need to work hard to keep retail happy. .
Whilst digital distribution is great for us, you can’t ignore retail
main afictions have been the lack of nancial backing and the
We bug test and play test the games. The rst is obvious - the limited opportunities available to getting your games noticed.
latter involves sitting some players down and watching them With the advent of digital distribution channels such as Steam,
play the game. Usually at the beta testing stage the game Xbox Live Arcade and the increasingly avid support of journal-
play is locked down, and we’re more concerned with the user ists and online bloggers the possibility for smaller developers to
interface, and making the game easy to get into. get their work out there is much greater.
SPOT LIGHT
We used that process to make a much better Darwinia demo Thanks Introversion for your time! This is General Tr00jg
second time around. The rst Darwinia demo we put out didn’t’ signing off… This article will explode in exactly 5
TROOJG
If you were to hire a new team member, what you look for
in that person apart from the obvious (ie, being good at Check out www.introversion.co.uk for all the upcoming
have to trust that people will do the work that we’re paying
them for and that they will get the work in on time. It sounds
less?
Gamasutra is run by the CMP where it went right and how it went
lications including Gamasutra and portal for far more resources. Content
REVIEW
its related sites. Gamasutra itself includes job directories, product guides,
nised site which has already been newsletters and an all-valuable RSS
other really, really smart people that
in existence for several years, feed for those who need to keep in
you can listen to at your own conve-
backed by a lot of experienced touch with current events. One of the
nience. Overall, you’ll be very hard-
writers and professional IT journal- biggest things about Gamasutra, how-
pressed to nd a more comprehensive
ists.
source online for game development
opers themselves, telling readers with Gamasutra, consisting of recorded Last known update: Continuous
where they felt the game went wrong, chats with game development gods and http://www.gamasutra.com/
T
he game starts off very ing the resolution. Just about anything lightning going off in the background,
quickly within the rst few you want to tweak is available.Levels to the way bad guys y through the
seconds a princess gets kid- are structured in a fashion where you air after you have killed them - it’s
napped, you are in control of a start off at one end of an area and need all breathtaking. The sound effects are
ninja and it seems it’s up to you to to make it to the other end all while dif- great, realistic and really contribute to
REVIEW
rescue her. ferent types of enemy ninjas will attack the immersion of being a ninja. Noth-
you. ing bad can be said about the back-
The world has a scrolling view with ground music, it’s fast and energetic
an oriental theme and pumping music Every now and again a special “mini- which suits the gameplay.
in the background. There are three boss” appears which shoots deadly re
actions you can perform: jump, throw at you. Once you make it to the end
a shuriken (ninja star) or swing your of an area you have to ght a boss
sword. The height you can jump is which will require a bit of puzzle solving
great and you usually nd yourself to nd their weak point. A nice touch
able to gracefully jump from tree to is how each level has its own theme
tree. Shurikens will be your main of scenery and different obstacles which
source of attack and there are many provide variety.
different powerups which will give
in the deep end and enemy ninjas At least in a later level an up arrow amazing graphics, sound and absorb-
come at you from all directions while gives you much-needed guidance. You ing gameplay. I positively recommend
you still don’t have any idea about start off with only three bars of health that everyone give this game a try.
the controls or where to go. You but thankfully there are powerups to INSOMNIAC
will denitely be seeing the “continue” boost your maximum health which are
screen quite a few times while you sneakily hidden along the way to make Legend of Shadow was created by
are getting the hang of things. your quest easier. Darthlupi in 2004 and can be down-
loaded from:
The whole downside of not knowing There are a few bugs in the game, such
REVIEW
where to go initally can be pretty frus- as occasions when the frame rate slows http://www.gamemakergames.com/
trating and to be honest I spent ages down to an unplayable 1 fps and can ?a=view.download&id=1382
ghting ninjas in the same area wait- force the user to restart the game.
eventually gured out that I was sup- Besides the intial steep learning curve
DESIGN
into the game while others will need player starts their first game the zero score and a full set of lives
complete rewrites to sometimes large chances are that the player will then makes it possible for the player to
sections of the code. Each item will read the help and will therefore be experience an uninterrupted playing
make a small improvement in the more likely to understand how the experience.
game, in some cases a single game works immediately.
change will not even be noticed by Displaying progress bars while
the player, but taken as a whole A large number of uninstalls are done loading levels makes it clear that the
these small changes will improve the due to player frustrations with how game is busy doing something and
overall impression the player has of things happen within the game. therefore keeps the player's
the game. Taking time to decrease these attention on the game. Without a
frustrations will result in more player progress bar, the player may think
the game is not doing anything while
he/she is sitting waiting and may
therefore terminate the program.
Another way to keep the player's
attention during screen or level
transitions is to use some sort of
effect between the screens such as
fading one screen into the other.
remember their current options are often deleted from the windows player has of the game will have a
between games. By saving the explorer leaving any registry settings direct impact on the sales figures of
various options settings in a behind. By storing them in an ini file that game.
configuration file and reloading them or other text configuration file, the
CAIRNSWM, FENGOL
when the game starts again the user file will be deleted along with the
will see the game behaving the game directory.
same way during each session. This
can then be extended to support Only a few suggestions have been
multiple user profiles within the made on ways to polish a game.
game. This way multiple users of the Each of these on their own will make
same home computer will be able to almost no significant difference to
DESIGN
creating materials to give our objects light’s have on the material. The ‘Spec’
some variety and add colour to our value determines how large the
scene. This tutorial is far more technical specular area is, and the ‘Hard’ value
than the ones that have come before, so determines the smoothness of the
if you’re not yet very familiar with the shine. Set them to 1.75 and 225
controls and techniques we used it’s The 'material' panel. Change basic respectively.
material options like colour and name.
best that you go back through the
previous instalments again, or at least
have them on hand. The topmost box in this panel shows
the name of your new material. You can
First off – Material basics leave it at the default value if you wish,
but it is often a good idea to name your
Load up the scene you created earlier. objects and materials. Below you’ll see
You should have a sphere object, two three rectangles, labelled ‘Col’, ‘Spe’,
light sources, and three planes that and ‘Mir’. Clicking on the coloured
The 'shaders' panel. Change shading
make up the walls and floor. First off, rectangles with your mouse will allow methods and modify specularity and
we’ll be editing the sphere object, so you to change the colours using a colour reflectivity.
select it with the right mouse button. chart or by typing in the red, green and
Make certain that you are in Object blue values. Select a blue colour for the If you render the scene now, you’ll
mode. In the buttons window, select the base ‘Col’ field and a slightly darker blue notice two specular regions on the
shading tab. You’ll remember that we for the specular colour (The values I sphere. This is because we have two
used this tab to modify the properties of used were R=0.25, G=0.25, B=1 for the light sources in our scene. However,
our light sources in the previous menu. base colour, and R=0, G=0, B=0.95 for this looks a bit strange because, if you
However, when you have an object the specular colour). We won’t use the remember, we only created the ‘Hemi’
selected it will present you with different mirror colour just yet, so you can ignore lamp to add ambient light to the scene,
options with regards to object materials. that for now. so the two specular regions defy the
feel that there is only one light source
At the moment, our sphere has no Now we’ll look at the shaders panel. in the scene. To fix this, select the
material linked to it so the materials Make sure the ‘Shaders’ tab above the Hemi lamp, and under the Lamp panel,
or press F6 to bring up texture panels. into place. Top view (7) will be best for
this. You needn’t worry about the roof,
since it shouldn’t be visible in any
Click Add New to bind a new texture to reflection. Your completed scene for
the object. Select Stucci from the The 'map to' and 'map input' panels. this tutorail should look something like
Change how textures are mapped onto
Texture Type drop-down box. A Stucci materials. the following image and will be
options panel will appear where you can available for download from the
fine tune your texture. Select Hard Noise Select one of the walls, create a new Dev.Mag website’s content section.
from this panel, and change the Noise material, and set the colour values for
Size and Turbulence values to 0.1 and base colour, specular colour and Now that the tedium of learning all the
10 respectively (see below). reflective colour to R=0.8, G=0.6, B=0; basics is out of the way, we can create
R=0.75, G=0.4, B=0 and R=0.35, G=0.2,
Now we need to set the texture to be B=0 respectively. In the shaders tab, set
mapped as a normal map (i.e. bump reflectivity to 1, and specularity to 0.
map). To do this, go back to the Now we’ll use the Mirror/Transparency
Materials Buttons by clicking the red tab to make the walls slightly reflective.
sphere icon next to the Texture Buttons Click the Ray Mirror button to enable
icon, or press F5. The material texture mirror effect with raytracing. Set the
panel on the right is the one we’ll be RayMir slider to 0.2 to make the surface
using to change how the texture will 20% reflective.
some more advanced things, so in the
next issue we’ll be having some fun.
DESIGN
your game is finished, its development your game. By keeping a constantly
During this stage, you will be creating cycle is far from over. People, and up-to-date and well-organized
the content for your game. You will need especially seasoned gamers, expect the document, you have an easily
to keep your design document as games they play to be as bug-free as accessible summary of your game,
reference during this entire stage, as possible. There are also expectations for without having to sift through
any drastic deviations from it will only certain types of games to be updated on mountains of code and images.
extend the development cycle, and
could create unforeseen problems.
As you create content, you will most
likely find that certain aspects you have
designed may need to change.
Prototyping and testing are bound to
reveal elements that may need
tweaking, rethinking, or completely
removing or adding. If you do choose to
change aspects of your game at this
stage, it is vital that you keep your
design document updated – a log of
version histories and changes will help
keep things organized.
Tools of the Trade The Work Breakdown Structure aspects of your game in a single,
organized location.
The Gantt chart This diagram, although simple, will help
to streamline the process of developing
Developed by Henry Gantt in 1910, the your game. It allows each task to be With that comes an end to this brief
Gantt chart is a simple method of assigned a requirement (or multiple discussion on Project Management.
determining a realistic timeline for requirements). Using this diagram, you While there are many more aspects of
developing your game. Typically, it can plan the development of your game PM that warrant attention, I trust I have
DESIGN
comprises of a timeline along the X-axis, by breaking it down into sections, and given you at least an insight into the
and the procedures listed along the Y- breaking those sections down into principles behind it. I hope you will use
axis. Each procedure is then given it’s further sub-sections, if required. at least a few of the elements I have
own timeline. Using a Gantt chart will mentioned to help streamline the
help alleviate the difficulties in setting The use of this diagram creates an development of your games. In the
deadlines, and will also give you an outline for the development of your next issue I will be reviewing a new PM
estimated starting point for each activity. game, and will be especially useful application developed specifically for
when creating a vast or complex game. the development of video games. Until
See above for an example Gantt chart of It allows you to stay in control of then – happy developing!
a specific portion of the design phase. development, by keeping all the main GEOMETRIX
executed in every iteration through the to begin, such as on low spec machines. State management in the game can
code it can contain the functions that Due to the amount of time the often have a large impact on the
need to be called regularly in the life of a application may sit idle between timer chosen method of implementing the
game. executions, this method has very small game loop. State management
impact on the processor of the systems that implement unique objects
The core functions of the game such as computer. for each state will manage the game
AI engine, Input management, Sprite loop very differently from state
movement and collision detection and Windows games are often created using management systems that are built into
the actual graphical display are called a windows GDI form. The windows the implementation logic of the game
from within the game loop. Each pass operating system includes a concept of itself. State management is however a
through the game executes each of idle time. The game loop can be topic in itself and will be discussed in a
these functions from within the game implemented to execute whenever the future article.
loop – however, each function may not operating system encounters a period of
need to be called on each iteration. idle time. This implementation will give When game developers move on to
Games typically need to run at 30 more time to other processes executing creating their own game engines within
frames per second (FPS) and therefore within the operating system and will a traditional programming environment,
the Graphical Drawing function may only therefore not use 100% of the the first part of the game that needs to
need to be called on every third or fourth processing power of the computer. be developed is the game loop, as it
iteration. defines the implementation methods
With the advent of more and more for the rest of the game engine. As the
There are many different ways in which powerful computers, programs are game loop is defined and extended the
a game loop can be implemented. The moving toward a thread-based various functions needed in the game
easiest and most traditional way of development design. The beauty of can be added. Typically the graphical
implementing a game loop is to threads is that they can run independent drawing functionality is created first
implement a loop that only exits when of the main game loop, effectively and then extended as needed within
the game state allows the game to end. outside the main game engine itself. the game loop. In this article, a brief
Within the loop the various game While the game loop is executing the discussion of the various
functions get called one after another. various input and display functions the implementation methods has been
When the program execution point modules in the threads such as AI can made, but each of these methods must
reaches the loop it will continuously run uninterrupted. The game loop will be extended for the game's needs.
repeat the series of commands one after then take input from the threads during CAIRNSWM
the other. Each of these functions each iteration and react on them as if
contains the game logic based on the they were external inputs.
various state requirements. This
T
o make our object moveable in all directions, we will add Now to add the shadow. Duplicate the object sprite, and
some simple functions to it. In its create event, add a rename it to “objectname_shadow_spr”. Open the sprite in
friction value to your liking. Now, for your turn left and right game maker and go to the outline option. Make sure the
keyboard events, add a “set a value of a variable” action with selected color is black, and the click outline. It will ask you if
the following values: you would like to delete the contents of the sprite, you answer
yes.
Variable : direction
Value : -3 (Positive for left, and negative for right)
Relative.
For your forward keyboard event add a “set the direction and
speed of motion” action. Set the values to such:
Direction : direction
DESIGN
Speed : 5 (Play around with this value)
Now duplicate the event for your reverse keyboard event and
change the speed value to a negative number. In the step
event add the following code:
{
image_alpha = 0.7;
}
I’m sure this will have given you all lots of ideas on how you
could make shadows for almost any object in your game. Now
on to the next bit : making an animated sprite from scratch in
Max and getting it into Game Maker.
DESIGN
ANIMATED SPRITES
{
X =
mouse_x;
Y =
mouse_y;
}
DESIGN
Lastly, change your
The animation shop has some great option you are welcome global game setting,
to play with, but for this, all I am going to do is resize the and deselect the “display the cursor” option. Add your object to
animation to 64x48 pixels, and resave it as a .gif file. The a room, and see if it works.
options I choose for the quality of the .gif file always set it to
the highest quality. At the end you should have a small (64kb Hope to see you all at rAge this year, and if you see me there,
or similar) animated .gif file of your model. you are more than welcome to come and look at some of my
work, the assets I have made and the methods I use.
Now let’s get it into Game Maker and see how it looks. First, I HIMMLER
create a sprite and load up our .gif file. Make sure to set your
x, y position to correspond to your cursor's point. This can be
seen in the image below.
Now create an object and set the sprite to your newly created
mouse cursor sprite. This is where I notice that my green
opaque color isn’t working correctly. The green color isn’t
uniformly the same. This causes game maker to not see it as
transparent, which is a big problem. I have noticed that the
best way to avoid these problems is to use “pure” colors. What
I
n this edition of the tutorial, we’ll jump right start between all the blocks. Note that nextElement
in, nish off the core gameplay and add a few returns an Object, so we need to cast it before using
new static variable blocks, which is a Vector. bottom of the block to determine whether we should
bounce along the X or Y axis.
MOBILE
is true and call playSound on one of the AlertType types of blocks that take more than one hit or release
objects available statically through the alert type a power up. By now the game may have also have
class. For example, ERROR can be used for the started showing some signs of slowdown as more
death case, and CONFIRMATION when the player sprites are shown on screen, and tweaking the speed
wins. values for the ball and bat, or even building in a proper
timing loop- might be a good idea.
FLINT
.
It’s all coming together nicely!
I List 1
n the previous article, we upon the many topics covered previ-
touched on the basic concepts ously in this series of articles, including
and principles behind data struc- variables, structures, and most impor-
tures. We talked about variables, tantly, pointers.
which are the building blocks of
data structures, arrays, which are The basic principle behind a linked list
used to organise lists of data, is that each piece of data in the list
and structures, which are a way belongs to a node, and each node in the
of encapsulating multiple kinds of list points to the neighbouring nodes in
data into a custom form that suits the list (ie. the nodes directly before and
TECH
Now that you have a better under- The list itself is maintained by keeping
standing about what exactly data track of the node that is currently rst in
structures are , we will move onto the list, as well as the node that is cur-
a much more useful (although rently last in the list. These two special
complex) data structure known as nodes are normally referred to as the
a linked list. head and tail of the list.
tures used to dene a linked list: linked list, as everything that has been or removing a node in a linked list:
//structure dening the linked list //tell the currenly set tail of the list that its next
over arrays is that arrays need to //node is the new node
struct
{ list->tail->next = node;
ListNode *head; //pointer to the head node of be statically dened as a xed size,
//the linked list //set the list’s tail to be the new node, as it is now
ListNode *tail; //pointer to the tail node of whereas linked lists can change their the last node in the list
//the linked list list->tail = node;
}LinkedList; size dynamically as needed . }
TECH
tail node of the list is reached. Although they can seem quite daunt-
This can be accomplished by merely ing, linked lists are essential tools to
changing the pointers of the affected game programmers. They allow for
nodes, telling them that they should no easy dynamic organization and modi-
C-Based pseudo-code of looping
longer point to the nodes that they are cation of data, which is a core neces-
through a list:
currently pointing to, but to instead point sity in development of even moderately
//linked list containing my data to either the newly inserted node or the complex games.
LinkedList myList;
node on the other side of the node that
void foo(void)
has been removed. The key to understanding how linked
{
ListNode *curNode; //node used to “step” through
//the list with lists work (along with how they are best
List 2
curNode = myList.head; used) is to rst not only understand
while(curNode)
{
how pointers work, but to become
//call a function to process the data at this
//node comfortable using them.
ProcessData(curNode->data);
gramming arsenal.
COOLHAND
Why use linked lists?
T
hese customers fall into tar- mishaps. First of all, a “game plan” consumer views your product in light of
geted segments that are is required to assist a marketing cam- all that they have heard, experienced,
focused upon by the marketers. paign. This plan starts off with an idea and taken from the use of your prod-
Their job is to make these prod- or concept of the game, which the uct. Branding is thus the name of the
ucts look and seem more appeal- developers have hatched together with game! (There’s a pun in there some-
TAILPIECE
ing to their chosen target market the creative art and design teams. It where…)
than those products offered by is important to have all the necessary
the competition. Now, how Fantastic game brands that have
does this all apply to gamede- been built up over the years include:
velopment, you ask? Well, I Doom, Quake, Unreal, Ultima, Dun-
recently listened to a very geons and Dragons, Warcraft, Halo,
interesting podcast on GDC Pacman, Sonic the Hedgehog, Mario
Radio http://www.gdcradio.net/2006/ Bro’s, etc. Hmmm, you catch my
08gdc_radio_presents_developers. drift? Now what makes these brand
html. names so prominent and instantly
able to synergise these two key busi- a message, a calling; something that These brands names will also carry
ness units into one game production differentiates this game from the rest. a small “™” or ® which means that
powerhouse. According to these lec- Something relevant and revealing. The they are bona de, certied, Regis-
turers, there is constantly conict most primary message is found in the tered Trademarks of that company’s
between marketers and developers. game’s brand - its name, which, by def- achievement through years and years
This proves an age-old saying that inition, has many different meanings. of hard work on developing the game
assumption is the Big Mamma of all However, I believe a brand is how the as well as the brand.Every little bit of
TAILPIECE
gameplay, storyline, and characters
not wish to bore you just yet with all Let’s put it this way: First, one needs
are the most important aspects of any
that kibble. Just know that when you get to educate the target market and
game?”. Well, yes they are. A good
people talking, you get them excited.
brand name and an effective market-
Look at all the hype that the marketers
ing campaign will never salvage a
of NC Interactive / Guild Wars have
weak or inadequate game. However,
managed to create with their ever-
a thousand words, ideas and sensa-
expanding credo of player classes.
tions activities or stunts are also used only but ask that you begin to familiarise granted. Building a game is one thing.
to attract attention. Now that we have yourselves with the inner workings of Keeping that game in demand for a
the consumers’ attention we need to marketing in business and what the sequel and beyond is another. I’m talk-
give them reason. By this I mean we marketing team requires from you in ing about building a brand, a legacy, a
have to give them some “bang for order to generate the sales and make milestone in cyberspace.
their buck”. Why should they choose your games even more appealing by BURNABIS
our new release over that of a rival focussing on the subtleties that you
game house?
munication mediums.
IT Intellect Durban are hosting Miktar and Danny Day for a weekend of
Musgrave Centre
KwaZulu-Natal
BOOKINGS ESSENTIAL!!!
O N L I N E
www.devmag.org.za