From:
anon-390009
Views: 160
Comments: 0
Computational Intelligence in Bioinformatics (Studies in Computational Intelligence) ,the ancient greek library, ul library, abandoned library, glendale public library in glendale california
Slide 1: CSE 380 ––Computer Game Programming CSE 380 Computer Game Programming Introduction Introduction
Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition
Slide 2: Why are you here?
a) b)
– –
You use “Koopa” in everyday conversation. You figure, “games are easy”
http://www.youtube.com/watch?v=gwlE1aASc4g&feature=related http://www.youtube.com/watch?v=UJ-QSJmEgHU&feature=related
c)
•
You can play Dance Dance Revolution in your sleep.
http://www.youtube.com/watch?v=0gh6hzs_7Kc
d) a) •
You’re looking to rest your Guitar Hero elbow injury You really want to learn how to program games If you answered:
a) b) c) e) you are sad you might be better off taking something else, otherwise your teammate may have a nervous breakdown or d), seek professional help welcome to the game industry!
Slide 3: To really join the industry • International Game Developers Association
– http://www.igda.org/
• NYC Chapter
– http://www.nycgames.org/blog/index.html
• Game Developer’s Conference
– http://www.gdconf.com/
• Independent Games Festival
– http://www.igf.com/
Slide 4: Important Online Resources
• Gamasutra – http://www.gamasutra.com/ • Gamedev.net – http://www.gamedev.net/ • Gamedevmap.com – http://www.gamedevmap.com/ • Google – seriously – for searching all message boards out there for people with similar bugs
Slide 5: Why study games?
• To get game development jobs • Because it is fun • Because they are complex • Because they push the envelope of computing technology
• Bottom line:
– making games is a great way to learn
Slide 6: Modern Games are Complex • They can be very complex • Technologies used:
– – – – – – – – 2D & 3D Graphics Sound & Music Networking Artificial Intelligence Physics Simulation Parallel Processing (multithreading) Custom scripting languages Etc.
• All of it must be implemented efficiently
Slide 7: Pong by Atari, released to public 1975
Slide 8: Halo 3, by Bungie, 2007
Slide 9: Blizzard’s World of Warcraft
• • • • • • Over 10,000,000 subscribers Thousands of players simultaneously Players in countries around the world Rich graphical environment Complex network requirements Requires game designers, artists, programmers, producers, audio designers, musicians, etc.
• Fan of WOW & LOTR?
– See http://fellowcraft.ytmnd.com/
• Does every MMO need dancing?
– See http://www.youtube.com/watch?v=066_q4DIeqk
Slide 10: The Modern Game Programmer • Is often more of a tools programmer
– what tools? – tools for game designers, artists, & other programmers
• Often works with very specific technologies
– AI programmer, physics programmer, graphics programmer, etc.
• Often has very specific skills
– advice: find your niche
Slide 11: Early Advice
1. Learn C++ ASAP – and I mean really learn it
– More on the C++ Boot Camp in a minute
2. Learn to use Visual Studio ASAP, including running projects using DirectX (I’ll give sample code) 3. Cancel your WOW account immediately 4. Think about your original game/team early on 5. Buy StarCraft and play from a developer’s perspective
– – – definitely try your hand at PVP don’t play too much later in the semester we will analyze StarCraft, and you will have a design exercise using their mission editor
Slide 12: StarCraft • Order from http://www.blizzard.com/starcraft/ or purchase at store (i.e., BestBuy, CircuitCity, etc.) • A real-time strategy classic • The National Sport of South Korea
– http://www.youtube.com/watch?v=47GLuOd3QVk
Slide 13: What is this course about?
• Syllabus says:
– “An introduction to the fundamental concepts of computer game programming. Students design and develop original games for PCs applying proven game design and software engineering principles.”
Slide 14: Course Objectives • Integrate technologies such as multimedia, artificial intelligence, and physics modeling into a cohesive, interactive game application. • Introduce the principles of game design that make for a playable experience. • Learn and use software engineering, team project management, and prototype presentation principles in a game development context.
Slide 15: Course Topics
• • • • • • • • • • • Game program architecture Game Timing GUI programming for games Tile-based graphics Page & side scrolling algorithms Sprites & bitmap animation Collision detection Physics-based modeling Artificial Intelligence in games Pathfinding Algorithms Render Threading • • • • • • • • • • Optimization techniques Game input devices Sound & Music Differing game types, modes, & perspectives Game & level design Rapid Prototyping & game testing Game project management Game design documentation Gaming industry issues Computer game history
Slide 16: Course Platforms
• Languages/Libraries
– C/C++ – Windows – DirectX 9 SDK
• IDE
– Visual Studio/C++ (2005 or later)
• http://msdnaa.sinc.stonybrook.edu/
Slide 17: C/C++ • C++ is almost the industry standard • Why would programmers still use C? • Why not Java or C#? • C++ Boot Camp
– This Friday, 1/29, 12pm – 6pm in CS 2129 – Not mandatory, but highly recommended
Slide 18: Windows Game Development • PC vs. Console:
– expense – processing power – development difficulty
• full-screen developers learn to hate ALT-TAB
• API:
– http://msdn2.microsoft.com/en-us/library/aa139672.aspx
Slide 19: DirectX (August 2009 release)
• A low-level library for making games • What can it do for a 2D game?
– manipulate the graphics card
• efficiently render an image to the screen • efficiently render text
– efficiently play a sound or music
• Download SDK:
– http://msdn.microsoft.com/en-us/directx/default.aspx
• API (ASAP get used to this Web site structure):
– http://msdn2.microsoft.com/en-us/library/aa139763.aspx
• DirectX 9c vs 10 vs 11
Slide 20: Accounts • Transaction Lab account, where you will work on your projects
– http://www.translab.cs.sunysb.edu/
• Sparky Web account, if you need it, to post your project progress via documentation, .exe files, etc.
– http://www.sinc.sunysb.edu/helpdesk/web.shtml
Slide 21: Course Textbook
Introduction to Game Development (2nd Edition) by Steve Rabin Published by Course Technology, 2009 ISBN 978-1584506799
Slide 22: Course Textbook
C++ Primer Plus, 5th Edition by Stephen Prata Published by Sams, 2004 ISBN 0672326973
Slide 23: Reference Textbooks
Rules of Play: Game Design Fundamentalsby Katie Salen and Eric Zimmerman Published by MIT Press, 2003 ISBN 0-262-24045-9
Best of Game Programming Gems by Mark DeLoura Published by Course Technology, 2008 ISBN 1-58450-571-0
Slide 24: What course work is involved?
• Individual mid-semester Project & Presentation
– you are the main character – side-scroller – grades based on:
• • • • technical requirements playability creativity presentation
• Individual Project Benchmarks
– provide step-by-step progress – a grade separate grade for each benchmark
Slide 25: Design your game • Benchmark 1 is due next Friday (2/5)
– come up with an idea for a simple side-scroller
• with gravity & jumping
– design document – storyboard – setup your personal Web site
• Go to the class schedule page to take you to the full Assignment description
Slide 26: What course work is involved? (continued)
• Final Group Project & Presentation
– teams of 3 – design and develop completely original games – must be serious games
• games intended to educate in some way
• Group Project Benchmarks
– will have additional requirements
Slide 27: Serious Games • Does not mean it:
– is boring – teaches in the tradition sense – is a tutorial
• It does mean that it:
– is a game – should entertain – should get the player thinking about something other than the raw gameplay – should try to enrich the player’s understanding of some subject
Slide 28: A few examples • Ayiti: The Cost of Life
– http://www.unicef.org/voy/explore/rights/explore_3142.html
• McDonald’s Video Game
– http://www.mcvideogame.com/
• UN Food Force
– http://www.food-force.com/
Slide 29: And your games?
• Potential sources for game subjects:
– courses you have taken at Stony Brook
• Computer Science?
– your hobbies – your personal interests
• Why am I making you do this?
– make a game that no one who has ever lived has made before – make a game that no sensible company would ever make
• Enter it in the IGF Student Division
– http://www.igf.com/02finalists.html#student
Slide 30: Stony Brook Game Programming Contest • Held each spring • Invited projects are presented to game industry representatives
– Past Judges From:
• Activision, Applied Visions, Atari, Gamelab, Gameloft, Microsoft, Powerhead Games
• Fun, prizes, and networking
• http://www.cs.sunysb.edu/~richard/GameProgrammingCompetition.html
Slide 31: What course work is involved? (continued)
• Game Design Exercises
– in-class and take-home – exercise your creativity – game and level design.
• one using StarCraft
• Live Coding Exam (tentative)
– in TransLab – implement common algorithms we’ll discuss
Slide 32: How are grades computed?
Individual Project Benchmarks Individual Project Demo Group Project Benchmarks Group Project Demo Design Exercises Live Coding Exam 15 % 15 % 15 % 25 % 10 % 20 % 100 %
Slide 33: AN IMPORTANT NOTE ON ACADEMIC DISHONESTY
• All work you submit for homework, projects, or exams MUST be your own work. • If you cheat or aid someone in cheating, you will automatically fail this course and be brought up on charges of academic dishonesty without warning. • NO EXCEPTIONS WILL BE MADE!
Slide 34: Where do we start? Documentation • Always design first
– design your game
• design doc
– design your art
• storyboard
– design your code
• UML
Slide 35: Game Development as a Process
User Help Document Game Design Document UML Design Docs Gameplay & Setup files: .xls, .csv, xml C++ Source Code
Resource Files: .ICO .BMP, etc. Art Assets: .DDS, .WAV, etc.
Game .EXE Program
Storyboard
Game Development LOG Bug Database
Slide 36: Game Documentation • For both projects, you will be required to produce:
– – – – Game design docs Storyboards Game development LOGs (your Web pages) Bug database
Slide 37: The Game Design Document • The roadmap, blueprint, or outline, of a game
– Concept: What is the game about? – Appearance: What will the game look like? – Controls: What controls will be used and how will they control the game? – Behavior: Answer gameplay questions like:
• • • • • • Who is the main character? What can he/she do? What’s the opposition? How do you win the game? Game levels Etc …
Slide 38: Storyboard • Sketches depicting the look & feel of the game • Show how players will interact • Show player progress & plot through a game • Example Format from The Tree of Life:
– http://www.finegamedesign.com/script/index.html
Slide 40: More Project Documentation
• Game Development LOG (your Web pages)
– specify progress – features added – game versions (ex: 1.0 ready for release, a.k.a. grading)
• Bug Database (use a simple text file)
– list of things to add next – list of known problems that have to be resolved
• brief description of problem • if known, brief description of how to resolve problem
• BTW: I strongly advise you use CVS
Slide 41: Student Web Pages • Part of benchmark 1 requirement • Post progress for individual & group project checkpoints
– all required documentation – executable game as currently exists – no source code (to be handed in via Blackboard Digital Drop Box)
• Post game reviews as required
Slide 42: Why 2D Games? • Avoid 3D Artwork Obstacles • Many topics are relevant to both 2D & 3D games • NOTE:
– we will still have to implement our games efficiently
Slide 43: What is a 2D game graphically speaking? • Basically 2 things:
– Texture rendering (images) – Text rendering
• Rendering textures & text is easy • Efficiently managing the data of the game is not