Download
cse 380 computer game programming introduction n.
Skip this Video
Loading SlideShow in 5 Seconds..
CSE 380 – Computer Game Programming Introduction PowerPoint Presentation
Download Presentation
CSE 380 – Computer Game Programming Introduction

CSE 380 – Computer Game Programming Introduction

368 Vues Download Presentation
Télécharger la présentation

CSE 380 – Computer Game Programming Introduction

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. CSE 380 – Computer Game ProgrammingIntroduction CSE 380 – Computer Game ProgrammingIntroduction Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition

  2. Why are you here? • 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 • You can play Dance Dance Revolution in your sleep. • http://www.youtube.com/watch?v=0gh6hzs_7Kc • You’re looking to rest your Guitar Hero elbow injury • You really want to learn how to program games • If you answered: • you are sad • you might be better off taking something else, otherwise your teammate may have a nervous breakdown • or d), seek professional help e) welcome to the game industry!

  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/

  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

  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

  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

  7. Pong by Atari, released to public 1975

  8. Halo 3, by Bungie, 2007

  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

  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

  11. Early Advice • Learn C++ ASAP – and I mean really learn it • More on the C++ Boot Camp in a minute • Learn to use Visual Studio ASAP, including running projects using DirectX (I’ll give sample code) • Cancel your WOW account immediately • Think about your original game/team early on • 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

  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

  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.”

  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.

  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

  16. Course Platforms • Languages/Libraries • C/C++ • Windows • DirectX 9 SDK • IDE • Visual Studio/C++ (2005 or later) • http://msdnaa.sinc.stonybrook.edu/

  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

  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

  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

  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

  21. Course Textbook Introduction to Game Development (2nd Edition)by Steve RabinPublished by Course Technology, 2009ISBN 978-1584506799

  22. Course Textbook C++ Primer Plus, 5th Editionby Stephen PrataPublished by Sams, 2004ISBN 0672326973

  23. Reference Textbooks Rules of Play: Game Design Fundamentalsby Katie Salen and Eric ZimmermanPublished by MIT Press, 2003ISBN 0-262-24045-9 Best of Game Programming Gemsby Mark DeLouraPublished by Course Technology, 2008ISBN 1-58450-571-0

  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

  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

  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

  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

  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/

  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

  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

  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

  32. How are grades computed? Individual Project Benchmarks 15 % Individual Project Demo 15 % Group Project Benchmarks 15 % Group Project Demo 25 % Design Exercises 10 % Live Coding Exam 20 % 100 %

  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!

  34. Where do we start? Documentation • Always design first • design your game • design doc • design your art • storyboard • design your code • UML

  35. Game Development as a Process User Help Document Gameplay & Setup files: .xls, .csv, xml Game Design Document Game UML Design Docs C++ Source Code .EXE Program Resource Files: .ICO .BMP, etc. Storyboard Art Assets: .DDS, .WAV, etc. Game Development LOG Bug Database

  36. Game Documentation • For both projects, you will be required to produce: • Game design docs • Storyboards • Game development LOGs (your Web pages) • Bug database

  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 …

  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

  39. 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

  40. 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

  41. 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

  42. 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