Top Banner
Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction CSE 380 – Computer Game Programming Introduction
33

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

Dec 18, 2015

Download

Documents

Cecil Harris
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition

CSE 380 – Computer Game ProgrammingIntroduction

CSE 380 – Computer Game ProgrammingIntroduction

Page 2: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

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:– games are natural

learning devices

– making games is a great way to learn other things

Page 3: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

To really join the industry

Page 4: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

Modern Games are Complex

• Can be very complex

• Technologies used:– 2D & 3D Graphics– Sound & Music– Networking– Artificial Intelligence– Physics Simulation– Parallel Processing– Custom scripting languages– Etc.

• All of it must be implemented efficiently

Page 5: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

Pong by Atari, released to public 1975

Page 6: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

Battlefield 3 by Electronic Arts/DICE

Page 7: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

Blizzard’s World of Warcraft

• Over 10,000,000 subscribers– thousands play simultaneously– players in countries around the world

• Requires:– Rich graphical environment– Complex networking– Semi-nude dancing

• Needs an army to make it. And:– maintain– update– count profits

Page 8: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

The Development Team/Army

Designers

Artists

Audio

EngineersProducers

Programmers

Page 9: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

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

Page 10: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

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

Page 11: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

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.

Page 12: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

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

Page 13: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

Course Textbook

Game Engine Architectureby Jason GregoryPublished by A K Peters, 2009ISBN 978-1568814131

Page 14: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

Course Textbook

Real-Time Collision Detectionby Christer EricsonPublished by Morgan Kaufmann, 2005ISBN 978-1558607323

Page 15: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

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

C++ Primer Plus, 5th Editionby Stephen PrataPublished by Sams, 2004ISBN 0672326973

Page 16: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

What course work is involved?• Individual Programming HWs

– Implement important algorithms

– collisions, pathfinding, scrolling, etc

• Midterm Exam

– test concepts from individual assignments

Page 17: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

What course work is involved? (continued)

• Final Group Project & Presentation– design and develop completely original games– can be serious games– games intended to educate in some way

• Group Project Benchmarks» will have additional technical requirements

– much greater expectations

Page 18: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

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

Page 19: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

An Example: Typist

Page 20: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

And your games?

• Potential sources for game subjects:– courses you have taken at Stony Brook

• Computer Science?

– your hobbies

– your personal interests

• Why 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/php-bin/entries2010_student.php

Page 21: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

11th Annual Stony Brook UniversityGame Programming Competition

• Friday, 5/16, 5pm-8pm

• Invited projects are presented to game industry representatives– past Judges From:

• Activision, Applied Visions, Atari, Gamelab, Gameloft, Microsoft, Powerhead Games

• http://www.cs.stonybrook.edu/~games

Page 22: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

Project HWs Platforms

• Languages/Libraries– C/C++– Windows – DirectX SDK

• Visual Studio 2012/2013 IDE– free from Stony Brook DreamSpark portal

Page 23: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

And the Group Project?

• We’ll add a couple of technologies– Box2D Physics Engine– Lua Scripting Language

Page 24: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

C/C++

• C++ is almost the industry standard

• Why would programmers still use C?

• Why not Java, C#, Objective C, or Python?

• C++ Boot Camp– This Friday, 1/31, 3pm – 6:30pm in CS 2129– Not mandatory, but highly recommended

Page 25: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

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

Page 26: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

DirectX SDK (June 2010 release or later)

• 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://msdn.microsoft.com/en-us/library/windows/desktop/ee663275%28v=vs.85%29.aspx

• DirectX API now part of Windows API

Page 27: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

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. Think about your original game/team early on

4. Cancel your WOW account immediately

Page 28: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

Accounts

• Windows Lab account, where you will work on your projects– http://www.cs.sunysb.edu/facilities/windowslab/

Page 29: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

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!

Page 30: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

Where do we start? Documentation

• Always design first– design your game

• design doc

– design your art• storyboard

– design your code• UML

Page 31: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

Game Development as a Process

Game Design Document

Storyboard

UMLDesign Docs

C++ Source Code

User Help Document

.EXE ProgramResource Files:

.ICO .BMP, etc.

Game Development LOG

Bug Database

Gameplay & Setup files: .xls, .csv,

xml

Game

Art Assets:.DDS, .WAV, etc.

Page 32: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

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

Page 33: Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition CSE 380 – Computer Game Programming Introduction.

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