Introduction to Computer Games and Graphical System • Lecture #1: • Introduction, Overview • Xu.Zhu • SIT, Shanghai, China • Email: firstname.lastname@example.org
Today • Introduction and Course Overview
Class Participation • Reasons to participate • More fun for me and you • You learn more • Pass the quizzes in class • How to participate • Ask questions • Make comments
Course Outline • 1 Brief introduction to games • Give a brief introduction to the definition of game , main components , game categories , basic process on developing a game , some game's demo. • 2 Java environment configuration and review the basic programming method • Give a reason on why java . Introduce jdk of SUN and review basic programming method , OO analysis and OO design , quick view on coding tips and let knows how an applet works. • 3 Basic graphic function on Java • How to paint words and graphics in java with jdk. • 4 How to build up an animation • Conception of animation and list some public tools for animation. How to control animation in java .
Course Outline • 5 Interaction and sound • Conception of interaction and how to handle the mouse and keyboard event. Creating / playing, physics of sound. Sound type supported by java. • 6 Game design • How to control character animation in java. Show the conception of collision?? and how to implementation with some little demo. • 7 Game AI and conception of 2.5d • Creating characters, path planning, generating motion. • Instructation to 2.5d game with some demo. • 8 2.5d game design • Difference between 2d and 2.5d and key point of 2.5d. • Key elements of 2.5d games and the implementation of 2.5d.
Course Outline • 9 Networking: Playing together • Protocols for gaming, architectures, how to connect 2 pc in java. • 10 Conception of 3d game • Brief introduction to the 3d game conception and tell the difference between 2.5d and 3d games. 3d game software system. Game Play Layer, Engine Layer, System Layer. • 11 Java opengl engine • List common java opengl engine. Analysis difference between engines. Show how to use this engine build java 3d games. “Standard” lighting and shading, Modeling techniques, Vectors, matrices, geometric reasoning, transformations, shading, texture and other Maps.
Course Outline • 12 3d model design • Brief introduce to 3dsMax/Maya/Softimage • 13 Create simple 3d game • Show how to combine engine, model to create a simple 3d game. • 14 3d game design and review the whole course • Continue create 3d game. At the last of the class , give a fully review on the whole course.
The Interactive Entertainment Industry • Hardware makers produce gaming hardware • eg Sony, Nintendo, Microsoft, … • Game Developers create games • eg Electronic Arts (EA), Epic, ID, thousands of others • Publishers publish games • eg Sony, Nintendo, EA, … • The model is similar to books or movies • One group creates it, another distributes it, and another supplies the underlying infrastructure
Flavors of Game Developer • Game Designers decide on the format and behavior of the game • Artists design models, textures, animations and otherwise are responsible for the look of the game • Level Designers create the spaces in which the game takes place • Audio Designers are responsible for all the sounds used in the game • Programmers write code, to put it all together, and tools, to make everyone else’s job simpler • And others: Production, management, marketing, quality assurance
Disclaimer • Game development requires more than graphics, AI and networking • Design, Art, Software engineering, Production, Audio, … • This course won’t formally cover any of that stuff • Nor will it give you much experience with middleware, console programming, mobile gaming, contract negotiation, …
Books • Official textbook: “” • Other useful books: • The OpenGL Programming Guide • Mathematics for 3D Game Programming & Computer Graphics • AI Game Development – Synthetic Creatures with Learning and Reactive Behaviors • Core Techniques & Algorithms in Game Programming • “Game Programming Gems” and the sequels and offshoots have many useful things • 3D Game Engine Design
Online Resources • Google – Use it • www.gamasutra.com • www.gamedev.net • www.flipcode.net/
Academic Honesty • If you use an external resource cite it clearly! • Don’t do things that would be considered dishonest... if in doubt ask. • Cheating earns you: • An ‘F’ in the class and • Getting reported to the University • No exceptions.
What I assume you know • Java J2se • I assume you are competent with at least one user interface toolkit eg: FLTK, MFC, Glut, Gtk, … • Make sure it’s supported on Windows
Grading • Midterm and final • A Homework • Project
Project • The project is to create a game • This is a competition • Best project will win • A good grade • A prize !!! • Respect and admiration of your peers
Working in Groups • Working in groups is not easy, and it is an acquired skill • I want you to form groups by next Thursday • There will be some group evaluation exercises through the semester • Warning !!!
Timeline • Something due roughly every 2 weeks throughout the semester • First stage: Teams & Design
Tools • The only requirement is that your project run on Windows • We strongly prefer OpenGL • The lectures will assume OpenGL, and we know nothing about DirectX • Choose any UI toolkit: Natural options are FLTK, MFC, Glut, … • We are most familiar with FLTK, but it has some (non-debilitating) issues for real-time interactive programming
More Tools • Models and art will be an issue • Building models by hand might be the most efficient option • You are free to use any available tools, provided you acknowledge it • Open source modelers • Blender , Wings 3D etc. • Don’t be scared to write small tools if you think it will make your project easier • You are not judged on art
First Stage • Due Tue Jan 31st • First stage, 1st part: Design a game, put it on paper • Group members • Outline of game objectives • Sketches of potential looks • Task distribution • You can even borrow something from someone else