1 / 43

CSE 380 – Computer Game Programming Introduction

CSE 380 – Computer Game Programming Introduction CSE 380 – Computer Game Programming Introduction Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition Why are you here? You use “Koopa” in everyday conversation. You figure, “games are easy”

Download Presentation

CSE 380 – Computer Game Programming Introduction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related