Sei sulla pagina 1di 29

1/29/2015

iReader

Iwanttobeagamedeveloper nowwhat?

Withpeoplelookingtogetintogamedevelopmentthesamequestionscomeupoverandover,

soI’veoptedtoputmythoughtsonthesubjectinoneplaceandtocompilealistofresources

fornewdevelopers.

Thosequestions?

“Iwanttolearngameprogramming,whatlanguageshouldIuse?”fornewdevelopers. Thosequestions? “ShouldIuseanengine,orcreatemyown?”

“ShouldIuseanengine,orcreatemyown?”“Iwanttolearngameprogramming,whatlanguageshouldIuse?” “Whatlibrary/toolsshouldIuse"?” “Nowwhat?”

“Whatlibrary/toolsshouldIuse"?”“ShouldIuseanengine,orcreatemyown?” “Nowwhat?”

“Nowwhat?”“Whatlibrary/toolsshouldIuse"?”

Iwilltrytoaddressallofthesequestionsandmoreinthefollowingpost.

Forthoseofyouthatlikeskippingaheadtothelastpageinanovel,theselinksareforyou!

…theC++question.

Letmegetthe800lbgorillaoutofthewayfirstofall. C++. Thisisoneofthemost controversialandrepetitiousquestionsofall.Newdevelopershearfromotherdevelopersthat C++“iswhattheprosuse”andthereforewanttousethat.Tomakemattersevenworse,people answeringthequestionsareoftennewdevelopersaswellandwillrecommendwhattheyknow thuspushingpeopletousealanguagetheyprobablyshouldn’t.Frankly,ifyouhaveonlyever usedasinglelanguage,youreallyshouldn’tbeansweringthesekindsofquestions!

Alright,backtothewholeC++question. ShouldyoustartlearningwithC++? NO. See,no maybe,nowishywashyanswerorcaveats,it’ssimple,C++isanepicallystupidlanguageto startwith. It’saboutthesameasstartingtolearnmathbystartingwithadvancedcalculus.

1/29/2015

iReader

Again,dumb. IfyouaregoingtolistentoasinglepieceofadviceIgive,it’sDONOTSTART WITHC++.Iknow,ofcourse,thatyouaregoingtocompletelydisregardthisadviceandstart

withC++,butin3or4yearswhenyou’vegotthescarsandtraumafromignoringmyadvice,

I’mgoingtosmugly*tisktisk*andgiveyoumybest“Itoldyouso!”.Iwillofferanotherpiece

ofadvicewhileIamatit…anyonethatrecommendsyoustartwithC++,inthefutureignore

theiradvice!

Don’tgetmewrong,ItotallyunderstandwhyyouwanttogowithC++,I’mjustasguilty.

RecentlyIpurchasedasetofgolfclubsandI’mahorrificallymehgolfer,butIgotasetof

“blades”causethat’swhatthepro’suse.Thegotcha?I’mnoprogolfer,andmygoddidthese

golfclubstotallyruinedmygolfgame.Sometimesusingwhattheprosuseisn’ttherightthing

todo.Alright,offthattangent.

Again,thesearejustmyopinions(andthoseofthevastmajorityofpeoplethatwentdownthis

roadthemselves!)andIknowyouaregoingtostartwithC++anyways,butdon’tsayIdidn’t

warnyou,becauseyouaremakingareallystupidmistake.

Now,ifyoudidinfactmakethedecisiontogoaheadwithC++,fortheloveofallthatisholy,

DONOTUSEDevC++.It’sold,unsupportedandavastlyinferiorchoiceoneverymeasurable

level.Don’tworry,I’llcovertheoptionsofflater.

Programmingis…programming

Thisoneisabitdepressingbutcompletelytrue. ThereisnothingreallymagicalaboutGame Programming. It’sprogramming,pureandsimple. Inmyprofessionallife,I’vedonegame programming, tools programming, desktop app development, mobile phone apps, web development,enterprisedevelopmentandevencreatedanInternetstartup. Throughallof that,theprogramming,thoughforvastlydifferentpurposeswasalmostalwaysthesame.Hell, themostadvanced(anddifficult)codeI’veeverwrittenwasinJavascript! Nowthebiggest differencewithgamedeveloping…math,yeah,youaregoingtohavetolearnmath.

Anyways…whydoIbringthisup?Simple,beforeyoucanprogramgames,youneedtobeable toprogram. Iknowthatsoundshorriblyobviousbutyouwouldbeamazedbyhowoften peoplejumpstraightintogameprogrammingwithoutlearningthebasicsfirst.Thatsaid,my veryfirstlineofcodewasintheattempttocreateagame.Istillrememberittothisday:

1/29/2015

iReader

10PRINT“WHATISYOURNAME?”

Allthisreallymeansis,theveryfirstthingyouaregoingtohavetolearnisthebasicsof

programming.Noworriesthough,I’llcoverthatlatertoo.

Themostimportantthingis…

Dosomething.Really,themostimportantthingyoucandoisstartwritingcode,startlearning, jumpin. Alltheplanning,dreamingandformingofteamsisallfunandsuch,butthemost importantthingyoucandois,um…do.Jumpin,learn,makemistakes,theexperiencewillbe invaluable.

Yourfirstgamewon’tbegood. Yoursecondgamewon’tbemuchbetter. Butifyoufinisha

singlegame,you’vedonebetterthan95%ofpeoplethatcamebeforeyou.Don’tplananMMO,

it’swaybeyondyou,evenwithateamofafewhundredpeople.Hell,aimingmuchhigherthan Pongissettingyourselfupforfailure. Picksomethingsmallandexecute. Again,thereisa

99.99%chanceyourgameisn’tgoingtobepublished,soapproachitasthelearningexperience

itis.

Nothingfrustratesnewdevelopersmorethanthelackofprogress. Thisiswhysmall,doable goalsaresoimportant.Nothingmotivateslikesuccess!

ShouldIuseanengineorcreatemyown?

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

Nowonceyou’vegotthegistofthingsandarestartingoutcreatinganewgame,thisisavery

1/29/2015

iReader

validquestion.Onethingtokeepinmind,anenginelikeUDKorUnityaretensorhundredsof thousandsofmanhoursworthofwork…doyouwanttoreplicatethateffort? Generally, especiallyforasmalldeveloper,youarebestofftouseanengine,doublysoiftryingtomakea commercialqualityproduct.

Thatsaid,ifyouarelookingatitasalearningexercise…haveatit! Youwilllearnatonof interestingandusefulthingsworkingonaengineofyourown. Generally,ifit’salearning exercise,ittotallymakessensetodothingsthatmakenosense!

Themostimportanttake­awayfromthissectionis,ifyouarenewtodevelopment,putabitof

timeintolearningprogramming,thenaskthisquestionlater!

WhatlibrariesandtoolsshouldIuse?

Thisoneallcomesdowntothelanguageyoupick. I’llbreakitdownbylanguageinjustafew minutes.

Whataremylanguagechoices?

Alright,thisoneisabittricky,asfranklythereareliterallyhundredsofprogramming

languages,butIwillcoveroffthemostpopularones.

C++–thisisthelanguageyoushouldn’tpick,butnodoubtwill.

It’spros…youcangetclosetothemetal,it’stheprochoice,lotsof3rdpartycommercialand

freelibrariesanditiswellsupportedacrossplatforms.

It’scons?Justabouteverthingelse Ittakes10xasman linesofcodetodosimplethingsit’s

1/29/2015

iReader

y

.

y

,

likejugglinglivehandgrenadessafetywise,it’scompilationprocessisprimitiveandunwieldy,

it’ssyntaxispainful,it’slearningcurveissteepandit’sstandardlibrariesareawful.

Learningdifficulty:hard

EDIT:–8/16/2011Tobehonest,IhavebeenoverlyhardonC++. Don’tgetmewrong,this doesnotmeanthatIamendorsingitfornewdevelopers,thatisstillaseriouslybadidea! However,withtheriseofiPhone(whichisObjective­Cbased,butsupportsC++)andAndroid (whichisJavabased,butalsosupportsC++)asgamingplatforms,C++’spopularityisonthe rise.

SeeC++,whichisasupersetofC. TherearereasonstousejustCandfranklyit’sabit easiertocometogripswith,butitisliketakingatripbacktothestoneages.

Learningdifficulty:medium

C#–fulldisclosure,allthingsbeingequal,thisisthelanguageIgoto. Generally,thisisthe non­C++languagemostpeoplewillrecommendandforgoodreason. C#isamodern derivativeofC++,inthatitwasbasedonC++(andnotJavaascommonlyheld).

Thepros?EXCELLENTstandardlibraries.ProbablythebestonanyplatformI’veeverused.So thingslikeworkingoverthenetwork,manipulatingstrings,loadingfiles,etc…arebyfareasier thanC++. Oh,andLINQ,generics,anonymousmethodsandvariousother“new”language featuresareprettygreat.

It’scons? Probablythebiggestis,it’stiedtoMicrosoftandthatmakesmanypeople uncomfortable. Asaresult,it’sbestimplementationisonMSplatforms,althoughitis availableonOS/X,iOS,AndroidandLinux,youdohavetojumpthroughafewmorehoops outsideofMS­land. Nextup,it’sgarbagecollected,meaningyoudon’timplicitlyallocate memory.Finally,insomeregards,itcanbeslowerthanC++,althoughIthinkthispointisway overblownthesedays.

L

i diffi lt

di

1/29/2015

iReader

earnng

cu y:me um

Java–Javaisatrickyonetowriteabout,becauseofmyC#bias.IusedJavabeforeC#came around and I could see how it was more productive than C++ and appreciated the encompassinglibraries,especiallyasIwasmovingoverfromC++atatimetheStandard TemplateLibrarywasanythingbutstandard…thatsaid,sinceC#camealong,itfeelstomeas asuperiorlanguageinjustabouteveryway.

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

Thecons? Javajusthasthiswayofannoyingyou,ofgettinginyourwaybecauseitthinksit knowsbetterthanyou. Partsofthelanguagearekludgy,overlyverboseandagain…just annoying. Inrecentyears,ithasbeenevolvingmuchlesselegantlythanC#,sothenewer languagefeaturesseemlikehalfassedpoorlyimplementeduglystepchildrencomparedtoC#( andinsomeregards,C++). Also,Javaisthelanguageofacademicsandenterprisesandit shows…somanythingsaresooverwhelminglyOVERengineeredastodriveyouinsane,asI

saidearlier,thereareninewaysofdoingeverything,but5ofthosewaysareoutdated,3are

awfulandfiguringoutwhatthegoodchoiceis,isuptoyou. Finallygamelibraryselectionis prettylimited.

Oh,andOracleownthemnow…ofallthetechcompaniesintheworldIwouldwantincharge ofmylanguageofchoice,Oraclesureashellwouldn’tbethecompanyIwouldpick.Forpeople thatthinkMicrosoftarethedevil…theydon’tknowOracle! Theirthrowingaroundlawsuits left,rightandcenter(includingGoogle/Android)wouldnotmakemefeelgoodaboutthings.

Learningdifficulty:medium(*)

(*)–figuringoutWHATtouse,fromthehundredsoflibraries,deprecatedfeatures,tools,etc

isoverwhelmingandisprobablygoingtobeasbigachallengeforanewdeveloperaslearning

thelanguageitself

1/29/2015

iReader

VisualBasic–tobehonest,since.NET,thislanguageeffectivelydied.UsingVB6isfrankly

justtoooutdatedtobotherwiththesedays,whichisabitofashame,asitfilledaverynice nichethathasn’tcompletelybeenfilled. Now,VB.netisbasicallyC#withaVB’ishskin

applied.IamsureVB.netdeveloperswilldisagree,but…theyarewrong.

Delphi–

Delphi–wasatimeIwouldhighlyrecommendthislanguage,butthishaven'tprogressedwell forDelphi.Ironically,theguythatinventedC#wastheguybehindDelphi. Supportjustisn’t there,whichisashameasthelanguageisveryfriendlytonewerdevelopers.

LUA/Python/Ruby–Inallhonesty,I’veonlyreallydabbledwiththese3languagesand

whileall3are(andcommerciallyhavebeen)goodlanguagesforembeddingwithinagame,

onlyPythonreallyhasareallysolidgamedevelopmentcommunitybuiltaroundit,sois

probablythebestrecommendationfornewdevelopers.All3languagesshoulddefinitelybeon

yourradar. Myexperienceisverylimitedinallregards,soIdon’treallyfeelcomfortable makingasuggestiononewayortheother.Ifyouareanadvocateofanyoftheselanguagesand wanttowriteasectiononthem,sendittomeforinclusion!

EDIT:IfyouareinterestedinLua,besuretocheckoutBattleoftheLuagameenginesfor

moredetails.

Onebigadvantagetoallthreeoftheselanguagesisyoucanprogramtheminteractively,which meanstypesomecodeandseearesult. Whenyouarejusttryingtofigurethingsout,that’s prettypowerful!Lateroninthispost,IwillmostlyjustcoverPython,themostpopularofthe three,especiallyinregardstogameprogramming. ThereisalsoIronPythonwhichisan implementationofPythononthe.NETplatform,whichmeansyougetallthelibrariesavailable toC#andVB.net.

C++.NET–Onthetopicof.NETlanguages,C++alsomadea“special”versionofC++,with additionalkeywordstomakeitcompatiblewith.NETlibrariesandamodethatmakesmemory managementautomatic. Thatsaid,itwasakindscrewy­hackishimplementationandnobody reallytooktoit,soyoucanprobablyignoreC++.NETcompletely.TheonlyrealusecaseIcan thinkofis,ifyouonlyknowC++syntaxandwanttodoGUIdevelopmentwithWinForms,this maybethewaytogo.Thatsaid,that’saprettydamnedminorusecase!

JavaScript–Idon’tknowhowthislittlelanguagemanagedtofitintoeveryniche,but damnedifitdoesn’t! MostpeoplethinkofJavaScriptasawebscriptinglanguageandeasily ’

1/29/2015

iReader

thatisitsmostcommonuse,butthislanguageendsupbeingusedjustabouteverywhere.Its worthlearning,asitisreallyeverywhere,andalthoughbeginninglifeasabitofahack,ithas provenitselfcapableagainandagain.Notmyfavoritelanguagetoworkin,butnottheworse byalongshot! Ifanewprogrammingparadigmcomesalong,youcanbetaJavaScript

implementationwillcomealongsoonerthenlater!GivenHTML5andWindows8,Javascript

isonlygoingtogetmorepopularinthefuture,althoughI’mnotreallysurethisisagoodthing. Javascriptisaprototypebasedlanguage. Alltold,Javascripthasprettygoodlibrarysupport whenitcomestogames,andisoneofthelanguagesavailablewhenusingUnity.

Assembly–Ifyouasabeginnerpickassemblyinthisdayandage,youdidsomethingwrong, extremelywrong!ChoosingassemblyasyourfirstlanguagemakesC++looklikeawonderful

choice!Thatsaid,thisisaboutasclosetothemetalasyoucanreasonablyget.Inthisageofi7

quadcoreprocessorsthough,gettingclosetothatmetalisaprettystupidthingtodo.Atsome pointAssemblymaybecomeimportanttoyou,butIhighlydoubtit. Untilitdoes,pretendit doesn’texist.

TheRest­IhopeIdidn’tmissyourlanguageofchoice,asthere’sObjective­C,D,F#,CAML, Smalltalk,LISP,Perl,PHP,Haskel,Pascalandafewhundredotherlanguagesavailable.Many ofthemaredomainorplatformspecificlanguages,orhavefairlypoorgamelibrarysupport. ObjectiveCisgaininginpopularitybasedonitbeingthemainlanguageofiOSplatforms,but outsidethatworlditisvirtuallyunknownandfrankly…Ihateit. Idon’trecommendagainst anyoftheselanguages,butnonearereallywellsuitedorverypopularforgamedevelopment.

ButI’manartist,wheredoIstart?

SoIhavethisgreatideaforanMMO…

1/29/2015

iReader

Alright,backtobeingnegativeagain. Youcan’tcreateanMMO. Youand10ofyourbest

friendscan’tcreateanMMO,unlessofcourseyour10friendsareallA­listdevelopersandeven

thenfranklyyoustillcan’taffordtocreateanMMO.Gotafewmilliondollars?No?Thendrop it,anMMOisn’tthewaytogo. Now,somedayyoumaybeabletoworkonaWarcraftkiller, butasyourfirstproject…wellfranklythat’sliketryingtofindacureforcancerinyourhigh schoolchemistryclass.Aimlower,muchmuchlower.

Ok,I’vedecidedtogoaheadwith…

C++isthelanguageforme!

Egads,youjustwontlistenwillyou…allright,weallmakethismistakewhenwestartout.If

youinsistongoingtheC++route,learnthelanguagefirst,usingthefollowingrecommended

toolsandlibraries.

Freely available resources for learning the language ( Books and Tutorials)

resources for learning the language ( Books and Tutorials) Microsoft'sgettingstartedwithC++page including

Microsoft'sgettingstartedwithC++pageincludingBeginnerHowDoI?videos MITC++Introductioncourseware.Theyhaveothermoreadvancedlessonsaswell.

ABeginnersC++(1996,outdated,butfree)

www.cplusplus.comisasurprisinglycomprehensivesitededicatedtoC++. The tutorialssectionisagoodplacetostart.

Onceyougetabitmoreadvanced,checkout

isagoodplacetostart. Onceyougetabitmoreadvanced,checkout

1/29/2015

iReader

Iwillfillthisareainovertime.Muchofthefreeresourcesareterrible,oroutdated.Ifyouhave

agoodsuggestion,emailmeorcommentbelowandIwilladdit.

Recommendedbooks(Notfree)

Thisisthebookbythelanguagecreatorhimself.Itisconsideredthelanguagebibleofsorts.It

maynotbethebestbooktolearnon,butitisabookeveryC++programmershouldhaveon

theirbookshelf.

Currentlyinit’s8thedition,thisisaprettygoodfirstbookforaprogrammertolearnwith.It

coversprettymuchallofthelanguagefeaturesandevencoversBoostlibraries,whichisa valuableaddition. Keepinmind,thisbook,likemostintroductorytexts,doesnotcoverGUI programmingofanyform.

This one I recommend with a caveat. It is probably the single best “conversational” introductoryC++textsoutthere. Itisveryapproachableandthepacingisquitegood. Nothingisimplementedbeforeit’sexplainedwhichisverynice. Thatsaid,somethingsare wrongoroutdated,occasionallyteachyou“TheCway”ofdoingstuffinsteadoftheC++way. Finally,theauthorrecommendsDevC++,whichisreallyreallyreallybad.Thoseflawaside,if youfindallothertextstodry,confusingortechnical,youmaywanttocheckthisoneout. Again,noGUIcoverageandnoBoost,butmanyofthenewerlanguagefeaturesarecovered, plusitspendsacouplechaptersattheendimplementingmorefullsolutions,whichisagood thing.

NodoubtyouhaveseenthistitleandinyourfuturecareerasaC++developerANDagame developer,thissoundsaboutperfect. Itisn’t,butitisnotbad. Letsputthisoutthereright awa thiswon’tteach ouhowto roram amesbutwhatitwilldoisteach outo roram

1/29/2015

iReader

y C++. AsanintroductiontoC++text,it’snotasgoodastheprevioustwobooks. Asagame programmingtextit’sallbutuseless.SowhyamIrecommendingit?It’sadecentintroduction toC++programmingthatusessimplegamesforallofthedemonstrations.So,insteadoffairly abstractorcontrivedexamplesyouseeinothertexts,alltheexamplesaregamerelated. For example,pointersandreferencesaretaughtbycreatingaTicTacToegame.Manypeoplewill findthisaheckofaloteasiertowraptheirheadaroundthanmanyexamplesinotherbooks.

y,

p

g

g

,

y

p

g

Thisisnotabeginnertext.Thisisanoldtext,outdatedevenasitdoesn’tcoverthelatestC++ standard.Heck,it’s6yearsold! SowhyamIrecommendingit? Simple,everygoodC++ programmerownsthisbook. Onceyougraspthebasicsofthelanguage,buythisbookandit

willmakeyouamuchbetterC++programmer.Seriously.HopefullyScottisworkingona4th

editionaswespeak.Onthebrightside,it’s6yearsoldsoyoushouldbeabletofinditcheaply.

InadditiontoStroustrup’sbook,thisistheC++bible.

Tools

Whenitcomestotools,thechoicesareprettyclearwithC++

Tools Whenitcomestotools,thechoicesareprettyclearwithC++ VisualC++Express2010 Microsoft’sfreeC++compiler/IDE

VisualC++Express2010Microsoft’sfreeC++compiler/IDE

CodeblocksIDEandMingWfreeC++compiler

Ofthetwo,IwouldrecommendVisualC++personally,unlessofcourseyouaren’trunning Windows. Thereareafewotheroptions,buttheyallrequireabitmoreworkorinstalling plugins,butIwilllistthemforcompleteness

plugins,butIwilllistthemforcompleteness KDevelop

KDevelopalinuxbasedIDE,heavilycopiedfromVisualStudioinstyle EclipseIDEforC++acrossplatform(Linux,Win,Mac)IDE,mainlyforJava,but supportsC++ XCodeApple’sIDE,supportsC++butisobviouslyMacOSonly NetbeansforC++ NetBeansisanotherJavaIDEthatsupportsC++. It’sactually surprisinglynewuserfriendlybutnowthatOracleisincharge,expectthattoend!

Well,that’saboutit.IfyouareworkingonWindows,IseenoreasontouseanythingbutVisual

C++

ll

A

b ftt il

tth

ill

dD C++ DON’T d

1/29/2015

iReader

… circumstancesuseDevC++,it’sold,unsupported,buggyandhaslittletonoadvantagesover theotherchoices. Itwaspopularatthetimebecausebackthen,therewasnofreelyavailable C++IDE,timeshavechanged.

unerany

personay. numero uorasou erew recommen ev

Oh,andjusttobethorough,therearealsoEmacsandVi(m)whichareactuallyjustreally powerfultexteditorsthatyouthencallouttothelikesofGccortheMinGWcompiler.Imostly justmentiontheseforcompleteness;asifIdidn’tsomeguywithabeardandplaidshirtwould nodoubtscoldmeovertheomission. InnowaydoIrecommendanewdeveloperstartwith anyoftheseitems!

OnelastpointIthinkshouldbemadehere,yourchoiceofIDEhasabsolutelynoaffectonhow

crossplatformyourcodeis!Code(properly)writteninVisualC++canbelatercompiledfor

MacOSandLinux,forexample.

Gamingrelatedstuff

So,youarehereforgameprogrammingadviceandallI’vetalkedaboutisC++,nowIwill

rectifythat.Firstyouneedtodecideifyouareworkingin2Dor3D.Juststartingout,Ihighly

recommendstickingto2Dfornow(orsticktoconsoleappsuntilyougetthegistofthe

language),yetonceyoudecidetomakethegraphicalplunge,thereare3major(andafew

thousandother!)2Dgraphiclibrariesoutthere. Iknowthissoundslikeacop­out,butall threeareequallygood,soyoucan’treallymakeamistakehere.

2DLibraries

It’sbeginnerfriendly,simple(relatively),crossplatform,wellsupportedandisusedtomake commerciallyshippingproducts(liketherecentlyreleaseDungeonsofDredmore).Ithandles

justabouteveryaspectofcreatinga2Dgame,graphics,sound,loadingfiles,networking…you

nameit. ItisverymuchaCbasedlibrary. YoucanuseitfromC++withouteffort,justdon’t expectanyobjectorientedfeatures.

1/29/2015

iReader

Thisisthelibrary(andFastgraf)Istartedoutusingmanymanymanyyearsago. Itwas originallywrittenfortheAtariSTandIamsimplyflooredthatitisstillaroundandinactive development.Thatsaid,itwasgoodthenanditisgoodnow.Interestingtriviapoint,theguy

behindAllegrowaybackintheearly90s,wentontobecomeoneofthemainprogrammers

behindXNA. Anyways,thismuchlikeSDL,coversjustabouteverythingyouwouldneedfor

2Dgameprogramming.AlsolikeSDL,it’sverymuchaClibrary.

Thenewkidontheblock,andfrankly,Ihavezeropersonalexperiencewiththislibrary. Like

theothertwo,ithandlesjustabouteverythingyouwouldneedtoimplementa2Dgame.

Unliketheothers,thisisanobjectorientedlibrary(C++). Aquicklookattheclassesandit lookslikeaverymodernandcleandesign.Onthatlevelalone,Iwouldprobablygothisrouteif Iwasstartingouttoday.Itiseventdriven,whichisaveryhandything(andsomethingAllegro ismovingtowards),whichshouldmakeyourgamestructureeasiertoimplement.

3DLibraries

Ifyouarejustlearning,youprobablyshouldn’tbeworkingin3Drightnow,yetherearethe

primarylibrariesinusetoday.

OriginallydevelopedbySiliconGraphicsintheearly90s,thisisthegranddaddyof3DAPIs.

It’sbiggestadvantageisit’scrossplatformnature,asOpenGLiseverywhere.Thisisespecially trueonmobiledeviceslikeAndroidandiPhone,whichbothimplementastrippeddown versionofOpenGLcalledOpenGLES. Youcanviewthegettingstartedguidehere.Ifyou preferinbookformtheOpenGLProgrammingGuide(RedBook)haslongbeviewedas“The OpenGLBible”,theonebookallOpenGLprogrammersshouldown.Thatsaid,inrecentyears OpenGLhaschangedquiteabitandtheoldcruftandobsoleteinstructionshaven’tbeen prunedoutofthisbookyet.TheNeHetutorialshavelongbeenthegotoresourcefornew OpenGLdevelopers,althoughinsomewaystheysufferthesameproblemastheRedBook, timewaitsfornodocs!

ThisisMicrosoft’sprimarygameSDK(SoftwareDevelopmentKit)forcreatinggameson

1/29/2015

iReader

WindowsandXboxusingC++(notbeconfusedwithXNA). UnlikeOpenGL,DirectXalso supportsInputandSound.Microsofthasprovidedsomefairlygoodtutorials.Onethingtobe

awareof,DirectX10and11requireVistaorhigher,sonoXPsupport!Thatsaid,DirectXisno

Ogre3Dsitsinaweirdspot. Itisnotafullgameengine,butitisnotlikeOpenGLorDirectX either. InfactOGREusesboth. Ogreisa3Drenderingengine. Writteninverycleanobject orientedC++,OgrehandlesanumberoftasksthatneitherDirectXorOpenGLdo,likeascene

graph(thedatastructureyourworldisstoredin),importersforalmostallmajor3Dmodeling

applications,landscapes,LOD(levelofdetail)support,etc. IfyouareusingDirectXor OpenGLtocreatea3Dgame,theseareallthingsyouwouldhavetowriteyourself. Ogreis crossplatformandhasbeenusedtocreateanumberofpublishedgames. Thehaveapretty goodmanualonline. Therearealsoabeginnerandaprobookavailable,neitherofwhichI havereadthough.

OtherLibraries

Aretwofreelyavailablephysicsenginesforaccuratelymodelingrealworldphysicsinyour game. ODEisopensourcedaswell. ThereisalsoHavokwhichisincludedinUnreal(UDK), butit’slicensingisn’tsostraightforward.

Aphysicsenginefor2Dgames.Free,powerfulandquiteabiteasierthanworkingin3D.

BoostisthefutureofC++,10oftheboostlibrariesarealreadypartoftheC++standard,with

morecomingsoon. Boostlibrariesperformdozensofcommontasksandmakeupforagiant flawintheC++language(thestandardlibrariesarecrapcomparedtootherlanguages).That saidtheyaren’ttheeasiesttolearnandevenhardertounderstand ManyBoostprogrammers

1/29/2015

iReader

,

.

areamongstthebestinthefield,anditshows.TherearebooksavailableforBoosttoo,

althoughthewebsiteactuallyhasextremelygooddocumentationforthemajorityofthe

libraries.

GameEngines

Iwillcoverthisoffinadifferentpost,asEnginesaren’treallytiedtoaparticularlanguage.For example,thepopularUnrealengine,isverymuchwrittenandprogrammableinC++,butalso canbeprogrammedinUnrealScript. UnityisprimarilyC#based,butcanbeextendedwith C++andscriptingwithJavascriptandBoo. PandacanbescriptedinPythonbutcanalsobe programmedinC++.Enginesdon’treallyfitinbylanguage.

Stilltoomanychoices,tellmeexactlywhattodo!

Alright,keepinmindthisisallentirelymyopinion,butasagamedeveloperlearningC++you

should:

GoheretodownloadandinstallVisualC++Express.

TaketheguidedtourthatwillintroduceyoutousingtheIDEandlanguage.

AtthispointIwouldrecommendbuyingaC++booksuchasthisone. Thereareatonof resourcesontheweb,butmanyareoutdatedorwrongandthesheervolumeisoverwhelming. Havingatleastonegoodbeginnersguideisideal.

Gothroughthatbookanddosomebasicexercise,createafewconsoleapplicationsandgeta

feelforthelanguage.

NowgoanddownloadSFML(VisualStudio2008)<­until2010updateoccurs.

Nowstartrunningthroughtheothertutorials.

Atthispoint,youshouldbereadytoconsidermakingagame.Startwithsomethingsmall,like

creatingaPacMancloneorsomethingsimilar.

Nowstartmakingmorecomplexgames,orusingorcreatingagameengine.

1/29/2015

iReader

Congratulations,ifyougottothispoint,youarenowagameprogrammer!

EDIT:ThissitenowhasacompletegamefromscratchusingSFMLtutorialavailable. You needtohavethebasicsofC++down,butitwillhopefullyteachyouquiteabit. Itisagood placetogoonceyou’verunthroughacoupleC++tutorialsorafewchaptersofabook.

C#isthelanguageforme!

TheC#sectionisaloteasiertorightthanC++,asit’sanewerlanguage,therearefewertools

andonelibrarydominatesthegameecosystem.

Freely available resources for learning the language ( Books and Tutorials)

One really nice thing about working with Microsoft technologies is Microsoft know documentation! Thenumberoftutorialsandhowtovideostheymakeavailableisextremely vast. Thislinkaloneshouldhaveeverythingyouneedtoknowtogetupandrunning. They alsohavemoreresources,includingthisintroductionvideoavailableattheBeginnerDeveloper LearningCenter. OnceyouarereadytomoveontoXNAgivethistutorialashot. Tobe honest,theyprobablyprovideeverythingyouneedtosucceed.

Afreee­book,coversthebasicsofC#prettywell.Abitdatedbutstillfree.Nicelymanyofthe

changestoC#overitsevolutionarecomplementarytothe“oldways”,sonotasmanywaysof

doingthingshavebeendeprecated.

1/29/2015

iReader

AfreebookfromaprofessorattheUniversityofHullaboutlearningtoprogramusingC#.It’s actuallyprettygoodandheupdatesannually. VerygoodfirststepforaC#developerthat doesn’twanttospendmoney.

RobMilesalsomadethisebookavailableforfreedownloadaswell.Itisallaboutlearninghow toprogrambycreatinggamesinXNA.PersonallyIthinkthisiskindaabadidea,buttheprice isright!Definitelygiveitashot,itisaverythoroughtextandifitworksforyou,youwillbeup and“doingthefunstuff”atamuchquickerpace.Itdoescoverjustabouteverythingyouneed

toknowtoprogramafullfeatured2Dgame.

Truthis,thissiteisprobablynotgoingtomakealickofsenseforyoustartingout,but

bookmarkitandcomebackeveryonceinawhile.Oneofthebestsitesondesignpatterns,and

designpatternsare“averygoodthingtoknow”™.Theywillchangethewayyoucode,forthe

better.

Recommendedbooks(Notfree)

Oneoftheprimarywritersofthisbookisthelanguageauthor. JustlikeinC++,withC#I recommendthebookbythelanguagecreator. UnliketheC++equivalent,thisbookismore beginnerfriendlyalthoughstillcomprehensive.AsaC#developer,thisisprobably“thebible” ofC#books.UnlikeC++,C#haschangedextensivelyinashortperiodoftime,sobesureyou

getacopycoveringversion4!

Thisoneisabitdifferent,asthenameimplies,itjustsortajumpsinanddocumentsasitgoes.

Insteadofworkingonconsoleapplications,youareactuallydeveloprealGUIappsrightfrom

thestart.Forthosethatlearnbydoing,thisisanexcellentbook.Itisveryconversationaland

easytoread,althoughalittlechaoticinitsformatting(checkoutthepreviewandyouwillsee

1/29/2015

iReader

whatImean!). Ifthisishowyoulearn,thisbookwillbegodsend,butIknowitisnotfor everyone!

Ijustlovethisseriesofbooks.Thesebooksareveryconciseandcovertheentirelanguage,but canalsomakeforausefulreferencewellafteryou’vegotthehangofthings. Thedownsideto thisconcisenessis,thereisnotalotofhandholding,itcoversthelanguageonly(notalkofthe IDEforexample)andthereisnocontinuityofexamplesto“tieitalltogether”.Itdescribesa languagefeature,givesanexampleandmoveson. Thismayormaynotworkforyou, especiallyifyouhavenopriorlanguageexperience.

IlookedatanumberoflearnXNAprogrammingbookstoseeifanyofthemweresuitabletoa new developer including Learning XNA 4, Microsoft XNA Game Studio 4.0: Learn ProgrammingNow!andBeginningXNAGameProgrammingandnonedoagoodjobof coveringtheC#language. Myrecommendationistogetagraspofthelanguagebasicsfrom anothersourcebeforejumpingintoaXNAspecificbook.

Tools

Thisareashouldbeextremelystraightforward,astherearereallyonlytwoidealIDEsforC# development,VisualC#andMonodevelop. Thatsaid,Microsofthavemuddiedthewatersby lettingtheirmarketingdepartmentgetinvolved,soyouhaveVisualC#,XNAGameStudioand nowGameStudioisincludedaspartofWindowsPhoneDevelopmentTools…yeah,thatmakes atonofsensetometoo!Justtoaddtothestupidity,WindowsPhoneDevelopmentTools(just

rollsoffthetongue…)onlyworksonVistaandWindows7,soifyouarerunningWindowsXP,

youneedtodownloadthestandaloneversion.

So…

VisualC#/GameStudioinstructions

IfyouarerunningWindows7orVista,downloadthisorifyouareinterestedinrunningthe

newestandbeta­estdownloadthis.

1/29/2015

iReader

However,ifyouarerunningWindowsXPdownloadthis.(DirectLinktoEXE)

MonoDevelop/SharpDevelopinstructions

Finally,ifyouarerunningonnon­Microsoftplatformorforsomereasondon’twanttouse

VisualC#,MonoDevelopistheIDEofchoice.(DownloadPage)

ThereisalsoSharpDevelopifMonoDevelopisn’tforyou. (DownloadPage). ItisWindows onlyhowever.

Onekeythingtonote,ifyouareworkingwithandwantfullsupportforXNA,youwillneedto

useGameStudio/WindowsPhoneDevelopmentTools.A

Gamingrelatedstuff

XNA

Insteadofrepeatingthisoneinthe2Dand3Dlibrariessection,I’lljustaddressitfirst.XNAis

wellregardedandisseenasabigreasontouseC#andforgoodreason,itreallyisawonderful developmentenvironment. Atthemostbasiclevel,XNAisaC#friendlyversionofDirectX, butthatissellingitfartooshort.

XNAhandlesmostofthecommontasksforgamedevelopment. 2Dgraphics,3Dgraphics, audio,assetloadingandthecontentpipeline.Itisalsoahellofaloteasiertogetuptospeed onthanOpenGLorDirectX. Thedownsideis,itissupportedonWindows,Xboxand(a

subset)onWindowsPhone7.Anumberofreleasedgames,includingeveryIndygameon

Xbox,havebeenreleasedusingXNAtools.

TherearehoweverprojectstoportXNAtootherplatformsorlikethisone.

Formoredetailscheckitout.

1/29/2015

iReader

2DLibraries

It’sSDL,theC++library,withC#bindings.Thereforeitiscapableof2Dgraphics,sound,

loadingfiles,fonts,etc…justlikeSDL.C#specificdocumentationcanbefoundhere.

3DLibraries

OpenTKisawrapperaroundOpenGL(3dgraphics),OpenCL(allowscodetorunacrossCPU

andGPU’s)andOpenAL(audio).Ifyouwanttodocrossplatform3D,OpenTKisthewayto

go.

ThisisawrapperaroundallthingsDirectX9/11.So,ifforsomereasonyoudon’twanttouse

XNA,youcanusefullDirectX.Forabeginner,thereisprobablyverylittlereason,asXNAisa

fairbiteasiertouse.

Tao

TaobringsOpenGL(3DGraphics),OpenAL(audio),ODE(physics)andanumberofother

librariestoC#.Sadly,it’smostlybeenabandonedsoOpenTKisprobablyabetterbetatthis

point.

ThisisaportofOGRE3Dto.NET.Sadlyittoodoesn’tappeartobethatactiveanymore.

OtherLibraries

1/29/2015

iReader

Box2Dphysicslibrary,for.NET.Aprettyimpressive2Donlyphysicslibrary.

Isafull3Dphysicslibraryfor.NETthatalsosupportXbox360andWindowsPhone7.Inthe

developerswords“It’sfastandhasabunchofcoolfeatureslikeconstraints,terrain,staticand instanced meshes, continuous collision detection, custom collision rules, vehicles, easy multithreading,yaddayaddayadda.”.

Stilltoomanychoices,tellmeexactlywhattodo!

Alright,duetoit’syouthandtheexcellenceofXNA,thisisaneasyonetowrite.

Firstoff,goanddownloadthenewestXNAGamestudio.

WatchsomeoftheMicrosofttrainingmaterials.

Createafewconsoleapps,getafeelingforthelanguage.Itwouldbeaverygoodideatobuya

goodintroductorybookrightnowifyoucanaffordit,runthroughtheirexamples.

Nowit’stimetogetyourfeetwetwithXNA.Runthroughthe2Dgametutorial.

UseXNAtocreateallmannerofsimple2Dthen3Dgames.

Congrats,youarenowagameprogrammer!

1/29/2015

iReader

Javaisthelanguageforme!

Freely available resources for learning the language ( Books and Tutorials)

Sun(andnowOracle)puttogetheraverycomprehensivesetoftutorialsforlearningthe language. Startwiththegettingstartedtutorialsandgofromthere. Youcandownloadthe wholewackofthemforofflinereadinghere.

IBMalsohasahugelistofJavatutorialsavailable,runningthegamutofsubjects,someof whichwouldreallysurpriseyoucomingfrombigblue! Keepinginmind,IBMwasthesource ofEclipse,theyareprobablythesecondmostinvolvedcompanyintheJavaecosystem,aside fromOracle.Lotsoftheirtutorialsareveryenterpriseoriented,butyouwillfindmanythatare useful.Hereistheirintroductorytutorial,butperhapscoolestofall,theyhaveatutorialbuilt

aroundagame forteachingthelanguage!IBMreallyisaweirdbeast. ThinkingInJava3rdEdition

It’sabitoutdated(2002)atthispointintime.Itishoweverabookthatisveryeasytoread,

followingalongandwillhelpyoulearnthelanguage. Youwillneedotherresources,butthis bookisaverygoodguidedownthepathoflearningJava. Plusthewholefreethingisvery nice!

Recommendedbooks(Notfree)

Inkeepingwithmytrendofrecommendingbooksbythelanguagecreator,thisbookisco­

authoredbyJamesGosling.Itisacomprehensiveandrelativelybeginnerfriendlyintroduction

1/29/2015

iReader

totheJavaprogramminglanguage.Unfortunately,itisgettingabitold,andonlycoversupto J2SE5,whileJ2SE6isthemostcurrentrelease. Thatsaid,thisshouldn’tbemuchofa handicap.

Thisbookisaneasyread,incrediblyeasy. DareIsayit,itisactuallykindoffun. Ialready knewJavatoadegreeanddidn’treallyneeda“beginnersbook”,butInoticedthisonewas

alwaystrendinginSafari’stop10list(outofover14Kbooks!)andcouldn’tfigureoutwhysoI

gaveitaread. Itwasagenuinelyamusingbooktoread,itdidaverygoodjobofgettingthe technicalinformationacrossinawaythatdidn’tfeelsodryandstuffylikemanytextsdo. It maynotbeyourstyle,butyoushoulddefinitelycheckitout! Amazonoffersa“lookinside” preview,andIsuggestyoudo.

AVERYcomprehensiveintroductiontoJavaatawhopping1500pages,italsocomeswitha

whoppingpricetag.Itishoweverthetextofchoiceformanyjavacoursesanditcoverspretty

muchallofthelanguageaspects,includingmanycommonlibrariesandframeworks,whichto

youasagameprogrammermaynotmatter.Againthough,thepricetagisakickintheteeth.

Thisisnotabeginnersbook,inthatitwon’tteachyouthelanguagebasics. Thisbook,hands down,willmakeyouabetterJavaprogrammer. Onceyou’vemasteredthebasicsofthe language,pickthisup!

“IsurewishIhadthisbooktenyearsago.SomemightthinkthatIdon’tneedanyJavabooks,

butIneedthisone.”

WhosaidthataboutEffectiveJava? JamesGosling…thelanguagecreator! Isimplycannot thinkofhigherpraise.

Tools

ThisisanareawhereJavahasalwaysgotitright,tools. Thereovertheyearshavebeena numberofgreatIDEsforJava,butthreehavereallyjumpedtotheforefrontandfortunatelyall

3areavailablefreely.

1/29/2015

iReader

WhendevelopinginJava,yourfirststepistoinstalltheSDK(softwaredevelopmentkit).In somecasesitmaybeincludedinyourIDE’sinstall,butitissafesttostarthere. Justlikeall thingsJavatherearebewilderingnumberofoptionsandflavors. ThereisJavaSE(standard edition),EE(EnterpriseEdition),ME(MicroEdition),Embeddedaswellasvariousversions forveryspecificdevicedevicesandprofiles.Hell,eventheJavausedforAndroiddevelopment iscompletelydifferent! (Andfranklyisn’texactlyJava,butthat’sneitherherenorthere). Longstoryshortthough,unlessyouknowareasonnotto,whatyouwantisJavaSE

J2SEonoccasionbecause,well…it’sJava.Youwillstartnoticingatrendverysoon!

OriginallydevelopedbyIBM,thenowopensourceEclipseisthemostpopularJavaIDEinuse today. AvailableacrossmanyplatformsandsportingapluggableUI,Eclipsehaseverything andthekitchensinkforfeatures. IwouldsayitisthemostcapableoftheIDEsbutonthe sametoken,itisalsothemostconfusing. IfyouareworkingonAndroiddevelopmentitis Google’spreferredenvironment,sothat’swherethenativetoolsareforauthoringAndroid apps. Thatsaid,IrecentlyworkedonanAndroidappandIHATEDtheexperience. Eclipse keptfoulingupmyprojectsagainandagainandagain,ifIwasanewdeveloperImighthave quitinfrustration! Gettoknowthe–cleanparameter,youaregoingtouseit…alot. Inall honesty,foranewdeveloperwhoisn’tdoingAndroidwork,stayawayfromEclipsetostart wouldbemyadvice.IfyoumustuseEclipse,besurenottogowildinstallingpluginsunless youabsolutelyneedthem! EvenfiguringoutwhichversionofEclipsetodownloadcanbea dauntingtask!Ifyoudon’tknow,downloadthisversion.

InthatspecialsortofwaythatJavahasofmakingthingsconfusingashell,Netbeansisboth thenameofanIDEandthenameofaplatformfordevelopingSwingapplications.Inthiscase

wearetalkingabouttheIDE.Originallystartedasastudentproject(in96!),Sunpurchased

andopensourceditin99. Sincethen,Sun(andnowOracle)havemadecontinuousnew releases.It,likeEclipse,supportspluginsalthoughnowherenearasextensive(orannoying!). Thatsaid,itjustworks.ForanewdeveloperthisistheoneIrecommendstartingwith.Again likeEclipse,therearemanydifferentversionsandifyouchoosethewrongoneitinstallsaTON ofcrapyoudon’tneedandprobablydon’twant(likewebanddatabaseservers!). Onthis downloadpage,unlessyouhaveaverygoodreasonotherwise,it’stheJavaSEversionyou want. **Ishouldnote,youcandoAndroiddevelopmentusingNetBeans,it’sjustnot

1/29/2015

iReader

supportedordocumentedbyGoogle.

ThisincrediblypopularIDE,welltobecompletelyhonest,Ihavealmostnoexperiencewith. See,itusedtocostmoneyandEclipse/Netbeanswerealways“goodenough”. Thatsaid,ina worldfulloffreetools,peoplewerestillwillingtopayforIntelliJIDEA,thatsayssomething! Nowthough,theyhaveacompletelyfreeedition! Again,Ihavenodirectexperiencewith IntelliJbeyondreadingthewebsite,butcometimeformynextJavaproject,Iwilldefinitely checkitout.

Gamingrelatedstuff

2DLibraries

Ibelievethisisthemostcommonlyused2DgamelibraryonJavathesedays. Itisbuilton lwjgl(detailsbelow)andusesOpenGLorJava2Dforfast2Drendering. Additionallyit supportsfonts,sound,inputandimageloading. Thereisalsosupportforspritesheets,

tilemapsand2Dcollisiondetection,allverycommonrequirementsincreatinga2Dgame.The

tutorialsevenwalkyouthroughcreatingacompletegame.Averycleanandbeginnerfriendly

library.

Thislibraryhandlesnotonlygraphics,butsound,filehandling,loggingandinput. Youcan alsocreateAndroidappswithveryminimalcodechanges. Likeslickituseslwjgl,aswellas joglbehindthescenes. Thedesignseemsremarkablyclean,butthedocumentationisabit lacking.

1/29/2015

iReader

ThisisJava’sstandard2Ddrawinglibrary. Iamjustmentioningitforcompleteness,asIsee noreasontouseitoverSlickorLibGDX.

3DLibraries

TheseprovideJavalanguagebindingsforOpenGL,OpenCL,OpenALandOpenMAXlibraries. Thiscanprovideyouwithlowlevelaccesstoallyourgraphicandaudioneeds.Additionallyit

canworkwithJava2D,SwingandAWT.Atutorialforgettingstartedisavailablehere.Jogamp

iscompletelyuptodatewiththelatestOpenGLimplementationandistheunderlying

technologyinmanyhigherlevelJavagraphicslibraries.

Ok,it’snottechnicallyalibrary,it’safullgameengine.Whatdoesthatmean?Wellinsteadof accomplishingonetask,itaccomplishesallthevarioustasksyouneedtocreateagame(andas justmentioned,usesthelwjgllibrarytodoit).Soinadditiontographicsandsound,it providesafullscenegraph,meshandgraphicsimportingmethods,aGUI,networkinglibrary

andmuchmore.Ifyouareplanningtoworkona3DgameonJava,starthere.There’sagood

selectionoftutorialsavailabletogetyoustarted.

OtherLibraries

ThepopularBullet3DandBox2DphysicslibrariesalsohaveJavaimplementations.

1/29/2015

iReader

Stilltoomanychoices,tellmeexactlywhattodo!

Ok,firststepistodownloadandinstalltheJavatools.

Nextup,goaheadandgetNetBeansandinstallit.

Runthroughthefirstfewchapters,dotheexamplesandlearnthebasicsofthelanguage.

Onceyougraspthelanguagebasics,downloadandinstallSlick.

Runthroughthe"Spiegel"tutorial.

Atthispoint,youshouldprobablybecapableofcreatingyourown2Dgames. Ifyouare

interestedin3Dprogramming,considercheckingoutthejMonkeyEngine.

Finally,gooutandgetEffectiveJavaandreadit,twice. ItwillmakeyouabetterJava programmer.

Congratulations,ifyougottothispoint,youarenowagameprogrammer!

Pythonisthelanguageforme!

Alright,thissectionistotallygettingtheshaft. Why? FranklybecauseIdon’treallyknow Pythonallthatwellanddon’tfeelcomfortablegivingadviceonasubjectIamnoteducatedon!

So,insteadIamgoingtogiveanumberoflinksthatwillbeofuse.

First,youneedtodownloadandinstallPythonitself.Ifyoudon’tknowwhichtopick,gowith

1/29/2015

iReader

Python2.7.

Now,pickinganIDEoutforPythonisarightconfusingtask. Ifyoufollowthatthread’s (incrediblybad)adviceofchoosingVimorEmacs,Iwillpersonallycometoyourhouseand smackyou!Thatsaid,aneasyalternativedoesn’tspringtomind.PersonallyifIwasworking withPythontodayIwoulduseEclipsewiththePyDevplugin. Thatsaid,Iamnotreally comfortablerecommendingthattoanewdeveloper. Komodoeditisperhapsasgooda(free) choiceasanytostartwith,butitdoesnotsupportintegrateddebugging.

NowthatthemessybusinessofchoosinganIDEisalloverwiththingsgetmucheasier.There

isonedominant2DgamelibraryandthatisthePyGamewhichmayjustbethemostnewuser

friendlygamelibraryavailable. Tutorialsupportisquitegood,asisthedocumentation.

Pythonreallyhandleseverythingyoucouldneedtocreatea2Dgame,graphics,sound,

controls,fonts,etc…

However,if2Disn’tyourthing,checkoutPanda3D. Stupidnameaside,thisisapowerful enginethathasbeenusedtocreatecommercialgames. Again,likePyGame,ithandles

everythingyoucouldpossiblyneedtocreateafull3Dgame.

ThereareevenacouplefreebookslikeDiveIntoPython3andAByteofPython(good

ThemostimportantpieceofadviceIcangiveyou,don’tletpeopleconvinceyouthatPython isn’t“areallanguage”. Ithasbeenusedinanumberofshipping,highqualitygamesandwill continuetobeusedassuch.

1/29/2015

iReader

Nowwhat?

­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

So,you’vepickedalanguage,thelibrariesyouwanttouseandnowyouneedto,youknow…do

something.Thisisalistofsuggestedprojectsforanewdeveloperinterestedingames,in(fully

myopinion)orderofdifficulty.Iamalwaysopentonewsuggestionshere,sosendthemin!

Also,ifyouwanttosharetheresultsofyourefforts,letmeknowandIwillmakethatavailable

too!

…andeverythingelse!

Ifyouarelookingatgettinginto3Ddevelopmentcheckthislistof3Denginestogetstarted.If

Goodluckwithyourgamedevelopmentcareer!

Programming Beginner , Programming , C# , CPP , Java www.gamefromscratch.com

www.gamefromscratch.comProgramming Beginner , Programming , C# , CPP , Java http://www.gamefromscratch.com/post/2011/08/04/I‐want‐

http://www.gamefromscratch.com/post/2011/08/04/I‐want‐, Programming , C# , CPP , Java www.gamefromscratch.com to‐be‐a‐game‐developer.aspx http://goo.gl/ffgS

to‐be‐a‐game‐developer.aspx

http://goo.gl/ffgSto‐be‐a‐game‐developer.aspx