Presentation is loading. Please wait.

Presentation is loading. Please wait.

GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX.

Similar presentations


Presentation on theme: "GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX."— Presentation transcript:

1 GAM666 – Introduction To Game Programming ● 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 Course Overview

2 GAM666 – Introduction To Game Programming ● 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 Performance Matters

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


Download ppt "GAM666 – Introduction To Game Programming ● Programmer's perspective of Game Industry ● Introduction to Windows Programming ● 2D animation using DirectX."

Similar presentations


Ads by Google