Slide 1AdministriviaAdministriviaClass InformationIntroductionsCourse Intro: ObjectivesGradesReading MaterialProjectXNA Game ExamplesXNA Game Studio ExpressXNA Game Studio ArchitectureXNA FeaturesInstalling XNA Game Studio ExpressXNA Creator’s ClubXNA Community Web SitesControllersDemonstration of Visual C# Express & XNAHomeworkIntro to C#Goals of the C# languageBrief history of C#Key language featuresHello World exampleSyntaxClasses and ObjectsDefining a classInheritanceInheritance ExampleVisibilityVisibility ExampleConstructorsType SystemPredefined TypesUnusual types in C#Unified type systemUnified Type System (Boxing)VariablesEnumerationsConditionalsSwitch statementInformation Hiding in OO LanguagesC# PropertiesC# Property SyntaxC# Property ExampleAutomatic PropertiesC# Automatic Property ExampleArraysDeclaring an ArrayArrays of Reference TypesArrays of Reference Types (2)Initializing ArraysTwo Dimensional ArraysSorting ArraysLooping in C#Foreach StatementListCreating a ListQueue, Stack, DictionaryReadingComputer Science – Game DesignUC Santa CruzCMPS 20: Game Design ExperienceCourse OverviewIntroduction to XNAIntroduction to C#Computer Science – Game DesignUC Santa CruzAdapted from Jim Whitehead’s slides from past CMPS 20/80K courses at UCSCAdministrivia•If you did not sign for CMPS 20, here’s your chance to leave•Permission codes: Class is already overflowing so chances are slim for any more students to join in•80K – Game Design Fundamentals : Covers history and design of games; could become a major requirement; very useful and highly recommendedComputer Science – Game DesignUC Santa CruzAdapted from Jim Whitehead’s slides from past CMPS 20/80K courses at UCSCAdministrivia•CMPS 20•Professor: Arnav Jhala ([email protected])–Office Hours: Monday 3 to 4:30 and by appointment•Teaching Assistant: David Seagal ([email protected])•Readers/Tutors: Robert Kavert, Adrien Young, Slade VillenaComputer Science – Game DesignUC Santa CruzAdapted from Jim Whitehead’s slides from past CMPS 20/80K courses at UCSCClass Information•Websitewww.soe.ucsc.edu/classes/cmps020/Winter10•Schedule (Lecture slides, notes, due dates)•Homework and Project Information–Description and Evaluation Criteria•Resources (Links to articles, tutorials, examples, etc.)•Twitter: CMPS20W10•Keep up with classComputer Science – Game DesignUC Santa CruzAdapted from Jim Whitehead’s slides from past CMPS 20/80K courses at UCSCIntroductions•Professor•Teaching Assistant•Students–Name–Major–One Favorite GameComputer Science – Game DesignUC Santa CruzAdapted from Jim Whitehead’s slides from past CMPS 20/80K courses at UCSCCourse Intro: Objectives•Learn basic principles of game programming–Main game loop, display of 2D sprites and 3D objects–Content pipeline, Art Integration–Collision detection, scrolling game worlds, shaders–Audio•Learn basic game AI techniques–Simple behaviors, A* pathfinding•Learn basic principles of object-oriented design–Subdividing a project into classes–Unified Modeling Language structure diagrams–Software design patterns•Develop increased proficiency in programming–C# language, coding focused assignments•Learn techniques for working as a team–Quarter-long game project developed in 4 person teamComputer Science – Game DesignUC Santa CruzAdapted from Jim Whitehead’s slides from past CMPS 20/80K courses at UCSCGrades•Homework: 30% (3 assignments, each worth 10%) •Midterm exam: 15% •Final exam: 15% •Term project: 40%, broken down as follows –(Percentages are of final course grade, and sum to 40%)–Team selection: 1% –Game concept document: 5% –Work breakdown and schedule: 3% –Technical design document: 7% –Partially operational game prototype: 3% –Updated schedule: 1% –Final game project: 20%Computer Science – Game DesignUC Santa CruzAdapted from Jim Whitehead’s slides from past CMPS 20/80K courses at UCSCReading Material•Textbooks–Learning XNA 3.0 by Aaron Reed, O’Reilly publishers, 2008–Programming C# 3.0 by Jesse Liberty and Donald Xie, O’Reilly publishers, 2007–Available at campus bookstore and online•Reference Materials–Articles that are uploaded on class website–Links to XNA and C# development forums, tutorials, etc.Computer Science – Game DesignUC Santa CruzAdapted from Jim Whitehead’s slides from past CMPS 20/80K courses at UCSCProject•Work in teams of 4 to create a fully playable computer game–Developed on XNA platform in C# (covered in class)–XNA provides libraries and art content (meshes, textures, etc.) is freely available online–Created games can run on Xbox 360, PC, and Zune–Examples•Phases–Team Formation – Week 2–Game Concept Document – Week 4–Production Schedule Document – Week 5–Technical Design Document (including prototypes) – Week 7–Playable Game Milestone 1 – Week 8–Playable Game Milestone 2 – Week 9–Final Game – Week 10Computer Science – Game DesignUC Santa CruzAdapted from Jim Whitehead’s slides from past CMPS 20/80K courses at UCSCXNA Game Examples•Some of these were made in 48 hours over a weekend by groups of 3 to 4 programmers•Student games•Research projectsComputer Science – Game DesignUC Santa CruzAdapted from Jim Whitehead’s slides from past CMPS 20/80K courses at UCSCXNA Game Studio Express•XNA GSE is a series of libraries for creating 2D and 3D computer games–Uses C# as the primary programming language–Integrated with Visual Studio C# Express•Also now the full version of Visual Studio–Games can run under Windows or on Xbox 360–It is possible to create professional games using this toolkit•Example games:–http://catalog.xna.com/en-US/gamescatalog.aspxComputer Science – Game DesignUC Santa CruzAdapted from Jim Whitehead’s slides from past CMPS 20/80K courses at UCSCXNA Game Studio Architecture•You write your game in C#–Using features in XNA Framework •Runs on top of common language runtime (“Managed Code”)Windows APIs, DirectX Common Language Runtime (CLR)XNA FrameworkGame code (C#) & contentYou provideProvided for youComputer Science – Game DesignUC Santa CruzAdapted from Jim Whitehead’s slides from past CMPS 20/80K courses at UCSCXNA Features•2D & 3D graphics support–Access to HLSL (High level shader language)•Pixel and vertex shaders•Audio support–XACT cross-platform audio tool•Controller and keyboard input–Xbox 360
View Full Document