CMPM 120 – Game Development Experience

CMPM 120 – Game Development
Experience
Winter 2016
Computational Cinematics Studio // Center for Games and Playable Media
http://games.soe.ucsc.edu/ccs // http://games.soe.ucsc.edu
Arnav Jhala
TA: April Grow and Joe Osborne
Graders: Kevin Vylet
Staff
•  Professor:ArnavJhala([email protected])
–  OfficeHours:Tuesdaysbyappointment(cansign
uponline–!nyurl.com/talktoarnav)
•  TeachingAssistants:April
Grow([email protected])andJoeOsborne
([email protected])
•  Readers/Tutors:KevinVylet
Resources
•  Website
–  hHps://piazza.com/ucsc/spring2016/cmpm120/
home
–  Discussionforum:
•  Piazza(piazza.com)
–  SubmissionsandGrading:
•  Classassignmentsandgrades
–  eCommons(ecommons.ucsc.edu)
CourseObjecQves
•  Learnbasicprinciplesofgameprogrammingusingasetoflibraries
– 
– 
– 
– 
Maingameloop,displayof2Dspritesand3Dobjects
Contentpipeline,ArtIntegraQon
CollisiondetecQon,scrollinggameworlds,UIdevelopment,andStorage.
Audio
•  LearnhowtechnologyandcollaboraQonaffectsgamedesign
–  Mechanics,distribuQonplaZorms,workdistribuQoninteamprojects
•  Learnbasicprinciplesofobject-orienteddesign
–  Subdividingaprojectintoclasses
–  So]waredesignpaHerns
•  DevelopincreasedproficiencyinprogrammingonwebplaZorms
–  Javascript,codingfocusedassignments
•  Learntechniquesforworkingasateam
–  Quarter-longgameprojectdevelopedin4personteam
Overview
Designfundamentals,GameAppreciaQon,
GameStudies,History.
Programming,Language,Data
Structures,DevEnvironments,
Debugging,.
Mostlynarrow,playedforfun,as
consumer
Computational Cinematics Studio
Teamwork,ideaQonthrough
deployment,finishingproject.
Engines,advancedrendering,
efficiency,newinterfaces
Broad,playedforfunandforstudy,
asdesigner,producer,developer
http://games.soe.ucsc.edu/ccs
Grades
•  ProgrammingAssignments:
–  Assignment1:basicspriterenderingandfamiliaritywithdevelopment
tools–10%
–  Assignment2:animaQon,interacQon(advanceddevelopmenttools–
AptanaStudio,debugging,deployment,versioningsystem)–15%
–  Assignment3:parQclesystembasedgame:25%
–  Assignment4:Qleengine;basicphysics:25%
–  Assignment5:advancedphysics;userinterface;menusystem25%
Schedule
•  DueDates:
– 
– 
– 
– 
– 
Assignment1:Week2Fridayat5PM
Assignment2:Week4Fridayat5PM
Assignment3:Week6Fridayat5PM
Assignment4:Week7Fridayat5PM
Assignment5:Week8Fridayat5PM
ReadingMaterial
•  Textbooks(Norequiredbooks)
–  ListwillbeprovidedintheResourcessecQonof
thewebsite
–  EloquentJavascript(onlineinterac8vebook)
–  Libraryhasaccesstogoodebooks
•  ReferenceMaterials
–  ArQclesthatareuploadedonclasswebsite
–  Linkstodevelopmentforums,tutorials,etc.
–  CollaboraQvelearning:pleaseshareinteresQng
thingsyoufindonthePiazzaforum
Project
Yourgamedesignforthisclassmustbebased
onthefollowingtheme.
–  Ifitdoesn’tthenwewillaskyoutoresubmityour
designdocumentwithmodificaQons.
•  Themes
–  Basedonanews-makingevent
PersuasiveGameExamples
BiographyGameExample
ClimateSystems
Threeaspectsofthisclass
Design
Mechanics
Dynamics
AestheQcs
TargetTheme
Development
PlaZorms
Algorithms
ArtIntegraQon
CollaboraQon
User
Experience
Polishedproduct
RigoroustesQng
AudienceExperience
PorZolioBuilding
Design
• 
• 
• 
• 
• 
MDAFramework
Brainstorming
WriQngadesigndocument
UnderstandingtechnologylimitaQons
Designunderconstraints
Source:WIREDmag
Game Development
•  Programming
•  So]wareDevelopment
•  GameDevelopment
Computational Cinematics Studio
http://games.soe.ucsc.edu/ccs
UserExperience
Thisweek:Yourtasks
•  Startformingteams(usePiazza)
•  Playgamesthatareshowninclassandlook
forothergamesbasedonclassthemes(also
postgamesyoufindonPiazza)
•  ReadfollowingarQcles
–  [R1]MDAFrameworkarQcle
–  [R2]Howtowriteadesigndocument
–  [R3]WIREDmagazinearQcleonDesignunder
Constraints
•  StartbrushingupJavaScriptandplayaround
withHTML5/CSSinJSFiddle
GameProgramming
XNAGameStudioArchitecture
Authoringenvironments,LevelEditors,UIFrameworks,etc.
Gamecode&content
Coreenginelibraries
Virtualmachines,CommonLanguageRunQme(CLR)
OperaQngSystemAPIs,DirectX,OpenGL
Youprovide
Providedforyou
VarietyofTools
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
NaQve(C,C++)
OpenGL,DirectX
OpenSceneGraph,Blender
Unreal,Source,Unity3D
C#/XNA
AcQonScript
Processing/Java
HTML5/CSS/WebGL/JavaScript
Gamemaker,Gamesalad
Alice,Touchstudio,Scratch
History
• 
• 
• 
• 
• 
• 
Browserwars
Layoutengines
Client-sidescripQng
UsagepaHerns
StandardizaQon
NaQvesupport
BasicGameLoop
BaseGameClass
#IniQalize()
#Run()
#Tick()
Update(gameTime);
Draw(gameTime);
myGame
-graphics:GraphicsContext
-content:ContentManager
+myGame()
#IniQalize()
#LoadContent(loadAllContent:bool)
#UnloadContent(unloadAllContent:bool)
#Update(gameTime:GameTime)
#Draw(gameTime:GameTime)
graphics = new
GraphicsDeviceManager(this);
Content.RootDirectory = “Content”;
base.Initialize()
Example
• 
• 
• 
• 
• 
Programmingworkflow
Basiclanguageconstructs
Drawing
Updates
InteracQon
•  SnakeonCodePlayer
Upcomingclassesandassignments
•  Discussdesign
•  StartquickintroducQontoJavascript/HTML5/CSS
anddevelopmenttools
•  Labsnextweek
–  FacetheNamegame
•  Individualassignment
–  Developmentenvironmentsetupanddrawingsprites
–  Alchemygame
–  hHp://liHlealchemy.com
•  Teamassignment
–  TeamformaQondocument
Beforewejumpin…