Dev - Mag - 04
Dev - Mag - 04
Dev - Mag - 04
THE WORK
AFTER THE WORK
THE BASICS
OF SOUND
DEVELOPMENT
MOBILE GAMES:
PART 2: MAKING MOVES
FEATURE
05 - ENGINES AND FRAME WORKS
SPOTLIGHT
07 - Unc1354m
REVIEW
08 - GAUNTLETS
DESIGN
09 - THE WORK AFTER THE WORK
TECH
MOBILE
TAILPIECE
08 10 09
ED’S NOTE THE TEAM
ENIGMATIC ED
Stuart “GoNz0” Botma
Something has really grabbed the attention of the guys at Dev.Mag and I,
DASTARDLY DEPUTY
and that is just how far this project has come. Every week I hear stories
Rodain “Nandrew” Joubert
and see the evidence of what we have accomplished. We’ve been
mentioned in NAG (a gaming magazine that gets distributed DILIGENT DESIGNERS
internationally) and we are also a regular feature on their monthly cover Brandon “CyberNinja” Rajkumar
Paul “Higushi” Myburgh
DVD. We’ve been mentioned in a newspaper (The Citizen), in blogs, and in
numerous other places.
JUBILANT JOURNALISTS
Simon “Tr00jg” de la Rouviere
This is our 4th issue, which is, apparently, the ‘life-defining’ edition of a Ricky “Insomniac” Abell
magazine. I quote a GameMaker forum member: “Most e-zines don’t get to William “cairswm” Cairns
Bernard “BurnAbis” Boshoff
their 4th edition, they get their 3rd out but never a 4th. There’s some sort of
Danny “dislekcia” Day
invisible barrier there or something. The ones that make it though are
Andre “Fengol” Odendaal
usually here to stay.” Yuri “knet” Oyoko
Heinrich “Himmler” Rall
Matt “Flint” Benic
If our increasing quality is anything to go by, we’ll be here for quite a while.
Luke “Coolhand” Lamothe
But besides all the promotional talk, I’ve also got some other news: May/
Greg "Zphyr" Reveret
June saw the release of another game development e-magazine,
GameForce. We were lucky enough to be sent a complementary copy (+3 WIZARDLY WEBSTER
points) by the staff. All I can really say to them is “good luck and I hope you Claudio “Ch1ppit” de Sa
A prolific game developer in South Africa has Need art? Need sound? Need resources?
recently launched their own Game Development site Need anything for a game and don't want to
(www.TheGameDeveloper.co.za). Much like a blog, go to the hassle of creating it yourself? Try
TheGameDeveloper will give voice to ideas and the Game Contents Resources from
methods of game development, with a focus on gpwiki.org, a place with a lot of cool links to
things such as frameworks and Delphi. online galleries, gaming material and a whole
manner of resources including sound, music,
2D/3D art, editors, icons and more. Best of
all, it's free. Get it all now at http://gpwiki.org/
index.php/Game_Content_Resources.
Gamasutra has some interesting things to offer this month. For a start, there's
a new GDC Radio podcast out about next-gen console development (http://
www.gdcradio.net/2006/06/gdc_radio_presents_next_gen_co.html) Also
available is a cool interview with the creator of Earthworm Jim, Doug
Tennapel (http://www.gamasutra.com/features/20060606/murdey_01.shtml).
He covers why fans are wrong and where EWJ on the PSP is going.
"I'm Jeff Tunnell and I've been 'making it big' in the game
business for a LONG time. MBG lets you learn, for free,
the lessons I paid a high price for." Make It Big In
Games is a blog written by a professional indie game
developer, offering insight, advice and instructions
regarding many common problems that hobbyist
developers face in their quest to become pros. Blog
entries consist of topics such as "Five Realistic Steps to
starting a Game Development Company" and "How 4e5 BACK IN ACTION
Much Money Can Indie Games Make?", amongst many
others. Visit http://makeitbigingames.com/ to find out The Gamedev.net Four Elements contest (http://www.gamedev.net/
community/contest/4e5) recently released the list of element entries
needed for its latest competition: Emotion, Economics, Emblem and
Europe. The idea of the contest is to get entries centred around these
four words, while still maintaining high standards of design, gameplay
and technical expertise. The competition runs until the end of November
and prizes include a free FastCapPro license for every contestant who
enters. Time to get busy, developers!
A
game engine is defined as "the game. Often this is so rigid that the extended it would be difficult to modify
core software component of a engine dictates what style or genre of the user input to do RTS controls.
DESIGN
video game. It typically handles game can be created using the engine.
rendering and other necessary (for example ORTS is an engine for RTS Many game developers consider
technology, but might also handle games, Half Life 2 is an Engine for FPS building their own Game Engine before
additional tasks such as game AI, games). On the other hand a Game making their own games. These
collision detection between game Framework is only an outline, containing developers typically see the
objects, etc. The most common element suggested methods and usually some development of a game engine as a
that a game engine provides is graphics code libraries etc. Game frameworks challenge to their technical abilities. As
rendering facilities (2D or 3D)." can typically be used to create any type they develop their engine they are
(Wikipedia). of game, but often with a lot more work continually learning the functionalities
structure in which another software Game Maker can be considered a years continually extending their
project can be organized and framework rather than an engine as it is engines with all the latest features.
support programs, code libraries, a rather than limiting the design options to Other game developers spend time
scripting language, or other software to a specific type of game. A simple learning to use the frameworks that are
help develop and glue together the example of this would be the various available to them. These frameworks
different components of a software options available for user input. Game are typically based on existing libraries
project." (Wikipedia). Maker has the facilities to allow the or other game engines. These
game developer to define how the user developers often are able to deliver
Based on these two definitions there is a input will function. In an FPS engine completed games that make use of the
very large intersection between a these controls would typically be defined features available in the framework.
framework and an engine. A Game as part of the engine and will work as Often that means that these completed
Engine is typically a very specific and the player would expect for an FPS, games do not have all the latest
capabilities that are available. available as they contain the low level
Developers are interdependent on each game engine and framework will only be Game Maker is more than
just a framework. Besides
other. The greatest Game Engine in the able to turn out a mediocre game.
the Code Libraries, there are
world is worthless unless a Game
a number of tools to make
Developer has been able to take the The time has come for Game development easier. These
engine and create a game using it. For Developers and Engine Developers in tools include an Image
the Game Developer to do this the South Africa to start communicating with Editor, IDE, Compiler and
Debugging. It also has
Engine Developer must extend the each other. As a unified team we can
extensive Help files that
engine further than just being a library turn out top class games that will rival
describe how to make use
into a Game Framework that contains what the rest of the world can produce. of the Framework, Libraries
examples, code snippets and that CAIRNSWM and Tools.
defines the relevant structure games
DESIGN
The above diagram outlines a typical game framework and the components that it
consists of. The scope of a typical framework is often broader than that of a
How long have you been developing games? This was laziness on my part. After making the
sprite for the worm and pixel humans, I felt that
[Since] June\July 2005. I had always been they didn’t need colour, but with a colour[ed]
setting it looked messed up, so I decided to
interested in making stuff, and the Game.Dev
make the terrain and clouds black and white.
section on the nag forums gave me the idea About halfway through the game I got the idea
to download Game Maker 6.1. [I] spent a few to add old film scratches to blend the black and
days going through all the tutorials, [and] after white in more. It came out pretty good.
SPOT LIGHT
about 4 days I released my first game.
Can you briefly explain the idea behind Killer Any current projects you would like to let us
Worm? know about?
The idea in Killer Worm is that you are a Outlaw Ball, an action platformer. This is a very
giant, hungry worm. You need to eat, but pixel large project, but [I] will keep the community
humans are so small [that] they don’t offer updated.
much food, so you need to eat alot of them. Thread found here:
Humans will start growing in technology and try http://www.nag.co.za/e107_plugins/forum/
to kill you since you are a huge threat to them; forum_viewtopic.php?20717
they grow from small pixels walking over the
ground oblivious to the fact that there’s a huge
worm hungry under them, eventually having Your game is one of the highest rated and
aircraft, tanks and the like in their name. downloaded games at the experimentalgame-
play website. How do you feel about that?
Killer Worm’s concept is truly original. What
inspired you? I wasn’t expecting it, since there are many
other great games there, but as long as it stays
The day Game.Dev’s 08 compo was at the view of potential downloaders I’m happy.
announced, I began brainstorming ideas
instantly, [and] for some odd reason I just
Do you see yourself expanding on Killer Worm
thought of an ant lion ‘consuming’ ants. It
seemed a good idea, but instead [I] decided to at all?
make it a worm ‘consuming’ humans. [I] started In the future, maybe. It has been a success. If
work right away, ideas kept coming to me, there’s ever a time, [when] I need something to
[and] eventually I came up with the basic game work on, it might be Killer Worm.
dynamics.
REVIEW
The levels in Gauntlets are you. A good example of this is the anti
straightforward and don’t really require tank trap in the game. It is like a timed
Gauntlets offers you upgrades that help you
much thought. All you have to do is bear trap that opens and closes every
progress though the levels.
simply time your moves and go when it few seconds. If you timed your passage
looks safe. Of course, you also have to over the trap badly and you die, you will
shoot the occasional enemy tank but respawn right on top of the trap and it’s
they're not a focal point in the game. up to you to move your tank out of the
Control of your tank is accomplished way as quickly as you can.
through the use of your keyboard and Other than that, Gauntlets is a pretty
mouse, where the keyboard controls the fun game and if you take the time to play
through a few levels, you may not be
The levels in Gauntlets are full of obstacles
disappointed.
which you have to pass through using
KNET
combinations of firepower, speed and
accuracy.
though. One of them is its level design, sadly, that’s the end of it.
development where you create games solely for the love of it other world and every kink (bug) you find along the way snaps
and not for the want of any money, you get 3 types of games. you back to reality. If you polish a game to every last bit, you
create not only a game, but an experience. The longer you
1. Teh SuXXor. manage to suspend the player's disbelief, the better that
player’s experience will be.
These games are not even half way decent, yet these
abominations are thrown out to the world. Their creators want I hate polishing my games and sifting through bugs. It
to show what they have, even though it is not really something sometimes feels as if the last bit, polishing, takes more time to
special. Usually, these games are platformers with ripped do correctly than the entire game up to that point. However,
sprites and very annoying midi music. once learned, the habit of polishing could be the best thing you
have done to your game development life.
2. Middle-McDonalds TROOJG
3. The Cream
T
he reason that texture filtering is used in 3D is a small
problem in the graphics industry called aliasing. Aliasing
problems are very easy to spot and can ruin the visual illusion
in a game.
Any computer screen is divided into pixels, duh. Each pixel
can only be a single colour, it’s impossible to have a pixel start
DESIGN
off being red on one side and then fade to black on the other.
The idea is that any image can be abstracted (see, it IS all
lies, even your screen) by splitting it into enough individual
pixels, unfortunately that doesn’t always work very well: We Bilinear filtering:
notice “blockiness” on diagonal and nearly vertical/horizontal
lines very easily. All you have to do to see the effects of bilinear filtering is to run
almost any game in software mode and then again with
Aliasing issues: hardware acceleration. Bilinear filtering makes textures
“smoother” and less blocky by grabbing four texels near the
Aliasing is called that because it’s the process of referring to sample point and averaging their values to get a blended
one thing by a set of different handles or names. In this case, colour for the screen pixel. It’s this “blurring” that smoothes out
we’re trying to get the pixels in a rendered image to refer to the the textures on the screen and avoids aliasing misses.
pixels in a texture. As each pixel in our image is rasterised, (if
you have no idea what that means, read the article on Vertices
again) interpolation gives us a unique set of texture co-
ordinates that tell us where on the texture to fetch the colour
our pixel should be. That sounds complex, but it isn’t:
Rasteriser starts on a new pixel onscreen -> interpolation
gives us the various values that pixel needs (by blending
between the various vertices) -> texture co-ordinates give us
an x and y point on our texture -> pixel is made that colour, There are a few problems with bilinear filtering though. The
with some adjustments for lighting and all that jazz. first and most visible is caused by mipmapping. Mipmapping is
Groovy. But textures are also made up of pixels (which we a technique used to manually limit aliasing issues by providing
call texels to save on headaches), so they can have aliasing smaller versions of textures that an engine uses when objects
issues of their own… Damn. Here’s a picture of some of the are far away, this means that there are less texels that it’s
problems: possible to miss when there are large “gaps” between sample
Trivia: The famous “picmip 5” setting that Quake3 pros used So, both bilinear and trilinear filtering work in texture space to
simply scales down all the textures in the game, making a try to calculate the correct colour for a textured pixel.
512x512 texture effectively a 64x64 or 32x32 image instead. Unfortunately this isn’t always the best approach: It works fine
This blurs all the textures like crazy, but that’s not why the pros when the textures that are being filtered are displayed on
did it: They were after the small increase in FPS caused by polygons that are at right-angles to the camera, but it’s a poor
having smaller textures and less texel lookups and a rather approximation for polygons that are at non-perpendicular
debatable “visibility increase”… Oh what crap textures you angles. This is because of the shape of a pixel on screen
have grandma! All the better to see you with dear. when projected into texture space depends on the angle of the
polygon the texture is being used on. Wait, that sounds
So, mipmapping was invented before bilinear filtering as a way confusing… Here’s a picture:
to deal with distance aliasing issues. The smaller textures
(remember how the U and V texture coordinates only range
from 0 to 1? The different sizes of mipmapped textures are
DESIGN
one of the reasons for that) allow for less “misses” of texels
because there are less texels in total. But, when you’re using
bilinear filtering AND mipmapping, the smaller textures are
blurred a lot more by the bilinear filter:
This sudden increase in blur is what we see in games as a Anisotropic filtering takes this difference in mapping into
horizontal or vertical “line” on floors and walls, especially when account and uses many samples of the texture in patterns that
moving. It ends up looking like there’s an error that stays a depend on the projection to calculate the final colour of our
certain distance ahead of us in the game, which can get very on-screen pixel. Unfortunately ATI and NVIDIA use different
frustrating. That’s why there’s the option to turn on trilinear patterns and sometimes even different amounts of samples to
filtering. arrive at their final values, so it’s not really possible to draw a
simple snapshot of anisotropic filtering. It is possible to
Trilinear filtering: mention that anisotropic filtering uses a lot more texture
samples per pixel (obviously) so both card manufacturers
Just as bilinear filters across two dimensions, trilinear filters decided to allow us to have some say in the amount of
across three. Except that the third dimension is the Dimension bandwidth vs the visual quality of anisotropic filtering by giving
of MipMapping! This means that where bilinear filtering grabs us the arbly named 2x, 4x, 8x and even 16x Aniso settings that
four texels and averages them out according to an algorithm, we can tweak in our drivers.
trilinear grabs eight texels (four from one mipmap and four
from the other) and again averages them out to get a final
colour for the pixel on screen.
your FPS will depend on the speed of your GPU’s core clock. The bottom line:
If you can stand it, turning filtering off (and living with only point - Point sampling = simple + fast + blegh.
sampling and mipmaps) is the fastest approach in terms of
memory bandwidth. It doesn’t look great at all though… - Bilinear = “blurs” textures, effective but has nasty mip-lines.
Bi- and tri-linear filtering are the current standards because an - Trilinear = fancy sounding slower upgrade to bilinear, kills
average graphics card these days has a memory clock that’s mip-lines and not much else.
fast enough to allow 4 (for bilinear) and 8 (for trilinear) texture-
memory reads per pixel. So, depending on your card, you can - Anisotropic = different method (actually uses bilinear as
probably afford to use either of those filtering methods without samples), tries to match screen-space by doing more work,
taking a FPS hit at all. slowest + prettiest.
DISLEKCIA
Anisotropic filtering ups the memory reads per pixel quite
dramatically, sometimes even doing as many as 128 reads on
the highest settings! So your memory clock speed is really
important if you want to use aniso. Newer cards can handle
the lower levels of aniso (4x and lower) without pushing
themselves too much, both manufacturers use optimization
What are the most wanted people in the Indie game development world? Well, I think you may know already. Artists.
Having a graphics artist in your group is like having superpowers. Yet every one of us must have the creative gene in
us, otherwise we wouldn’t be making games. What makes it so impossible for us to make our own assets?
PART 1:
MINIMUM REQUIREMENTS
A complete game is more than just gameplay. A complete game must be equipped with easy access to features,
information about the game and its creators and options to adjust the experience of play. In this article,
CAIRNSWM and FENGOL cover some of the basics that a game needs to “feel” complete.
T
hese features are mostly slog work If a player can’t work out how to play Readme File: While a player won’t
that creative and most hobbyist your game within a few minutes, the necessarily read the readme, it’s
developers leave out due to lack of chances are good that they will just important to include a readme for
DESIGN
enthusiasm or time constraints. delete your game and forget about it. logistical reasons. The readme should
However, players notice the lack of Rarely does a player think about or include: licensing information (may
attention to these details and they're spend time looking for a readme file in someone sell, give out or distribute
worth spending a little extra time on. the project directory, so clear and easily your game without your permission?),
read tutorial or help screens will keep the various copyright holders'
Splash Screen: A good splash screen the player from getting frustrated. information (in fact, include all the
serves two purposes in a game. Firstly, it information from the Credits and About
acts as an immediate indication to the Credits: Hobbyist developers rarely Screens), a list of known bugs and
player that the game has started, while create their own content for their games; issues (if there are any that you are
the game loads in the background. we rely on graphic artists, midi aware of) with work-arounds and a
Secondly, it gives a new player an musicians and other artists for content, history of what’s changed in your
indication of the theme of the game. often for free! A credit screen is a good version updates.
place to thank the people who’ve helped
Main Menu: A clearly defined main make the game what it is. These features make it easy for the
menu gives a game a very nice player to get involved in your game and
completed feeling. The Main Menu must About Screen: While this could easily it’s worth spending time adding them to
be clear, responsive and rather intuitive, be part of the Credits screen, the About your development cycle. Practice by
and should make it easy for the player to screen serves a different purpose. The always adding these features, and they
access the various other game features About screen gives the game’s version won’t be the hard work that they may
or exit the game without using Alt-F4. number, copyright information, the appear to be at first.
game’s homepage where the player can
Tutorial or Help Screen: More often get more help or information and an In the next article, we’ll cover “adjusting
than not, a new player will download email or link to provide feedback. The the user experience” where players
your game and dive into the action About screen can also give more should be able to control aspects of
without exactly knowing what to do; only information about you, the hobbyist your game like music volume, graphical
if he can’t figure it out for himself or is developer; your email address, website effects and speed performance.
struggling to get very far with the game or blog, and other games you’ve made.
will he look for a help or tutorial button. Cairnswm, Fengol
complicated, allowing us to live in a The External/Hardware Sound Card: is available to take some of the load off
world where the boundaries of our the CPU, but we’ll leave that topic for a
capabilities are set only by the limits of (Assuming that you already have a future article.
our imagination. It is for this reason that I computer) The sound card is the piece A free sequencer to check out is
would like to start off this audio column of hardware that acts as the “audio Kristal Audio. ( www.kreatives.org/
by introducing to you some of the “tools brain” of your setup. It’s an interface kristal ) This type of software is
of the trade” used in the audio industry which allows you to connect external generally hard to come by as a free tool
today. But with such a vast array of sound sources, and be ready for due to the complex tasks that are
powerful tools at our disposal, some of recording. Most sound cards feature required from it. Kristal has quite a few
us can’t help but feel a little bit multiple inputs, such as microphone limitations, but is a good introduction to
overwhelmed at all these technical inputs, line inputs (keyboard/guitar etc) sequencers nonetheless.
gimmicks that prome to make our games and, usually a MIDI In/Out/Thru feature
sound like they’ve just stepped out of Mr. will also be available (amongst others). If The Audio Editor:
Lucas’ sky-walker ranch. you want to take sound seriously, one of
Sure, some software might perform these babies will definitely need to be by This is the tool which I feel is most
certain tasks better than others, some your side. It’s a fair investment that will relevant to us in the small game
are designed only to do one certain reap many audio advantages. development community. This is not
thing, and some might even claim to do only because these tools are quite
it all! But the question is: Which one is The “Multi-track” software sequencer: simple and cheap, but because the
the right one for you? Let’s talk more type of functions that this kind of
functionality and less gibberish. Let's These are generally the most popular software performs very much apply to
help you spend your money wisely on a software tools. These “all rounder” tools, what we are doing.
product that best suits your needs for and cater for most audio tasks such as The editor is a sound designer’s best
making successful game audio. general editing, music creation/ friend. With excellent visual
The first question that you would
naturally have to ask yourself is: “How Some other popular sequencers:
Steinberg’s “Cubase SX” Apple’s “Logic”(MAC) Digidesign’s “Pro-Tools”
( www.steinberg.net ) ( www.apple.com/logicpro ) (www.digidesign.com)
Right:
Steinberg’s Wavelab 6. A common
favourite amongst audio junkies
interpretation of your audio wave, you someone walking on wet lawn during a
can literally “read” your sound like a Audacity windy day, or more specific
book allowing you to decipher what the http://audacity.sourceforge.net/ categorized libraries.
next critical audio decision will have to This one is 100% free and is really quite A really good place to get free
be. And if that isn’t enough, you’ll have good! I would recommend Audacity as samples is the free-sound project, an
an entire militia of different types of really good starting-point/budget friendly online sound sharing community that I
metering tools at your side which allow audio editor. can highly recommend.
you to critically analyze your wave. The (http://freesound.iua.upf.edu)
main features that we will be focusing on Audio Plug-ins: Also be sure to check out
with the audio editor will be: http://www.sound-ideas.com (a popular
Plug-ins are stand-alone software source for the professional industry-
applications that work independently, features an excellent gaming library
- Monitoring our mix, (checking for but still use your sequencer/editor as a too!) and
clipping/distortion) host. These become very useful when http://www.hollywoodedge.com
DESIGN
- Checking overall levels, (consistency in you require something specific that your (another popular choice for the
sound, correct compression applied) editor might not cater for. Just open it professional industry).
- Multi-track capabilities, (the layering of through your VSTi/DXi link and, presto!
our sound effects and overall mix) Your editor has become that much more Remember, whatever choice you make
- EQ and overall effects applications, powerful. for your everyday audio tool, make
(plug-ins) sure that the software you use works
- Proper conversion/compression of our There are literally thousands of plug-ins for you and doesn’t block your creative
sound files, (eg. WAV to MP3 available, some costing up to R90000! process. A tool is there to enhance
conversion) Yes, there are many good free ones too, your creativity, not to make your life
- The “batch converter”, a common but for the sake of trying to keep this an complicated. As time goes by and you
feature amongst audio editors that introductory column, I would rather go try more and more software, eventually
allows us to convert multiple audio files into more detail on plug-ins at a later you will found the right one -- the one
at once! (More detail in the near future ) stage. that works best for you!
As the months go by, I will go into
more and more detail about these
Two free(ish) editors really worth Sound-Effects Libraries: topics. I believe that, to get into actual
checking out are: production, we need to become familiar
Your sound-effects library is the source with our tools and understand the basic
Goldwave editor of all your sounds. These too, come in fundamentals of audio.
http://www.goldwave.com/ all shapes and sizes. Available are ZPHYR
This one can be continuously kept in general “all-rounder” libraries with
demo mode (and is very affordable everything in them, from the sound of
none-the-less) gun-shot effects, planes, right through to
RECURSION
Recursion is yet another one of those fancy terms that computer scientists use to describe a technique that is actually
TECH
MergeSort(data, low, high)
a certain condition is met, at which point the recursion ends {
if(low < high)
by returning from the current level of the function, instead of {
continuing into another recursive call of itself. mid = (low + high) / 2;
MergeSort(data, low, mid);
MergeSort(data, mid + 1, high);
MergeData(data, low, mid, high);
Recursion is typically used to apply what is known as the }
}
divide-and-conquer approach (mentioned briefly in last
month’s article), which is made up of the following three
steps:
MOBILE
and set it as the MIDlet's main display. 3, this is achieved by implementing the This brings us to the changes to the
The three methods, pauseApp, startApp Runnable interface in our Canvas MIDlet (Listing 4): We have made the
and destroyApp, are called respectively subclass. We also add a static Thread canvas a member variable, set it as the
when the MIDlet enters the pause state, member variable, gameThread, and a display, and ensured that it’s initialised
the running state and when it is boolean member variable, exit, to allow in startApp. In destroyApp we make
destroyed. It is important to note that the thread to be stopped. The new sure the canvas’s thread will stop.
startApp may be called more than once, constructor simply assigns a new We have the beginnings of a game
so what we’ve done by creating our Thread to gameThread. The run loop, so let's add some game-like
canvas in this method is technically method is where we do our work. For behaviour. We need a ball in our game,
incorrect. Within the TutorialCanvas now we just check if we need to exit, so let's add that to our Canvas and give
class we have overridden only the paint and if not we request a repaint (and wait it a simple bouncing animation. There is
method. As you can guess this is called for that repaint to happen) and pass no support for floating point numbers in
in this method refers to the top left //called when the app is destroyed
public void destroyApp(boolean unconditional)
corner of the rectangle that would {
//make sure we stop the game thread
contain the arc, not the origin of the arc. TutorialCanvas.exit = true;
All of these changes can be seen in }
}
..
static int ballX, ballY, ballVX, ballVY;
static final int BALL_RADIUS = 5;
//Constructor
public TutorialCanvas()
{
..
ballX = ballY = ballVX = ballVY = 1;
}
TAILPIECE
if you don't use that time to make contacts and learn about things "not in your field", you're missing a big opportunity to
get ahead as a game creator.
H
ow does one go about learning, though? Well, one of The same goes for music classes, but typically those are
the best ways to get to know different people is to take much harder for "lay-listeners" to understand. I'd suggest
elective courses that are totally off your "stream". If you're getting to know some of the design students and hanging
careful and study your university handbooks, you'll be able to around in the "art" areas of campus for a while. You'll meet the
get credit for them no matter how strange they might be. A musicians eventually...
good way to decide if something is as interesting as it sounds
is to spend a bit of time exploring exotic-sounding classes in BUSINESS / MARKETING COURSES
first year, once you're settled in it's really easy to just sit in on If you're planning to do it alone and start up a company to
a couple of lectures. If the course is interesting, relevant to you build games, knowing all the little things you need to do to
or has types people that you know you're going to need to incorporate and understand how investment works can be
involve yourself with during your working life, sign up for it next invaluable.
year. You should be able to find entrepreneurship courses without
Here are a couple of ideas for things that you might be able too much difficulty and they'll probably fit into your course-
to use to strengthen your CV and network at the same time. structure quite well. Once again, they'll be a bit simpler than
You should always keep a hard-copy of your contacts and how your tech-minded CS courses, but it's a different method of
/ why you know this person and what they can do. thinking. Once you've got an understanding of business, you'll
know if it's something you can do or if you'll need to get a
ART / DESIGN COURSES partner to run the business side of things. The people in these
If you want to make games, you're going to need art courses can be valuable if you have questions later when you
resources. Making friends with the arty students can lead to start up.
some of them wanting to help you with your games and The dark art of marketing is a driving force behind the
providing graphics that you would never be able to do. success or failure of games these days. Getting into a couple
You don't have to do hectic art classes either, most of marketing courses will give you useful contacts if you need
universities offer "lighter" courses such as Visual marketing help, plus you can continue with it through to
Communication or Semiotics. While they can be very strange second-year level to give you an edge – if you're built to
to a technically-minded BSc student, learning the theory withstand the lovely task of manipulating people all day, of
behind perception or how colours define emotions can be very course!
useful and immediately applicable in your games. At the very
least, you'll have some understanding of how to talk to artists ENGLISH COURSES
in their own language afterwards – never underestimate the Not only are some English modules excellent for helping you
importance of good communication! develop that story-writing side of yourself, there's also a whole
I've got a short-list of contacts from my design classes that I lot of information about the publishing industry that can be
send work to every once in a while when people ask me for learned here. Yes, the basic principles of publishing are the
business cards or logos. They're all keen to work with me on same for books, music and games, so a good publishing
games and I send them playable versions of what I'm messing course will equip you to deal with publishers on a much better
with every once in a while. One of them even likes GM footing.
because she can change the graphics without having to code. Personally, I'd recommend getting to know the publishing /
PSYCHOLOGY COURSES
A little bit of psych can be really useful in helping you decide
how to invoke powerful emotions with your games.
Unfortunately most 1st year psych modules are very low level,
but if you feel that you're learning something applicable, go for
it.
Usability and Human-Computer-Interaction courses:
TAILPIECE
REGULAR COURSES
Most CS degrees will have you doing at least some maths. Go
to it and work hard, you can do ok without it, but knowing your
algebra makes graphics coding much, much easier. Trying to
understand AI without combinations, permutations and some
calculus will break your head.
Don't run away from the physics course. It's not as hard as
you think, provided you keep working on it every week... It'll
help you out in the days of physics cards and emergent
gameplay.