210 likes | 405 Views
Computer Game Programming. CSE 380 – Computer Game Programming Introduction. Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition. Why study games?. To get game development jobs Because it is fun Because they are complex
E N D
Computer Game Programming CSE 380 – Computer Game ProgrammingIntroduction Entropy, by XRG Recursive Gaming, winner of 2007 Stony Brook Gaming Competition
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
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
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
The Development Team/Army Designers Programmers Artists Audio Engineers Producers
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
What is this course about? • Syllabus says: • “Learners should have good basic skills in scripting and digital media production, and also a keen interest in digital media and entertainment systems on a variety of platforms, such as computers, the internet, mobile and handheld devices, television and games consoles. ” • “Learners will develop theoretical and practical skills related to the use of digital media in the production of a variety of professional DES. ”
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.
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
Game Documentation • For your project, you will be required to produce: • Game design docs • Storyboards • Game development LOGs (your Web pages) • Bug database
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 …
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
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
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 • 2D game graphically speaking is basically 2 things: • Texture rendering (images) • Text rendering
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
Reference Textbooks Adobe Flash CS6 Professional: Classroom in a Book, Adobe. Real-World Flash Game Development: How to Follow Best Practices AND Keep Your Sanity by Christopher Griffith, Focal Press.