New User Special Price Expires in

Let's log you in.

Sign in with Facebook


Don't have a StudySoup account? Create one here!


Create a StudySoup account

Be part of our community, it's free to join!

Sign up with Facebook


Create your account
By creating an account you agree to StudySoup's terms and conditions and privacy policy

Already have a StudySoup account? Login here

Special Topics

by: Alayna Veum
Alayna Veum

GPA 3.81

Aaron Lanterman

Almost Ready


These notes were just uploaded, and will be ready to view shortly.

Purchase these notes here, or revisit this page.

Either way, we'll remind you when they're ready :)

Preview These Notes for FREE

Get a free preview of these Notes, just enter your email below.

Unlock Preview
Unlock Preview

Preview these materials now for free

Why put in your email? Get access to more of this material and other relevant free materials for your school

View Preview

About this Document

Aaron Lanterman
Class Notes
25 ?




Popular in Course

Popular in ComputerScienence

This 0 page Class Notes was uploaded by Alayna Veum on Monday November 2, 2015. The Class Notes belongs to CS 4803 at Georgia Institute of Technology - Main Campus taught by Aaron Lanterman in Fall. Since its upload, it has received 10 views. For similar materials see /class/234019/cs-4803-georgia-institute-of-technology-main-campus in ComputerScienence at Georgia Institute of Technology - Main Campus.

Similar to CS 4803 at

Popular in ComputerScienence


Reviews for Special Topics


Report this Material


What is Karma?


Karma is the currency of StudySoup.

You can buy or earn more Karma at anytime and redeem it for class notes, study guides, flashcards, and more!

Date Created: 11/02/15
rixrw a g a 4 rr a 139 Lil J 3 7 a L a Ll M r quot O f5 k a quot 39 77 39 quotZ39 39v39 39 quot 79739 397 fm x quot V O I I t quot 39 Pawneequot Gems Lecture 7 Introduction to XNA Game Studio Prof Aaron Lanterman School of Electrical and Computer Engineering Georgia Institute of Technology ll Georgia tmea ttw lquot Tech m1 H QJy Dungeon Quest Developed in 4 days at the 2007 GDC at the XNA contest By Benjamin Nitschke and Christoph Rienaecker CDDHD Mann 9 7 it sum 10 mm o quotBrenna rm u Points 98 39 39O39 r Speed m Hrmzi 0005 5 mack w JexIL gl l Screenshot from exdreamnoipinfoblog20070731In39Ingennnmdl39l 39 quotquot 39 quot nde0Wast L Ggorgiahe 393 TechET U QUDHn Wizard 97 V a W v mmg err quot9 Level 33912 V quotj a Defense 2 Paini371 39 3 Speed 0 Mme 0mm m mack m Torpex s Schizoid on Xbox Live Arcade 3 m 7 7 Screenshot from httpscreenshotsteamxboxcomscreen68599Schizoid J GgorgnaW XNA GS Framework Built on Microsoft s NET Makes MS comfortable with letting ordinary folks program on the Xbox 360 C is standard language for XNA development But in theory could use Managed C VBNET etc on the PC Xbox 360 uses NET Compact Framework Some stuff available in NET on the PC is missing Garbage collector on 360 isn t as smart as on the PC Caused the Schizoid team some trouble as well as one semester of CS4455 3 Georgiain l offTechit ls managed code too slow for games Vertigo Software ported Quake II to Managed C got 85 performance of the original C code Should expect to do better if you have the NET Common Language Runtime in mind from the beginning Xbox 360 GPU 337 million transistors CPU 165 million transistors XNA GS graphics XNA is built on top of DirectX 9 Not built on MDX or Managed DirectX DirectX 9 has a fixed function pipeline but XNA doesn t Everything done with shaders From XNA Team Blog What is the XNA Framework blogsmsdncomxnaarchive2006O825724607aspx l I Georgiain xef tty39 f l fTe chitrolicigm Why no fixedfunction pipeline In Microsoft s own words paraphrased Programmable pipeline is the future Neither Direct3D 10 or Xbox 360 have fixedfunction pipeline Early adopters and customers said crossplatform goal more important than fixedfunction pipeline Fear is someone would start and finish their game using the fixedfunction APIs and then get dozens of errors when they tried to compile it on the Xbox 360 Better to know your code works on both right from the beginning From XNA Team Blog What is the XNA Framework blogsmsdncomxnaarchive 20060825724607aspx 3 Georgiair l fTec Some convenient things about XNA Don t need to mess with Win32ish boilerplate opening a window etc Easy interfacing with the Xbox 360 controller for both Windows and Xbox 360 Storage saved games unified between Windows and Xbox 360 On Xbox 360 have to associate data with a user profile put on hard drive or memory card etc XNA emulates this on windows From XNA Team Blog What is the XNA Framework blogsmsdncomXnaarchive 20060825724607aspx 3 Georgiair l cffTechCquot From XNA Team Blog What is the XNA Framework blogsmsdncomXnaarchive HGIIO Bluescreen 20060825724607aspx public class SampleGame Game private GraphicsComponent graphics public SampleGame thisgraphics new GraphicsComponent thisGameComponentsAddgraphics protected override void Update protected override void Draw thisgraphicsGraphicsDeviceClearColorBlue thisgraphicsGraphicsDevicePresent static void Mainstring args using SampleGame game new SampleGame gameRun XNA strengths amp weaknesses audio Uses XACT Microsoft s Audio Creation Tool Nice for modifying sound effects directly in XACT until you like them No support for mp3 or wma Xbox 360 has XMA and Windows has ADPCM but game still 35 bigger than it might othenvise be Info from Alistair Wallis Microsoft XNA A Primerquot interview with Benjamin Nitschke AAAAA AI 39 39 439 39 xnaaphppage4 u u 3 Georgia l cvffTech J Original 10M XNA version 50M due to larger audio files Screenshot amp info from wwwgamecareerguidecomfeatures32amicrosofts phppage4 3 eorgiah ifTech V7 7 Careful if you re on Windows x64 XNA normally targets AnyCPU Will break when you try to run on x64 machines since x64 versions XNA framework dlls don t exist yet Workaround Change target to x86 l l Georgiaimxe y l 6 rf139echitro zagrg7 Caveats about Xbox 360 development Many TVs cutoff 510 of the pixels around the edge Keep text amp important info away from there Xbox 360 handles post processing and render targets a little differently than the PC Info from Alistair Wallis Microsoft XNA A Primerquot interview with Benjamin Nitschke AAAAA NU U 39 39 Mquot 39 xnaaphppage4 l I Georgiain x af imfir l fTe chi39tz39olicigm Dream Build Play contest See httpwwwdreambuildplaycom This year s entries are due Sept 23 Too late for this year probably But keep on the lookout for the 2009 Dream Build Play contest XNA Community Games See httpcreatorsxnacom Join the XNA Creator s Club The XNA CC memberships students get free from DreamSpark will let you run games on the 360 but may not let you take part in Community Games Upload your game rate content violence etc Peer review confirm content ratings check quality Can sell your game to Xbox 360 users I Georgiair ire l oatTec h 5 Introduction to C emphasis on gotchas 39 quot Great article Jesse Liberty Top ten traps in C for C programmers C H I iquot wwwondotnetcompubaoreilly dotnetnews Essentlals programminngharp0801html by Ben Albahari Peter Drayton and Brad Merrill 2001 O REILLY i i Georgialtmss m re JTechmcmii agy Value vs reference types Like C C has user defined types C also makes a distinction between value types and reference types Value types Intrinsic types and structs Passed by value copied Stored on the stack unless part of a reference type Reference types Classes and interfaces and boxed value types passed by reference implicit pointer Variables sit on the stack but hold a pointer to an address on the heap real object lives on heap i Georgiai l cvffTechi Boxing and unboxing Boxing allows value types to be treated as reference types Value boxed inside an object Unboxed to get original value back Everything in C is derived from Object so everything can be implicitly cast to an object Unboxing must be done explicitly I Georgial offTec C h Boxing and unboxing using System public class UnboxingTest public static void Main From Jesse Liberty Top ten traps in C for C programmers int 1 1237 Ifo is null or not an int an Boxing InvalidCastException is thrown object o i unboxing must be explicit int j int 0 ConsoleWriteLinequotj 0quot j 3 Georgiai CiarTec harp0801html Structs vs classes Structs are value types More efficient when used in arrays Less efficient when used in collections Collections expect reference types so structs must be boxed boxing has overhead Support properties methods fields and operators but not inheritance or destructions Classes are reference types May be more efficient when used in collections Reference parameters C C and C allow a function to only return one value In C and C you can get around this by passing in pointers In C Reference types in the parameter list may be changed by the function To let a function change a value type in the parameter list can use an explicit ref keyword ref mustbe public void Changerref int X used in both declaration and call Aaron Changer ref int aaronx i Georgiai l chTec h Variables must be initialized public void Changerref int X int aaronx AaronChangerref int aaronx C will give a compiletime error since aaronx has not been initialized In general variables in C must be assigned before being passed into a function 3 Georgia quot m a l cvffTech A clunky workaround public void Changerref int X int aaronx O AaronChanger ref int aaronx The out keyword public void Changerout int X int aaronx AaronChangerout int aaronx l out keyword like ref except it tells C that it s OK for the value to be undefined C will demand that you assign aaronx before the function returns C Finalizers MyClass your code to release unmanaged resources used by object is syntactic sugar for MyClassFinalize your code to release unmanaged resources used by object baseFinalize H4 Your finalizer should not try to deal with other C reference objects only deal with unmanaged resources Adapted from Jesse Liberty Top ten traps in C for C programmers 39 39 39 39 harp0801html l Georgial c ffTech C Finalizers Finalizerwill be called when the NET garbage collector decides to call it You don t get to decide when it s called Only define a finalizer if you really need one Calling it involves some overhead Pop quiz C What is the value of b after this code is run assume C code a7 b3 Lfa5 blO 3 Georgialme s ffTech tr Booleans in C In C O is false anything else is true In C this code will give a compile time error C has distinct Boolean values true and false a7 b3 if a5 blO C arrays are objects Java int arrl CZintarrl arrl new int5 arrl new int5lO20304050 int arr2 new int5 1020304050 int arr2 1020304050 Multi dimensional arrays string bingo bingo new string32 A B CIIIIDII EIIIIFII bingo new string A B CIIIIDII EIIIIFII String AII IIBII I CII IDI I EII IF1 Jagged arrays Arrays of arrays intarr new int new int 101112 new int 13 14 15 l6 l7


Buy Material

Are you sure you want to buy this material for

25 Karma

Buy Material

BOOM! Enjoy Your Free Notes!

We've added these Notes to your profile, click here to view them now.


You're already Subscribed!

Looks like you've already subscribed to StudySoup, you won't need to purchase another subscription to get this material. To access this material simply click 'View Full Document'

Why people love StudySoup

Bentley McCaw University of Florida

"I was shooting for a perfect 4.0 GPA this semester. Having StudySoup as a study aid was critical to helping me achieve my goal...and I nailed it!"

Jennifer McGill UCSF Med School

"Selling my MCAT study guides and notes has been a great source of side revenue while I'm in school. Some months I'm making over $500! Plus, it makes me happy knowing that I'm helping future med students with their MCAT."

Steve Martinelli UC Los Angeles

"There's no way I would have passed my Organic Chemistry class this semester without the notes and study guides I got from StudySoup."


"Their 'Elite Notetakers' are making over $1,200/month in sales by creating high quality content that helps their classmates in a time of need."

Become an Elite Notetaker and start selling your notes online!

Refund Policy


All subscriptions to StudySoup are paid in full at the time of subscribing. To change your credit card information or to cancel your subscription, go to "Edit Settings". All credit card information will be available there. If you should decide to cancel your subscription, it will continue to be valid until the next payment period, as all payments for the current period were made in advance. For special circumstances, please email


StudySoup has more than 1 million course-specific study resources to help students study smarter. If you’re having trouble finding what you’re looking for, our customer support team can help you find what you need! Feel free to contact them here:

Recurring Subscriptions: If you have canceled your recurring subscription on the day of renewal and have not downloaded any documents, you may request a refund by submitting an email to

Satisfaction Guarantee: If you’re not satisfied with your subscription, you can contact us for further help. Contact must be made within 3 business days of your subscription purchase and your refund request will be subject for review.

Please Note: Refunds can never be provided more than 30 days after the initial purchase date regardless of your activity on the site.