1 / 10

GAM666 – Introduction To Game Programming

GAM666 – Introduction To Game Programming. Course Overview. Programmer's perspective of Game Industry Introduction to Windows Programming 2D animation using DirectX 7 3D animation using DirectX 9 Sound using DirectX Audio Joystick using DirectInput 3D animation using OpenGL

kristia
Download Presentation

GAM666 – Introduction To Game Programming

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. GAM666 – Introduction To Game Programming Course Overview • Programmer's perspective of Game Industry • Introduction to Windows Programming • 2D animation using DirectX 7 • 3D animation using DirectX 9 • Sound using DirectX Audio • Joystick using DirectInput • 3D animation using OpenGL • Other parts of DirectX • Student Project

  2. GAM666 – Introduction To Game Programming Performance Matters • Hardware limits what you can do • Requires highest level of programming skill to get the most out of the machine • Dedicated hardware evolves to get past bottlenecks, e.g. 3D Acceleration

  3. GAM666 – Introduction To Game Programming 3D Acceleration Background • Current technology stores 3D objects as collections of triangles in 3D space which must be projected and clipped onto the 2D screen in front of you • Images (textures) are laid across these triangles making them seem more than just triangles • Lighting calculations further enhance realism by adjusting the final colour depending on the location of light sources • Some or all of the necessary calculations can be offloaded from CPU to video card

  4. GAM666 – Introduction To Game Programming 3D Acceleration Background • 3Dfx effectively created the market in mid 90s by introducing arcade-style acceleration to consumer PC market (using a proprietary API, Glide) • Microsoft created a Game Development library called DirectX, working with video card manufacturers to provide a common API to use with all brands of video card • OpenGL (originally from SGI) was also adapted to work with any brand of accelerated video card • nVidia and ATI now dominate the market

  5. GAM666 – Introduction To Game Programming 3D Acceleration Trends • Until recently, the focus was on developing video cards that accelerated specific calculations involved in 3D rendering • Currently, the focus is on putting programmable computing power onto the video card (GPU), giving more flexibility to the developer (Shaders) • Future trends will focus on parallel processing solutions, which will probably change the fundamental techniques used to store and render 3D objects (e.g. Ray tracing)

  6. GAM666 – Introduction To Game Programming DirectX Overview • Microsoft's game programming library • Useful for all sorts of high performance multimedia applications, not just games • Built on COM technology, but also has a managed (.NET) interface • New releases are backwards compatible with previous releases • Has allowed Microsoft to be involved with ongoing development of game hardware • Deals with all the major aspects of game programming, individual components can be used independently of others

  7. GAM666 – Introduction To Game Programming DirectX Components • DirectX Graphics • DirectDraw (low-level 2D surfaces) • Direct3D (3D acceleration) • DirectX Audio • DirectSound (low-level sound buffers) • DirectMusic (music and sound effect management) • DirectInput (keyboard, mouse, joystick, force feedback) • DirectSetup (to write DirectX installers) • DirectShow (multimedia streaming) • DirectPlay (game networking)

  8. GAM666 – Introduction To Game Programming OpenGL Overview • OpenGL began as a 3D rendering library before real-time 3D graphics was practical • Originally developed by SGI (Silicon Graphics, a minicomputer manufacturer), now maintained by a multi-vendor body • Manufacturers of 3D-capable video cards usually supply accelerated OpenGL drivers along with DirectX drivers • Widely used alternative to Direct3D for 3D rendering in games • Multi-platform: Windows, Unix/Linux, Mac

  9. GAM666 – Introduction To Game Programming Jobs for Game Programmers • Days of one person creating a game are over • Large teams required to build a modern, commercial quality game • Designers (art or programming background) • Artists • Programmers • Programming jobs can be quite specialized • Engine, Special effects • AI, Game play, Scripting • Artist/Designer/Programmer tools • Sound, Networking

  10. GAM666 – Introduction To Game Programming Course Project • Make your own individual game [skeleton] • Important traits: • You understand the code (no black boxes) • Some interesting aspect of gameplay • Real-time 3D graphics, sound, joystick • Relatively independent of hardware • What you might not achieve: • Full set of features, lots of levels • Nice looking art, good sounds • Motivation: start your personal Game Programming Portfolio

More Related