Current Size: 100%
Game Programming |
School of Media Studies & Information Technology |
2012/2013 Program AvailabilityNorth Fall: Open |
|
|
Type:
Advanced Diploma
|
Campus:
North
|
|
|
Program Code:
11661 |
Length: Six semesters, beginning in September |
|
|
CONTACT INFORMATION: Rob Robson, IT program cluster program co-ordinator | 416.675.6622 ext. 4422 | rob.robson@humber.ca
|
||
Humber’s Game Programming diploma program is project-driven and focuses on the design and development of games. You work on team projects, using multiple 3D graphic APIs and programming tools to design, develop, test, and maintain game applications. Students create applications that apply theories of usability, information architecture, network architecture, and industry standards of practice. Students graduate with significant work samples showcasing their talents and skills, and a skill set that combines high levels of mathematics, physics and visualization within the field of computer programming. Knowledge of game engines, modelers, game scripting and technical direction allows them to compete in this rapidly growing field – developing games for personal computers and dedicated game players, as well as online gaming applications and games for mobile devices.
The first year of study for the Computer Programmer diploma program and the Game Programming advanced diploma share a number of courses, allowing students some flexibility when moving into their third semester of study. Students planning to transfer into the Computer Programmer program in semester three must contact the program co-ordinator by the end of semester one. Successful completion of bridging courses may be required.
For more information visit Fees and Financial Assistance.
Estimated $50 – computer lab fee (per semester) and $2,000 – textbooks, course packs, print cards, etc. (for complete program).
Semester 1 | ||
| Course Code | Course | Credits |
| COMM 213 | Technical Communications 1Technical Communications 1Course Code: COMM 213 Credits: 3 This course is designed to develop the writing skills that will be required for clear communication in technical documents. Students will learn write documents that are clear, accurate, and grammatically correct.
Students will practice reading and writing skills that will be valuable in their college programs and build a strong base for professional technical and business writing. Those students who plan to further their studies will develop the fundamental skills for writing acceptable academic English.
To help students reach these goals, the course covers the following: analytical reading and critical thinking; the organization and development of expository and persuasive essays; and the elements of clear writing, including grammar and punctuation skills. 3 | 3 |
| GAME 110 | Critical Thinking and IT ConceptsCritical Thinking and IT ConceptsCourse Code: GAME 110 Credits: 4 The purpose of this course is to introduce students to the concepts of critical thinking, basic information technology (IT) concepts and the software development process commonly used in the game industry. Discussion will centre on tools and techniques used in the building of video games. This is an introductory course, which is meant to provide an overview of all phases of the systems development life cycle. Assignments and/or case studies will be used to support the application of theory. | 4 |
| GAME 120 | Object-Oriented Programming using JavaObject-Oriented Programming using JavaCourse Code: GAME 120 Credits: 4 This is an introductory course in programming, designed to teach the fundamentals. Emphasis is on object orientation. Objects will be used to create a series of typical simple games. Using these solutions, computer programs will be written, tested, and debugged using a professional editor such as Net Beans. Java will be taught and used as the language for coding the programs. The course starts with an introduction to the basic concepts of object oriented programming and the typical components of a user-defined class. The course focuses on the three most fundamental logical structures central to all programming (the sequence, decision, and loop) and how they can be applied to most games. Once the basics have been introduced, we will focus on the use of inheritance. In this course, demos, assignments and labs will have a game orientation. | 4 |
| GAME 130 | Operating SystemsOperating SystemsCourse Code: GAME 130 Credits: 3 Operating systems is a course designed to give the user knowledge of one of the most popular and powerful operating systems used today. In this course the student will acquire an understanding of UNIX and compare it with Linux operating system. The student will learn how to create shell script programs, and how to control and manipulate the user environment. | 3 |
| GAME 140 | Web Programming and DesignWeb Programming and DesignCourse Code: GAME 140 Credits: 4 This course is a introduction to web design. The technical aspects of web design and interface development are covered with a focus on the programming languages: XHTML, JavaScript and Flash Scripting. Beginning with basic XHTML the student will learn valid mark up while focusing on layout and effective site navigation. The student will develop an understanding of JavaScript followed by an introduction to multimedia content, Flash animation and design and Flash scripting. | 4 |
| GAME 150 | Numeric ComputingNumeric ComputingCourse Code: GAME 150 Credits: 4 This course covers the fundamental mathematics needed for game programmers. Starting with basic algebra, the course moves on to functions – a concept used extensively in programming. Linear functions will be visualized using graphs. Techniques for simplifying and solving equations will be explored. Geometry and trigonometry will be investigated, as they are vital for creating computer graphics. This leads to the concept of vectors which are used extensively in the industry to manipulate objects in a video game. The course concludes with an investigation into statistics - a valuable tool for processing large amounts of raw data. The concepts in this course will be further reinforced through Java programming exercises. | 4 |
Semester 2 | Course Code | Course | Credits |
| COMM 313 | Technical Communications 2Technical Communications 2Course Code: COMM 313 Credits: 3 This course is designed to reinforce and expand on the skills students learned in Technical Communications 1. In Technical Communications 2, students will learn to design and write informal reports and a variety of other technical documents, using appropriate research, language, layout, and graphics. | 3 |
| GAME 210 | Relational DB Design and ImplementationRelational DB Design and ImplementationCourse Code: GAME 210 Credits: 4 The study of database design and management of a database is used to store the data for many online and multi-player games. Through this course, the student will gain a strong theoretical background in database design. The student will work with entity-relationship diagrams (ERD) to learn and implement the basic database design. Students will also use the normalization principles to also to enhance and further develop the database design. Using Oracle SQL, the students will apply the design principles to actually create and develop a working database. This course is designed to help students integrate theoretical material with practical knowledge to implement a database. Students will also use SQL commands to query single and multiple tables. Single and group functions will also be used in addition to sub-queries to query data. Manipulating of data in the database is also covered. The students will also work on a group project to develop a small database and use a development language to manipulate the data stored in this database. | 4 |
| GAME 220 | Game Dynamics 1Game Dynamics 1Course Code: GAME 220 Credits: 4 Modern video games use physics to immerse players in virtual worlds. This course is the first in a series of courses designed to explore the physics relevant to game programming. It covers concepts such as the equations of motion, forces, and gravity. Potential energy and kinetic energy will be used to predict motion using the conservation of energy. Collisions will be modeled using vectors, the conservation of momentum, and the coefficient of restitution. Simulations or games will be created that incorporate key concepts of this course. | 4 |
| GAME 251 | Framework ProgrammingFramework ProgrammingCourse Code: GAME 251 Credits: 3 This course introduces students to the foundations of .NET programming with C# using Microsoft Visual Studio. C# is a powerful, object-oriented language for rapid application development. Students will learn the syntax and structure of C#, objects and classes, and graphics. Microsoft's XNA Framework is a collection of managed (.NET) classes intended for game development. This course will also introduce the student to the XNA Framework and programming 2D games with XNA. | 3 |
| HUMA 024 | Humanities: An Introduction to Arts and ScienceHumanities: An Introduction to Arts and ScienceCourse Code: HUMA 024 Credits: 3 The Humanities course focuses on fundamental questions individuals ask of themselves as they proceed through life. Why are we the way we are? Do we have free will or are we prisoners of our past experience or our biological inheritance? What motivates societies to change? Why do societal changes so often divide people into opposing camps? Why do so many people find contemporary life at home, at work, and in the community unfulfilling? What constitutes good government? How should injustice be fought? Can nations successfully deal with global problems? What is science and how does it differ from other kinds of inquiry? Can scientists provide solutions to the problems we face? What is art and does it offer answers of its own? What is its relationship to beauty, to knowledge, and to ethics? Is objectivity about art (or anything) possible? These questions are organized into units that begin with issues concerning the nature of the individual and then extend outward to various social, cultural and physical contexts.
The issues explored in this course are too complex to have any one right answer. Rather, individuals must search for answers that make sense of their experiences via various theoretical perspectives. The Humanities course supports this endeavour through study of different thinkers presented in the readings and exploration of different points of view explored in class discussions.
ESL students should consider taking the ESL Humanities course. Students may transfer into
ESL Humanities (HESL 024) either at the Registrar?s Office or the School of Liberal Arts & Sciences
Office (K201) on a first-come, first-served basis before the Last Day to Add. | 3 |
| GAME 231 | Introduction to Internet Game DevelopmentIntroduction to Internet Game DevelopmentCourse Code: GAME 231 Credits: 4 This course will introduce students to the main elements of Adobe Flash as it relates to game development. Students will develop (design and code) a casual game using Flash ActionScript 3 in the Flexbuilder framework. Students will also learn how to publish their games using Flash and make them playable online. | 4 |
| GAME 240 | Java Application DevelopmentJava Application DevelopmentCourse Code: GAME 240 Credits: 4 This course continues the study of object-oriented programming concepts begun in CPAN 140, and also introduces many of the most important library classes that form part of the Java language. Students will make use of the these concepts to write Java applications that use object-oriented principles to perform tasks such as generating graphical user interfaces, handling exceptions, reading from and writing to files, interacting with databases, and communicating with other computers over a network. | 4 |
Semester 5 | Course Code | Course | Credits |
| GAME 410 | Project ManagementProject ManagementCourse Code: GAME 410 Credits: 4 This course is an introduction to project management. Although some of the activities differ, game projects are the same as other large software projects. As a result, project management is applicable to game development as it is to other types of software development. Students will be exposed to the basic theories, techniques, and rationales of project management. Working in teams, students will be engaged in project management activities: meetings, documentation, and writing. These will culminate in a final presentation where students will have to describe what they have done and why in a project management and information technology context. Microsoft Project will be used in this course. | 4 |
| GAME 500 | Game Engine DesignGame Engine DesignCourse Code: GAME 500 Credits: 4 This course introduces the architecture of game engines. The course will examine the major components of game engines along with various techniques for implementing the components. Topics will include cameras, lighting, scene graphs, spatial sorting, culling, level of detail, renderers, and sound. At the end of the course, the student will understand how a game engine works and be able to effectively use a game engine. | 4 |
| GAME 510 | Artificial IntelligenceArtificial IntelligenceCourse Code: GAME 510 Credits: 3 Immersive games interacting with physics based simulations require a practical knowledge of AI/A-Life. -Finite state machines, fuzzy logic and neural networks create the smart interaction that gamers expect in their applications. A mix of deterministic and non-deterministic AI techniques provides the backbone of the interactive experience. This course covers topics such as chasing and evading, swarming, path finding, probability and Bayesian techniques for NPCs, genetic algorithms, learning machines and virtual social evolution. | 3 |
| GAME 520 | Game Dynamics 3Game Dynamics 3Course Code: GAME 520 Credits: 4 Modern video games use programs called physics engines to make objects in their virtual worlds behave realistically. This course examines the development of a commercial-quality 3D physics engine. The concepts learned in Game Dynamics 1 and 2 will be revisited and built upon whilst advancing through increasingly sophisticated physics engines. Students will build parts of their own physics engines using C++ and also use a professional open source, 3D physics engine used extensively in the video game industry. | 4 |
| GAME 530 | Game Computing 2Game Computing 2Course Code: GAME 530 Credits: 4 This course discusses the mathematical concepts needed to develop a 3D game engine. Following on from the matrix transformations introduced in Game Computing 1, this course introduces Euler angles and quaternion's to represent orientation. With these basic mathematic tools covered, the course progresses into practical applications in 3D game programming. These concepts include representing the virtual camera used to view the game world, intersection tests, and interpolation techniques. The concepts in this course will be reinforced using a professional, open source, 3D graphics engine. | 4 |
| GAME 540 | Computer Graphics 1Computer Graphics 1Course Code: GAME 540 Credits: 4 This course in an introduction to OpenGL as currently implemented in C/C++. It will cover formation of solid 3-D objects in orthographic and perspective transforms as well as double buffer techniques, use of z-buffers and Model-View matrices. Surface materials, lighting models; rotation, translation, scaling matrix transforms and multi-object hierarchy will also be covered. | 4 |
*Note: Students entering semester five require the following courses, or equivalents: | Course Code | Course | Credits |
| GAME 220 | Game Dynamics 1Game Dynamics 1Course Code: GAME 220 Credits: 4 Modern video games use physics to immerse players in virtual worlds. This course is the first in a series of courses designed to explore the physics relevant to game programming. It covers concepts such as the equations of motion, forces, and gravity. Potential energy and kinetic energy will be used to predict motion using the conservation of energy. Collisions will be modeled using vectors, the conservation of momentum, and the coefficient of restitution. Simulations or games will be created that incorporate key concepts of this course. | 4 |
| GAME 330 | Game Computing 1Game Computing 1Course Code: GAME 330 Credits: 4 This course covers the basic mathematical concepts needed to develop a 3D game engine. The course begins with the basic issue of using real numbers in a simulation and the resulting features and limitations. Vectors are introduced to represent basic 3D objects such as points, lines, planes. Matrices are then used to represent affine transformations such as scaling, translation and rotation. The course concludes with a discussion on how to manipulate 3D game objects using affine transformations. | 4 |
| GAME 420 | Game Dynamics 2Game Dynamics 2Course Code: GAME 420 Credits: 4 This course continues from Game Dynamics 1, and takes the leap from linear motion to rotational motion. Topics include the rotational equations of motion, torque, and angular momentum. Properties such as the centre-of-mass and rotational inertia will be used to investigate rigid body dynamics. Oscillations will be explored within the framework of simple harmonic motion. The course concludes with the fundamentals of fluid mechanics. The characteristics of fluids (such as air and water) will be used to describe buoyancy, drag, and lift. The main concepts in this course will be reinforced using a professional, open source physics engine that is used extensively in the video game industry | 4 |
| GAME 340 | Foundations of Game ProgrammingFoundations of Game ProgrammingCourse Code: GAME 340 Credits: 4 Complex three-dimensional games place the greatest demand on even the fastest CPUs. These programs require very efficient code that can be optimized for both speed and memory use. C/C++ is still the most common language used for this purpose. This course is designed to give the student an understanding of C/C++ syntax, as well as the skills for manipulating pointers, structures and classes to generate high speed code. The course also introduces OpenGL to generate a 3D world. | 4 |