Sie sind auf Seite 1von 29

1/29/2015

iReader

Iwanttobeagamedeveloper...nowwhat?

Withpeoplelookingtogetintogamedevelopmentthesamequestionscomeupoverandover,
soIveoptedtoputmythoughtsonthesubjectinoneplaceandtocompilealistofresources
fornewdevelopers.

Thosequestions?
Iwanttolearngameprogramming,whatlanguageshouldIuse?
ShouldIuseanengine,orcreatemyown?
Whatlibrary/toolsshouldIuse"?
Nowwhat?

Iwilltrytoaddressallofthesequestionsandmoreinthefollowingpost.

Forthoseofyouthatlikeskippingaheadtothelastpageinanovel,theselinksareforyou!

theC++question.

Let me get the 800lb gorilla out of the way first of all. C++. This is one of the most
controversialandrepetitiousquestionsofall.Newdevelopershearfromotherdevelopersthat
C++iswhattheprosuseandthereforewanttousethat.Tomakemattersevenworse,people
answeringthequestionsareoftennewdevelopersaswellandwillrecommendwhattheyknow
thuspushingpeopletousealanguagetheyprobablyshouldnt.Frankly,ifyouhaveonlyever
usedasinglelanguage,youreallyshouldntbeansweringthesekindsofquestions!

Alright,backtothewholeC++question.ShouldyoustartlearningwithC++?NO.See,no
maybe, no wishy washy answer or caveats, its simple, C++ is an epically stupid language to
start with. Its about the same as starting to learn math by starting with advanced calculus.
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

1/29

1/29/2015

iReader

Again,dumb.IfyouaregoingtolistentoasinglepieceofadviceIgive,itsDONOTSTART
WITHC++.Iknow,ofcourse,thatyouaregoingtocompletelydisregardthisadviceandstart
withC++,butin3or4yearswhenyouvegotthescarsandtraumafromignoringmyadvice,
Imgoingtosmugly*tisktisk*andgiveyoumybestItoldyouso!.Iwillofferanotherpiece
ofadvicewhileIamatitanyonethatrecommendsyoustartwithC++,inthefutureignore
theiradvice!

Dont get me wrong, I totally understand why you want to go with C++, Im just as guilty.
Recently I purchased a set of golf clubs and Im a horrifically meh golfer, but I got a set of
bladescausethatswhattheprosuse.Thegotcha?Imnoprogolfer,andmygoddidthese
golfclubstotallyruinedmygolfgame.Sometimesusingwhattheprosuseisnttherightthing
todo.Alright,offthattangent.

Again,thesearejustmyopinions(andthoseofthevastmajorityofpeoplethatwentdownthis
roadthemselves!)andIknowyouaregoingtostartwithC++anyways,butdontsayIdidnt
warnyou,becauseyouaremakingareallystupidmistake.

Now,ifyoudidinfactmakethedecisiontogoaheadwithC++,fortheloveofallthatisholy,
DONOTUSEDevC++.Itsold,unsupportedandavastlyinferiorchoiceoneverymeasurable
level.Dontworry,Illcovertheoptionsofflater.

Programmingisprogramming

Thisoneisabitdepressingbutcompletelytrue.ThereisnothingreallymagicalaboutGame
Programming. Its programming, pure and simple. In my professional life, Ive done game
programming, tools programming, desktop app development, mobile phone apps, web
development, enterprise development and even created an Internet startup. Through all of
that,theprogramming,thoughforvastlydifferentpurposeswasalmostalwaysthesame.Hell,
themostadvanced(anddifficult)codeIveeverwrittenwasinJavascript!Nowthebiggest
differencewithgamedevelopingmath,yeah,youaregoingtohavetolearnmath.

AnywayswhydoIbringthisup?Simple,beforeyoucanprogramgames,youneedtobeable
to program. I know that sounds horribly obvious but you would be amazed by how often
peoplejumpstraightintogameprogrammingwithoutlearningthebasicsfirst.Thatsaid,my
veryfirstlineofcodewasintheattempttocreateagame.Istillrememberittothisday:
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

2/29

1/29/2015

iReader

10PRINTWHATISYOURNAME?
All this really means is, the very first thing you are going to have to learn is the basics of
programming.Noworriesthough,Illcoverthatlatertoo.

Themostimportantthingis

Dosomething.Really,themostimportantthingyoucandoisstartwritingcode,startlearning,
jump in. All the planning, dreaming and forming of teams is all fun and such, but the most
importantthingyoucandois,umdo.Jumpin,learn,makemistakes,theexperiencewillbe
invaluable.

Your first game wont be good. Your second game wont be much better. But if you finish a
singlegame,youvedonebetterthan95%ofpeoplethatcamebeforeyou.DontplananMMO,
itswaybeyondyou,evenwithateamofafewhundredpeople.Hell,aimingmuchhigherthan
Pong is setting yourself up for failure. Pick something small and execute. Again, there is a
99.99%chanceyourgameisntgoingtobepublished,soapproachitasthelearningexperience
itis.

Nothingfrustratesnewdevelopersmorethanthelackofprogress.Thisiswhysmall,doable
goalsaresoimportant.Nothingmotivateslikesuccess!

ShouldIuseanengineorcreatemyown?

Assumingyouareanewdeveloper,frankly,thisisaprematurequestion.Graspthebasicsof
programmingbeforeyoueventhinkaboutusingorworse,creatinganengine.Otherwiseyou
aredoublingyourworkload,asyoulearnbothalanguageANDanengine.Asanewlearner,
youshouldbeminimizingthenumberofsubjectsyouneedtostudyatonce,asyoucanquickly
getoverwhelmedifyoutrytolearneverythingatonce.

Nowonceyouvegotthegistofthingsandarestartingoutcreatinganewgame,thisisavery
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

3/29

1/29/2015

iReader

validquestion.Onethingtokeepinmind,anenginelikeUDKorUnityaretensorhundredsof
thousands of man hours worth of work do you want to replicate that effort? Generally,
especiallyforasmalldeveloper,youarebestofftouseanengine,doublysoiftryingtomakea
commercialqualityproduct.

That said, if you are looking at it as a learning exercise have at it! You will learn a ton of
interesting and useful things working on a engine of your own. Generally, if its a learning
exercise,ittotallymakessensetodothingsthatmakenosense!

Themostimportanttakeawayfromthissectionis,ifyouarenewtodevelopment,putabitof
timeintolearningprogramming,thenaskthisquestionlater!

WhatlibrariesandtoolsshouldIuse?

Thisoneallcomesdowntothelanguageyoupick.Illbreakitdownbylanguageinjustafew
minutes.

Whataremylanguagechoices?

Alright, this one is a bit tricky, as frankly there are literally hundreds of programming
languages,butIwillcoveroffthemostpopularones.

C++thisisthelanguageyoushouldntpick,butnodoubtwill.

Itsprosyoucangetclosetothemetal,itstheprochoice,lotsof3rdpartycommercialand
freelibrariesanditiswellsupportedacrossplatforms.

Itscons?Justabouteverythingelse.Ittakes10xasmanylinesofcodetodosimplethings,its
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

4/29

1/29/2015

iReader

Itscons?Justabouteverythingelse.Ittakes10xasmanylinesofcodetodosimplethings,its
likejugglinglivehandgrenadessafetywise,itscompilationprocessisprimitiveandunwieldy,
itssyntaxispainful,itslearningcurveissteepanditsstandardlibrariesareawful.

Learningdifficulty:hard

EDIT:8/16/2011Tobehonest,IhavebeenoverlyhardonC++.Dontgetmewrong,this
does not mean that I am endorsing it for new developers, that is still a seriously bad idea!
However,withtheriseofiPhone(whichisObjectiveCbased,butsupportsC++)andAndroid
(whichisJavabased,butalsosupportsC++)asgamingplatforms,C++spopularityisonthe
rise.

C See C++, which is a superset of C. There are reasons to use just C and frankly its a bit
easiertocometogripswith,butitisliketakingatripbacktothestoneages.

Learningdifficulty:medium

C#fulldisclosure,allthingsbeingequal,thisisthelanguageIgoto.Generally,thisisthe
nonC++ language most people will recommend and for good reason. C# is a modern
derivativeofC++,inthatitwasbasedonC++(andnotJavaascommonlyheld).

Thepros?EXCELLENTstandardlibraries.ProbablythebestonanyplatformIveeverused.So
thingslikeworkingoverthenetwork,manipulatingstrings,loadingfiles,etcarebyfareasier
than C++. Oh, and LINQ, generics, anonymous methods and various other new language
featuresareprettygreat.

Its cons? Probably the biggest is, its tied to Microsoft and that makes many people
uncomfortable. As a result, its best implementation is on MS platforms, although it is
available on OS/X, iOS, Android and Linux, you do have to jump through a few more hoops
outside of MSland. Next up, its garbage collected, meaning you dont implicitly allocate
memory.Finally,insomeregards,itcanbeslowerthanC++,althoughIthinkthispointisway
overblownthesedays.

Learningdifficulty:medium

http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

5/29

1/29/2015

Learningdifficulty:medium

iReader

JavaJavaisatrickyonetowriteabout,becauseofmyC#bias.IusedJavabeforeC#came
around and I could see how it was more productive than C++ and appreciated the
encompassing libraries, especially as I was moving over from C++ at a time the Standard
TemplateLibrarywasanythingbutstandardthatsaid,sinceC#camealong,itfeelstomeas
asuperiorlanguageinjustabouteveryway.

Thepros?Theecosystemismassive,thetoolsandlibrarysupportarelegion.Therearenine
waysofdoingeverythinginJava,andthenumberoffreetools(Eclipse,NetBeans,Ant,etc)
aretrulystaggering.Languagewise,itsmuchlikeC#,librariesaremuchmorecapablethan
C++andthelanguageismuchlesslikelytobiteyouintheassifyoumakeaslightmistake.
Also,ifyouaredoingAndroiddevelopment,welluntilveryrecently(withaddedC++support)
itwastheonlygameintown.

Thecons?Javajusthasthiswayofannoyingyou,ofgettinginyourwaybecauseitthinksit
knows better than you. Parts of the language are kludgy, overly verbose and again just
annoying. In recent years, it has been evolving much less elegantly than C#, so the newer
languagefeaturesseemlikehalfassedpoorlyimplementeduglystepchildrencomparedtoC#(
and in some regards, C++ ). Also, Java is the language of academics and enterprises and it
showssomanythingsaresooverwhelminglyOVERengineeredastodriveyouinsane,asI
said earlier, there are nine ways of doing everything, but 5 of those ways are outdated, 3 are
awfulandfiguringoutwhatthegoodchoiceis,isuptoyou.Finallygamelibraryselectionis
prettylimited.

Oh,andOracleownthemnowofallthetechcompaniesintheworldIwouldwantincharge
ofmylanguageofchoice,OraclesureashellwouldntbethecompanyIwouldpick.Forpeople
that think Microsoft are the devil they dont know Oracle! Their throwing around lawsuits
left,rightandcenter(includingGoogle/Android)wouldnotmakemefeelgoodaboutthings.

Learningdifficulty:medium(*)
(*)figuringoutWHATtouse,fromthehundredsoflibraries,deprecatedfeatures,tools,etc..
isoverwhelmingandisprobablygoingtobeasbigachallengeforanewdeveloperaslearning
thelanguageitself

http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

6/29

1/29/2015

iReader

VisualBasictobehonest,since.NET,thislanguageeffectivelydied.UsingVB6isfrankly
just too outdated to bother with these days, which is a bit of a shame, as it filled a very nice
niche that hasnt completely been filled. Now, VB.net is basically C# with a VBish skin
applied.IamsureVB.netdeveloperswilldisagree,buttheyarewrong.

DelphiwasatimeIwouldhighlyrecommendthislanguage,butthishaven'tprogressedwell
forDelphi.Ironically,theguythatinventedC#wastheguybehindDelphi.Supportjustisnt
there,whichisashameasthelanguageisveryfriendlytonewerdevelopers.

LUA/Python/Ruby In all honesty, Ive only really dabbled with these 3 languages and
whileall3are(andcommerciallyhavebeen)goodlanguagesforembeddingwithinagame,
only Python really has a really solid game development community built around it, so is
probablythebestrecommendationfornewdevelopers.All3languagesshoulddefinitelybeon
your radar. My experience is very limited in all regards, so I dont really feel comfortable
makingasuggestiononewayortheother.Ifyouareanadvocateofanyoftheselanguagesand
wanttowriteasectiononthem,sendittomeforinclusion!
EDIT: If you are interested in Lua, be sure to check out Battle of the Lua game engines for
moredetails.

Onebigadvantagetoallthreeoftheselanguagesisyoucanprogramtheminteractively,which
means type some code and see a result. When you are just trying to figure things out, thats
prettypowerful!Lateroninthispost,IwillmostlyjustcoverPython,themostpopularofthe
three, especially in regards to game programming. There is also Iron Python which is an
implementationofPythononthe.NETplatform,whichmeansyougetallthelibrariesavailable
toC#andVB.net.

C++.NETOnthetopicof.NETlanguages,C++alsomadeaspecialversionofC++,with
additionalkeywordstomakeitcompatiblewith.NETlibrariesandamodethatmakesmemory
managementautomatic.Thatsaid,itwasakindscrewyhackishimplementationandnobody
reallytooktoit,soyoucanprobablyignoreC++.NETcompletely.TheonlyrealusecaseIcan
thinkofis,ifyouonlyknowC++syntaxandwanttodoGUIdevelopmentwithWinForms,this
maybethewaytogo.Thatsaid,thatsaprettydamnedminorusecase!

JavaScript I dont know how this little language managed to fit into every niche, but
damnedifitdoesnt!MostpeoplethinkofJavaScriptasawebscriptinglanguageandeasily
thatisitsmostcommonuse,butthislanguageendsupbeingusedjustabouteverywhere.Its
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx
7/29

1/29/2015

iReader

thatisitsmostcommonuse,butthislanguageendsupbeingusedjustabouteverywhere.Its
worthlearning,asitisreallyeverywhere,andalthoughbeginninglifeasabitofahack,ithas
provenitselfcapableagainandagain.Notmyfavoritelanguagetoworkin,butnottheworse
by a long shot! If a new programming paradigm comes along, you can bet a JavaScript
implementationwillcomealongsoonerthenlater!GivenHTML5andWindows8,Javascript
isonlygoingtogetmorepopularinthefuture,althoughImnotreallysurethisisagoodthing.
Javascriptisaprototypebasedlanguage.Alltold,Javascripthasprettygoodlibrarysupport
whenitcomestogames,andisoneofthelanguagesavailablewhenusingUnity.
EDIT:IfyouareinterestedinJavaScript,besuretocheckoutthelistofJavaScriptgamedev
libraries as well as my Cocos2Dhtml tutorials. I also have a pair of JavaScript book
recommendations.

AssemblyIfyouasabeginnerpickassemblyinthisdayandage,youdidsomethingwrong,
extremelywrong!ChoosingassemblyasyourfirstlanguagemakesC++looklikeawonderful
choice!Thatsaid,thisisaboutasclosetothemetalasyoucanreasonablyget.Inthisageofi7
quadcoreprocessorsthough,gettingclosetothatmetalisaprettystupidthingtodo.Atsome
pointAssemblymaybecomeimportanttoyou,butIhighlydoubtit.Untilitdoes,pretendit
doesntexist.

TheRestIhopeIdidntmissyourlanguageofchoice,astheresObjectiveC,D,F#,CAML,
Smalltalk,LISP,Perl,PHP,Haskel,Pascalandafewhundredotherlanguagesavailable.Many
ofthemaredomainorplatformspecificlanguages,orhavefairlypoorgamelibrarysupport.
ObjectiveCisgaininginpopularitybasedonitbeingthemainlanguageofiOSplatforms,but
outsidethatworlditisvirtuallyunknownandfranklyIhateit.Idontrecommendagainst
anyoftheselanguages,butnonearereallywellsuitedorverypopularforgamedevelopment.

ButImanartist,wheredoIstart?

Inthatcase,youshouldprobablystarthere.Pickoutanapplicationandgowithit.Manyof
theprogramsonthatlisthavefree/demoversionsavailable.Also,theGFSlistofapplications
usedismostlyfulloffreeapplicationsusedtocreategames.

SoIhavethisgreatideaforanMMO
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

8/29

1/29/2015

iReader

Alright, back to being negative again. You cant create an MMO. You and 10 of your best
friendscantcreateanMMO,unlessofcourseyour10friendsareallAlistdevelopersandeven
thenfranklyyoustillcantaffordtocreateanMMO.Gotafewmilliondollars?No?Thendrop
it,anMMOisntthewaytogo.Now,somedayyoumaybeabletoworkonaWarcraftkiller,
but as your first project well frankly thats like trying to find a cure for cancer in your high
schoolchemistryclass.Aimlower,muchmuchlower.

Ok,Ivedecidedtogoaheadwith

C++isthelanguageforme!

Egads,youjustwontlistenwillyouallright,weallmakethismistakewhenwestartout.If
youinsistongoingtheC++route,learnthelanguagefirst,usingthefollowingrecommended
toolsandlibraries.

Freely available resources for learning the language ( Books and


Tutorials)

Microsoft'sgettingstartedwithC++pageincludingBeginnerHowDoI?videos
MITC++Introductioncourseware.Theyhaveothermoreadvancedlessonsaswell.
ABeginnersC++(1996,outdated,butfree)
www.cplusplus.com is a surprisingly comprehensive site dedicated to C++. The
tutorialssectionisagoodplacetostart.

Onceyougetabitmoreadvanced,checkout

http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

9/29

1/29/2015

iReader

BruceEckel'sThinkinginC++2ndEdition

Iwillfillthisareainovertime.Muchofthefreeresourcesareterrible,oroutdated.Ifyouhave
agoodsuggestion,emailmeorcommentbelowandIwilladdit.

Recommendedbooks(Notfree)

TheC++ProgrammingLanguage
Thisisthebookbythelanguagecreatorhimself.Itisconsideredthelanguagebibleofsorts.It
maynotbethebestbooktolearnon,butitisabookeveryC++programmershouldhaveon
theirbookshelf.

C++HowtoProgram
Currentlyinits8thedition,thisisaprettygoodfirstbookforaprogrammertolearnwith.It
covers pretty much all of the language features and even covers Boost libraries, which is a
valuableaddition.Keepinmind,thisbook,likemostintroductorytexts,doesnotcoverGUI
programmingofanyform.

C++WithoutFear:ABeginner'sGuideThatMakesYouFeelSmart(2ndEdition)
This one I recommend with a caveat. It is probably the single best conversational
introductory C++ texts out there. It is very approachable and the pacing is quite good.
Nothing is implemented before its explained which is very nice. That said, some things are
wrongoroutdated,occasionallyteachyouTheCwayofdoingstuffinsteadoftheC++way.
Finally,theauthorrecommendsDevC++,whichisreallyreallyreallybad.Thoseflawaside,if
you find all other texts to dry, confusing or technical, you may want to check this one out.
Again, no GUI coverage and no Boost, but many of the newer language features are covered,
plusitspendsacouplechaptersattheendimplementingmorefullsolutions,whichisagood
thing.

BeginningC++ThroughGameProgramming3rdEdition
No doubt you have seen this title and in your future career as a C++ developer AND a game
developer, this sounds about perfect. It isnt, but it is not bad. Lets put this out there right
away,thiswontteachyouhowtoprogramgames,butwhatitwilldoisteachyoutoprogram

http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

10/29

1/29/2015

iReader

away,thiswontteachyouhowtoprogramgames,butwhatitwilldoisteachyoutoprogram
C++. As an introduction to C++ text, its not asgood as the previous twobooks. Asa game
programmingtextitsallbutuseless.SowhyamIrecommendingit?Itsadecentintroduction
toC++programmingthatusessimplegamesforallofthedemonstrations.So,insteadoffairly
abstractorcontrivedexamplesyouseeinothertexts,alltheexamplesaregamerelated.For
example,pointersandreferencesaretaughtbycreatingaTicTacToegame.Manypeoplewill
findthisaheckofaloteasiertowraptheirheadaroundthanmanyexamplesinotherbooks.

EffectiveC++
Thisisnotabeginnertext.Thisisanoldtext,outdatedevenasitdoesntcoverthelatestC++
standard. Heck, its 6 years old! So why am I recommending it? Simple, every good C++
programmerownsthisbook.Onceyougraspthebasicsofthelanguage,buythisbookandit
willmakeyouamuchbetterC++programmer.Seriously.HopefullyScottisworkingona4th
editionaswespeak.Onthebrightside,its6yearsoldsoyoushouldbeabletofinditcheaply.
InadditiontoStroustrupsbook,thisistheC++bible.

Tools

Whenitcomestotools,thechoicesareprettyclearwithC++

VisualC++Express2010MicrosoftsfreeC++compiler/IDE
CodeblocksIDEandMingWfreeC++compiler

Of the two, I would recommend Visual C++ personally, unless of course you arent running
Windows. There are a few other options, but they all require a bit more work or installing
plugins,butIwilllistthemforcompleteness

KDevelopalinuxbasedIDE,heavilycopiedfromVisualStudioinstyle
EclipseIDEforC++acrossplatform(Linux,Win,Mac)IDE,mainlyforJava,but
supportsC++
XCodeApplesIDE,supportsC++butisobviouslyMacOSonly
NetbeansforC++NetBeansisanotherJavaIDEthatsupportsC++.Itsactually
surprisinglynewuserfriendlybutnowthatOracleisincharge,expectthattoend!

Well,thatsaboutit.IfyouareworkingonWindows,IseenoreasontouseanythingbutVisual
C++personally.AnumberoftutorialsouttherewillrecommendDevC++DONTunderany

http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

11/29

1/29/2015

iReader

C++personally.AnumberoftutorialsouttherewillrecommendDevC++DONTunderany
circumstances use DevC++, its old, unsupported, buggy and has little to no advantages over
theotherchoices.Itwaspopularatthetimebecausebackthen,therewasnofreelyavailable
C++IDE,timeshavechanged.

Oh, and just to be thorough, there are also Emacs and Vi(m) which are actually just really
powerfultexteditorsthatyouthencallouttothelikesofGccortheMinGWcompiler.Imostly
justmentiontheseforcompletenessasifIdidntsomeguywithabeardandplaidshirtwould
nodoubtscoldmeovertheomission.InnowaydoIrecommendanewdeveloperstartwith
anyoftheseitems!

OnelastpointIthinkshouldbemadehere,yourchoiceofIDEhasabsolutelynoaffectonhow
crossplatformyourcodeis!Code(properly)writteninVisualC++canbelatercompiledfor
MacOSandLinux,forexample.

Gamingrelatedstuff

So, you are here for game programming advice and all Ive talked about is C++, now I will
rectifythat.Firstyouneedtodecideifyouareworkingin2Dor3D.Juststartingout,Ihighly
recommend sticking to 2D for now ( or stick to console apps until you get the gist of the
language ), yet once you decide to make the graphical plunge, there are 3 major ( and a few
thousand other! ) 2D graphic libraries out there. I know this sounds like a copout, but all
threeareequallygood,soyoucantreallymakeamistakehere.

2DLibraries

SDLSimpleDirectMediaLayer
Itsbeginnerfriendly,simple(relatively),crossplatform,wellsupportedandisusedtomake
commerciallyshippingproducts(liketherecentlyreleaseDungeonsofDredmore).Ithandles
justabouteveryaspectofcreatinga2Dgame,graphics,sound,loadingfiles,networkingyou
nameit.ItisverymuchaCbasedlibrary.YoucanuseitfromC++withouteffort,justdont
expectanyobjectorientedfeatures.

Allegro
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

12/29

1/29/2015

iReader

This is the library ( and Fastgraf ) I started out using many many many years ago. It was
originallywrittenfortheAtariSTandIamsimplyflooredthatitisstillaroundandinactive
development.Thatsaid,itwasgoodthenanditisgoodnow.Interestingtriviapoint,theguy
behind Allegro way back in the early 90s, went on to become one of the main programmers
behindXNA.Anyways,thismuchlikeSDL,coversjustabouteverythingyouwouldneedfor
2Dgameprogramming.AlsolikeSDL,itsverymuchaClibrary.

SFMLSimpleandFastMediaLibrary
Thenewkidontheblock,andfrankly,Ihavezeropersonalexperiencewiththislibrary.Like
the other two, it handles just about everything you would need to implement a 2D game.
Unliketheothers,thisisanobjectorientedlibrary(C++).Aquicklookattheclassesandit
lookslikeaverymodernandcleandesign.Onthatlevelalone,Iwouldprobablygothisrouteif
Iwasstartingouttoday.Itiseventdriven,whichisaveryhandything(andsomethingAllegro
ismovingtowards),whichshouldmakeyourgamestructureeasiertoimplement.

3DLibraries

If you are just learning, you probably shouldnt be working in 3D right now, yet here are the
primarylibrariesinusetoday.

OpenGL
OriginallydevelopedbySiliconGraphicsintheearly90s,thisisthegranddaddyof3DAPIs.
Itsbiggestadvantageisitscrossplatformnature,asOpenGLiseverywhere.Thisisespecially
true on mobile devices like Android and iPhone, which both implement a stripped down
version of Open GL called OpenGL ES. You can view the getting started guide here. If you
preferinbookformtheOpenGLProgrammingGuide(RedBook)haslongbeviewedasThe
OpenGLBible,theonebookallOpenGLprogrammersshouldown.Thatsaid,inrecentyears
OpenGL has changed quite a bit and the old cruft and obsolete instructions havent been
pruned out of this book yet. The NeHe tutorials have long been the goto resource for new
OpenGL developers, although in some ways they suffer the same problem as the Red Book,
timewaitsfornodocs!

DirectX
This is Microsofts primary game SDK ( Software Development Kit ) for creating games on
Windows and Xbox using C++ ( not be confused with XNA ). Unlike OpenGL, DirectX also
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx
13/29

1/29/2015

iReader

Windows and Xbox using C++ ( not be confused with XNA ). Unlike OpenGL, DirectX also
supportsInputandSound.Microsofthasprovidedsomefairlygoodtutorials.Onethingtobe
awareof,DirectX10and11requireVistaorhigher,sonoXPsupport!Thatsaid,DirectXisno
doubt the most popular SDK to use for commercial Windows games. Beginning Game
Programming is probably the best beginner friendly DirectX book, but keep in mind, you do
needtounderstandC++already!

Ogre3D
Ogre3Dsitsinaweirdspot.Itisnotafullgameengine,butitisnotlikeOpenGLorDirectX
either.InfactOGREusesboth.Ogreisa3Drenderingengine.Writteninverycleanobject
orientedC++,OgrehandlesanumberoftasksthatneitherDirectXorOpenGLdo,likeascene
graph(thedatastructureyourworldisstoredin),importersforalmostallmajor3Dmodeling
applications, landscapes, LOD ( level of detail ) support, etc. If you are using DirectX or
OpenGL to create a 3D game, these are all things you would have to write yourself. Ogre is
crossplatformandhasbeenusedtocreateanumberofpublishedgames.Thehaveapretty
goodmanual online. There are also a beginner and a pro book available, neither of which I
havereadthough.

OtherLibraries

ODEOpenDynamicsEngine
nVidiaPhysX
Are two freely available physics engines for accurately modeling real world physics in your
game.ODEisopensourcedaswell.ThereisalsoHavokwhichisincludedinUnreal(UDK),
butitslicensingisntsostraightforward.

Box2D
Aphysicsenginefor2Dgames.Free,powerfulandquiteabiteasierthanworkingin3D.

Boost
BoostisthefutureofC++,10oftheboostlibrariesarealreadypartoftheC++standard,with
morecomingsoon.Boostlibrariesperformdozensofcommontasksandmakeupforagiant
flawintheC++language(thestandardlibrariesarecrapcomparedtootherlanguages).That
said,theyarenttheeasiesttolearnandevenhardertounderstand.ManyBoostprogrammers
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

14/29

1/29/2015

iReader

said,theyarenttheeasiesttolearnandevenhardertounderstand.ManyBoostprogrammers
are amongst the best in the field, and it shows. There are books available for Boost too,
although the website actually has extremely good documentation for the majority of the
libraries.

GameEngines

Iwillcoverthisoffinadifferentpost,asEnginesarentreallytiedtoaparticularlanguage.For
example,thepopularUnrealengine,isverymuchwrittenandprogrammableinC++,butalso
can be programmed in UnrealScript. Unity is primarily C# based, but can be extended with
C++andscriptingwithJavascriptandBoo.PandacanbescriptedinPythonbutcanalsobe
programmedinC++.Enginesdontreallyfitinbylanguage.

Stilltoomanychoices,tellmeexactlywhattodo!

Alright,keepinmindthisisallentirelymyopinion,butasagamedeveloperlearningC++you
should:

GoheretodownloadandinstallVisualC++Express.
TaketheguidedtourthatwillintroduceyoutousingtheIDEandlanguage.
At this point I would recommend buying a C++ book such as this one. There are a ton of
resourcesontheweb,butmanyareoutdatedorwrongandthesheervolumeisoverwhelming.
Havingatleastonegoodbeginnersguideisideal.
Gothroughthatbookanddosomebasicexercise,createafewconsoleapplicationsandgeta
feelforthelanguage.
NowgoanddownloadSFML(VisualStudio2008)<until2010updateoccurs.
RunthroughtheSFMLconfiguration/startingtutorial.
Nowstartrunningthroughtheothertutorials.
Atthispoint,youshouldbereadytoconsidermakingagame.Startwithsomethingsmall,like
creatingaPacMancloneorsomethingsimilar.
Nowstartmakingmorecomplexgames,orusingorcreatingagameengine.
Congratulations,ifyougottothispoint,youarenowagameprogrammer!

http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

15/29

1/29/2015

iReader

Congratulations,ifyougottothispoint,youarenowagameprogrammer!

EDIT: This site now has a complete game from scratch using SFML tutorial available. You
need to have the basics of C++ down, but it will hopefully teach you quite a bit. It is a good
placetogoonceyouverunthroughacoupleC++tutorialsorafewchaptersofabook.

C#isthelanguageforme!

TheC#sectionisaloteasiertorightthanC++,asitsanewerlanguage,therearefewertools
andonelibrarydominatesthegameecosystem.

Freely available resources for learning the language ( Books and


Tutorials)

MSDNVisualC#DeveloperCenter
One really nice thing about working with Microsoft technologies is Microsoft know
documentation!Thenumberoftutorialsandhowtovideostheymakeavailableisextremely
vast.Thislinkaloneshouldhaveeverythingyouneedtoknowtogetupandrunning.They
alsohavemoreresources,includingthisintroductionvideoavailableattheBeginnerDeveloper
Learning Center. Once you are ready to move on to XNA give this tutorial a shot. To be
honest,theyprobablyprovideeverythingyouneedtosucceed.
C#Essentials
Afreeebook,coversthebasicsofC#prettywell.Abitdatedbutstillfree.Nicelymanyofthe
changestoC#overitsevolutionarecomplementarytotheoldways,sonotasmanywaysof
doingthingshavebeendeprecated.

http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

16/29

1/29/2015

iReader

RobMiles'C#YellowBook
AfreebookfromaprofessorattheUniversityofHullaboutlearningtoprogramusingC#.Its
actually pretty good and he updates annually. Very good first step for a C# developer that
doesntwanttospendmoney.

IntroductiontoProgrammingThroughGameDevelopmentUsingMicrosoftXNAGameStudio
RobMilesalsomadethisebookavailableforfreedownloadaswell.Itisallaboutlearninghow
toprogrambycreatinggamesinXNA.PersonallyIthinkthisiskindaabadidea,buttheprice
isright!Definitelygiveitashot,itisaverythoroughtextandifitworksforyou,youwillbeup
anddoingthefunstuffatamuchquickerpace.Itdoescoverjustabouteverythingyouneed
toknowtoprogramafullfeatured2Dgame.
GangofFourDesignPatterns
Truth is, this site is probably not going to make a lick of sense for you starting out, but
bookmarkitandcomebackeveryonceinawhile.Oneofthebestsitesondesignpatterns,and
designpatternsareaverygoodthingtoknow.Theywillchangethewayyoucode,forthe
better.

Recommendedbooks(Notfree)

.C#ProgrammingLanguage4thEdition(CoveringC#4.0)
One of the primary writers of this book is the language author. Just like in C++, with C# I
recommend the book by the language creator. Unlike the C++ equivalent, this book is more
beginnerfriendlyalthoughstillcomprehensive.AsaC#developer,thisisprobablythebible
ofC#books.UnlikeC++,C#haschangedextensivelyinashortperiodoftime,sobesureyou
getacopycoveringversion4!

HeadfirstC#2ndedition
Thisoneisabitdifferent,asthenameimplies,itjustsortajumpsinanddocumentsasitgoes.
Insteadofworkingonconsoleapplications,youareactuallydeveloprealGUIappsrightfrom
thestart.Forthosethatlearnbydoing,thisisanexcellentbook.Itisveryconversationaland
easytoread,althoughalittlechaoticinitsformatting(checkoutthepreviewandyouwillsee
what I mean! ). If this is how you learn, this book will be godsend, but I know it is not for
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx
17/29

1/29/2015

iReader

what I mean! ). If this is how you learn, this book will be godsend, but I know it is not for
everyone!

C#4InANutshell
Ijustlovethisseriesofbooks.Thesebooksareveryconciseandcovertheentirelanguage,but
canalsomakeforausefulreferencewellafteryouvegotthehangofthings.Thedownsideto
thisconcisenessis,thereisnotalotofhandholding,itcoversthelanguageonly(notalkofthe
IDEforexample)andthereisnocontinuityofexamplestotieitalltogether.Itdescribesa
language feature, gives an example and moves on. This may or may not work for you,
especiallyifyouhavenopriorlanguageexperience.

IlookedatanumberoflearnXNAprogrammingbookstoseeifanyofthemweresuitabletoa
new developer including Learning XNA 4, Microsoft XNA Game Studio 4.0: Learn
Programming Now! and Beginning XNA Game Programming and none do a good job of
coveringtheC#language.Myrecommendationistogetagraspofthelanguagebasicsfrom
anothersourcebeforejumpingintoaXNAspecificbook.

Tools

Thisareashouldbeextremelystraightforward,astherearereallyonlytwoidealIDEsforC#
development,VisualC#andMonodevelop.Thatsaid,Microsofthavemuddiedthewatersby
lettingtheirmarketingdepartmentgetinvolved,soyouhaveVisualC#,XNAGameStudioand
nowGameStudioisincludedaspartofWindowsPhoneDevelopmentToolsyeah,thatmakes
atonofsensetometoo!Justtoaddtothestupidity,WindowsPhoneDevelopmentTools(just
rollsoffthetongue)onlyworksonVistaandWindows7,soifyouarerunningWindowsXP,
youneedtodownloadthestandaloneversion.

So
VisualC#/GameStudioinstructions
IfyouarerunningWindows7orVista,downloadthis or if you are interested in running the
newestandbetaestdownloadthis.

http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

18/29

1/29/2015

iReader

However,ifyouarerunningWindowsXPdownloadthis.(DirectLinktoEXE)

MonoDevelop/SharpDevelopinstructions
Finally, if you are running on nonMicrosoft platform or for some reason dont want to use
VisualC#,MonoDevelopistheIDEofchoice.(DownloadPage)

ThereisalsoSharpDevelopifMonoDevelopisntforyou.(DownloadPage). It is Windows
onlyhowever.

Onekeythingtonote,ifyouareworkingwithandwantfullsupportforXNA,youwillneedto
useGameStudio/WindowsPhoneDevelopmentTools.A

Gamingrelatedstuff

XNA

Insteadofrepeatingthisoneinthe2Dand3Dlibrariessection,Illjustaddressitfirst.XNAis
wellregardedandisseenasabigreasontouseC#andforgoodreason,itreallyisawonderful
developmentenvironment.Atthemostbasiclevel,XNAisaC#friendlyversionofDirectX,
butthatissellingitfartooshort.
XNA handles most of the common tasks for game development. 2D graphics, 3D graphics,
audio,assetloadingandthecontentpipeline.Itisalsoahellofaloteasiertogetuptospeed
on than OpenGL or DirectX. The downside is, it is supported on Windows, Xbox and ( a
subset) on Windows Phone 7. A number of released games, including every Indy game on
Xbox,havebeenreleasedusingXNAtools.
TherearehoweverprojectstoportXNAtootherplatformsorlikethisone.
Formoredetailscheckitout.

2DLibraries

http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

19/29

1/29/2015

2DLibraries

iReader

SDL.Net
Its SDL, the C++ library, with C# bindings. Therefore it is capable of 2D graphics, sound,
loadingfiles,fonts,etcjustlikeSDL.C#specificdocumentationcanbefoundhere.

3DLibraries

OpenTK
OpenTKisawrapperaroundOpenGL(3dgraphics),OpenCL(allowscodetorunacrossCPU
andGPUs)andOpenAL(audio).Ifyouwanttodocrossplatform3D,OpenTKisthewayto
go.

SlimDX
ThisisawrapperaroundallthingsDirectX9/11.So,ifforsomereasonyoudontwanttouse
XNA,youcanusefullDirectX.Forabeginner,thereisprobablyverylittlereason,asXNAisa
fairbiteasiertouse.

Tao
TaobringsOpenGL(3DGraphics),OpenAL(audio),ODE(physics)andanumberofother
libraries to C#. Sadly, its mostly been abandoned so OpenTK is probably a better bet at this
point.

Axiom
ThisisaportofOGRE3Dto.NET.Sadlyittoodoesntappeartobethatactiveanymore.

OtherLibraries

Box2D.NET
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

20/29

1/29/2015

iReader

Box2Dphysicslibrary,for.NET.Aprettyimpressive2Donlyphysicslibrary.

BEPUPhysics
Isafull3Dphysicslibraryfor.NETthatalsosupportXbox360andWindowsPhone7.Inthe
developerswordsItsfastandhasabunchofcoolfeatureslikeconstraints,terrain,staticand
instanced meshes, continuous collision detection, custom collision rules, vehicles, easy
multithreading,yaddayaddayadda..

Stilltoomanychoices,tellmeexactlywhattodo!

Alright,duetoitsyouthandtheexcellenceofXNA,thisisaneasyonetowrite.

Firstoff,goanddownloadthenewestXNAGamestudio.
WatchsomeoftheMicrosofttrainingmaterials.
Createafewconsoleapps,getafeelingforthelanguage.Itwouldbeaverygoodideatobuya
goodintroductorybookrightnowifyoucanaffordit,runthroughtheirexamples.
NowitstimetogetyourfeetwetwithXNA.Runthroughthe2Dgametutorial.
UseXNAtocreateallmannerofsimple2Dthen3Dgames.
Congrats,youarenowagameprogrammer!

Javaisthelanguageforme!

http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

21/29

1/29/2015

iReader

Javaisthelanguageforme!

Freely available resources for learning the language ( Books and


Tutorials)

Oracle'sTutorialSite
Sun ( and now Oracle ) put together a very comprehensive set of tutorials for learning the
language. Start with the getting started tutorials and go from there. You can download the
wholewackofthemforofflinereadinghere.

IBMTutorials
IBM also has a huge list of Java tutorials available, running the gamut of subjects, some of
whichwouldreallysurpriseyoucomingfrombigblue!Keepinginmind,IBMwasthesource
ofEclipse,theyareprobablythesecondmostinvolvedcompanyintheJavaecosystem,aside
fromOracle.Lotsoftheirtutorialsareveryenterpriseoriented,butyouwillfindmanythatare
useful.Hereistheirintroductorytutorial,butperhapscoolestofall,theyhaveatutorialbuilt
aroundagameforteachingthelanguage!IBMreallyisaweirdbeast.

ThinkingInJava3rdEdition
Itsabitoutdated(2002)atthispointintime.Itishoweverabookthatisveryeasytoread,
followingalongandwillhelpyoulearnthelanguage.Youwillneedotherresources,butthis
book is a very good guide down the path of learning Java. Plus the whole free thing is very
nice!

Recommendedbooks(Notfree)

TheJavaProgrammingLanguage(ForthEdition)
In keeping with my trend of recommending books by the language creator, this book is co
authoredbyJamesGosling.Itisacomprehensiveandrelativelybeginnerfriendlyintroduction
totheJavaprogramminglanguage.Unfortunately,itisgettingabitold,andonlycoversupto
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx
22/29

1/29/2015

iReader

totheJavaprogramminglanguage.Unfortunately,itisgettingabitold,andonlycoversupto
J2SE 5, while J2SE 6 is the most current release. That said, this shouldnt be much of a
handicap.

HeadFirstJava
This book is an easy read, incredibly easy. Dare I say it, it is actually kind of fun. I already
knew Java to a degree and didnt really need a beginners book, but I noticed this one was
alwaystrendinginSafaristop10list(outofover14Kbooks!)andcouldntfigureoutwhysoI
gaveitaread.Itwasagenuinelyamusingbooktoread,itdidaverygoodjobofgettingthe
technicalinformationacrossinawaythatdidntfeelsodryandstuffylikemanytextsdo.It
may not be your style, but you should definitely check it out! Amazon offers a look inside
preview,andIsuggestyoudo.

JavaHowToProgram9thEdition
A VERY comprehensive introduction to Java at a whopping 1500 pages, it also comes with a
whoppingpricetag.Itishoweverthetextofchoiceformanyjavacoursesanditcoverspretty
muchallofthelanguageaspects,includingmanycommonlibrariesandframeworks,whichto
youasagameprogrammermaynotmatter.Againthough,thepricetagisakickintheteeth.

EffectiveJava
Thisisnotabeginnersbook,inthatitwontteachyouthelanguagebasics.Thisbook,hands
down, will make you a better Java programmer. Once youve mastered the basics of the
language,pickthisup!
IsurewishIhadthisbooktenyearsago.SomemightthinkthatIdontneedanyJavabooks,
butIneedthisone.
Who said that about Effective Java? James Gosling the language creator! I simply cannot
thinkofhigherpraise.

Tools

This is an area where Java has always got it right, tools. There over the years have been a
numberofgreatIDEsforJava,butthreehavereallyjumpedtotheforefrontandfortunatelyall
3areavailablefreely.
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

23/29

1/29/2015

iReader

JavaSDK
WhendevelopinginJava,yourfirststepistoinstalltheSDK(softwaredevelopmentkit).In
somecasesitmaybeincludedinyourIDEsinstall,butitissafesttostarthere.Justlikeall
thingsJavatherearebewilderingnumberofoptionsandflavors.ThereisJavaSE(standard
edition),EE(EnterpriseEdition),ME(MicroEdition),Embeddedaswellasvariousversions
forveryspecificdevicedevicesandprofiles.Hell,eventheJavausedforAndroiddevelopment
is completely different! ( And frankly isnt exactly Java, but thats neither here nor there ).
Long story short though, unless you know a reason not to, what you want is Java SE
DevelopmentKit7,atleastasofwritingitis.YouwillalsoseethisreferredtoastheJDKoras
J2SEonoccasionbecause,wellitsJava.Youwillstartnoticingatrendverysoon!

Eclipse
OriginallydevelopedbyIBM,thenowopensourceEclipseisthemostpopularJavaIDEinuse
today. Available across many platforms and sporting a pluggable UI, Eclipse has everything
and the kitchen sink for features. I would say it is the most capable of the IDEs but on the
same token, it is also the most confusing. If you are working on Android development it is
Googles preferred environment, so thats where the native tools are for authoring Android
apps.Thatsaid,IrecentlyworkedonanAndroidappandIHATEDtheexperience.Eclipse
keptfoulingupmyprojectsagainandagainandagain,ifIwasanewdeveloperImighthave
quit in frustration! Get to know the clean parameter, you are going to use it a lot. In all
honesty, for a new developer who isnt doing Android work, stay away from Eclipse to start
would be my advice. If you must use Eclipse, be sure not to go wild installing plugins unless
you absolutely need them! Even figuring out which version of Eclipse to download can be a
dauntingtask!Ifyoudontknow,downloadthisversion.

Netbeans
InthatspecialsortofwaythatJavahasofmakingthingsconfusingashell,Netbeansisboth
thenameofanIDEandthenameofaplatformfordevelopingSwingapplications.Inthiscase
wearetalkingabouttheIDE.Originallystartedasastudentproject(in96!),Sunpurchased
and open sourced it in 99. Since then, Sun (and now Oracle) have made continuous new
releases.It,likeEclipse,supportspluginsalthoughnowherenearasextensive(orannoying!).
Thatsaid,itjustworks.ForanewdeveloperthisistheoneIrecommendstartingwith.Again
likeEclipse,therearemanydifferentversionsandifyouchoosethewrongoneitinstallsaTON
of crap you dont need and probably dont want ( like web and database servers! ). On this
download page, unless you have a very good reason otherwise, its the JavaSE version you
want. ** I should note, you can do Android development using NetBeans, its just not
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

24/29

1/29/2015

iReader

supportedordocumentedbyGoogle.

IntelliJIDEA
ThisincrediblypopularIDE,welltobecompletelyhonest,Ihavealmostnoexperiencewith.
See,itusedtocostmoneyandEclipse/Netbeanswerealwaysgoodenough.Thatsaid,ina
worldfulloffreetools,peoplewerestillwillingtopayforIntelliJIDEA,thatsayssomething!
Now though, they have a completely free edition! Again, I have no direct experience with
IntelliJ beyond reading the website, but come time for my next Java project, I will definitely
checkitout.

Gamingrelatedstuff

2DLibraries

Slick
I believe this is the most commonly used 2D game library on Java these days. It is built on
lwjgl ( details below ) and uses OpenGL or Java2D for fast 2D rendering. Additionally it
supports fonts, sound, input and image loading. There is also support for spritesheets,
tilemapsand2Dcollisiondetection,allverycommonrequirementsincreatinga2Dgame.The
tutorialsevenwalkyouthroughcreatingacompletegame.Averycleanandbeginnerfriendly
library.

LibGDX
This library handles not only graphics, but sound, file handling, logging and input. You can
also create Android apps with very minimal code changes. Like slick it uses lwjgl, as well as
jogl behind the scenes. The design seems remarkably clean, but the documentation is a bit
lacking.

http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

25/29

1/29/2015

iReader

Java2D
ThisisJavasstandard2Ddrawinglibrary.Iamjustmentioningitforcompleteness,asIsee
noreasontouseitoverSlickorLibGDX.

3DLibraries

Jogamp/jogl
TheseprovideJavalanguagebindingsforOpenGL,OpenCL,OpenALandOpenMAXlibraries.
Thiscanprovideyouwithlowlevelaccesstoallyourgraphicandaudioneeds.Additionallyit
canworkwithJava2D,SwingandAWT.Atutorialforgettingstartedisavailablehere.Jogamp
is completely up to date with the latest OpenGL implementation and is the underlying
technologyinmanyhigherlevelJavagraphicslibraries.

lwjglLightweightJavaGameLibrary
Muchlikejogl,lwjglisalibrarybuiltontopofOpenGLandOpenAL.Additionallyitsupports
game controllers like gamepads and steering wheels. It has been used to make a number of
gamesandistheunderlyingtechnologypoweringthejMonkeyEngine.

jMonkeyEngine
Ok,itsnottechnicallyalibrary,itsafullgameengine.Whatdoesthatmean?Wellinsteadof
accomplishingonetask,itaccomplishesallthevarioustasksyouneedtocreateagame(andas
just mentioned, uses the lwjgl library to do it ). So in addition to graphics and sound, it
providesafullscenegraph,meshandgraphicsimportingmethods,aGUI,networkinglibrary
andmuchmore.Ifyouareplanningtoworkona3DgameonJava,starthere.Theresagood
selectionoftutorialsavailabletogetyoustarted.

OtherLibraries

jBullet/jbox2D
ThepopularBullet3DandBox2DphysicslibrariesalsohaveJavaimplementations.
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

26/29

1/29/2015

iReader

Stilltoomanychoices,tellmeexactlywhattodo!

Ok,firststepistodownloadandinstalltheJavatools.
Nextup,goaheadandgetNetBeansandinstallit.
NowdownloadandstartreadingThinkinginJava,givingsilentthankstoBruceEckelforhis
generosity.Ifyoucantfollowthisbook,orneedaprintone,considerpurchasingHeadFirst
Java.
Runthroughthefirstfewchapters,dotheexamplesandlearnthebasicsofthelanguage.
Onceyougraspthelanguagebasics,downloadandinstallSlick.
Runthroughthe"Spiegel"tutorial.
At this point, you should probably be capable of creating your own 2D games. If you are
interestedin3Dprogramming,considercheckingoutthejMonkeyEngine.
Finally, go out and get Effective Java and read it, twice. It will make you a better Java
programmer.
Congratulations,ifyougottothispoint,youarenowagameprogrammer!

Pythonisthelanguageforme!

Alright, this section is totally getting the shaft. Why? Frankly because I dont really know
PythonallthatwellanddontfeelcomfortablegivingadviceonasubjectIamnoteducatedon!
So,insteadIamgoingtogiveanumberoflinksthatwillbeofuse.

First,youneedtodownloadandinstallPythonitself.Ifyoudontknowwhichtopick,gowith
http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

27/29

1/29/2015

iReader
First,youneedtodownloadandinstallPythonitself.Ifyoudontknowwhichtopick,gowith
Python2.7.

Now, picking an IDE out for Python is a right confusing task. If you follow that threads
(incredibly bad) advice of choosing Vim or Emacs, I will personally come to your house and
smackyou!Thatsaid,aneasyalternativedoesntspringtomind.PersonallyifIwasworking
with Python today I would use Eclipse with the PyDev plugin. That said, I am not really
comfortablerecommendingthattoanewdeveloper.Komodoeditisperhapsasgooda(free)
choiceasanytostartwith,butitdoesnotsupportintegrateddebugging.

NowthatthemessybusinessofchoosinganIDEisalloverwiththingsgetmucheasier.There
isonedominant2DgamelibraryandthatisthePyGamewhichmayjustbethemostnewuser
friendly game library available. Tutorial support is quite good, as is the documentation.
Python really handles everything you could need to create a 2D game, graphics, sound,
controls,fonts,etc

However, if 2D isnt your thing, check out Panda3D. Stupid name aside, this is a powerful
engine that has been used to create commercial games. Again, like PyGame, it handles
everythingyoucouldpossiblyneedtocreateafull3Dgame.

There are even a couple free books like Dive Into Python 3 and A Byte of Python ( good
beginner text ). There is also a freely downloadable book Invent Your Own Computer Game
WithPython.

ThemostimportantpieceofadviceIcangiveyou,dontletpeopleconvinceyouthatPython
isntareallanguage.Ithasbeenusedinanumberofshipping,highqualitygamesandwill
continuetobeusedassuch.

http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

28/29

1/29/2015

iReader

Nowwhat?

So,youvepickedalanguage,thelibrariesyouwanttouseandnowyouneedto,youknowdo
something.Thisisalistofsuggestedprojectsforanewdeveloperinterestedingames,in(fully
myopinion)orderofdifficulty.Iamalwaysopentonewsuggestionshere,sosendthemin!
Also,ifyouwanttosharetheresultsofyourefforts,letmeknowandIwillmakethatavailable
too!

andeverythingelse!

Ifyouarelookingatgettinginto3Ddevelopmentcheckthislistof3Denginestogetstarted.If
youarestrugglingwiththeartsideoftheequation,besuretocheckoutAprogrammer'sguide
tocreatingartforyourgame.

Goodluckwithyourgamedevelopmentcareer!
Programming
Beginner,Programming,C#,CPP,Java

www.gamefromscratch.com
http://www.gamefromscratch.com/post/2011/08/04/Iwant

tobeagamedeveloper.aspx
http://goo.gl/ffgS

http://www.gamefromscratch.com/post/2011/08/04/Iwanttobeagamedeveloper.aspx

29/29

Das könnte Ihnen auch gefallen