Download - Dr. Brian Durney Computing and Networking Sciences at UVU C S 3 5 4 0.

Transcript

Dr. Brian DurneyComputing and Networking Sciences

at UVU

C S 3 5 4 0

Why Game Programming?

It’s fun!

(Most of the time)

It’s also a whole lot of work:

• game design

• software design and implementation

• art, music, sound, writing

• testing

Nine Billion Dollars

Computer games are a big industry.

"More money is spent on games than on movies."

...but...

Research

Yes, real research:

No, they’re not talking about chess.

Human-level AI’s Killer Application:

Interactive Computer Games

John E. Laird and Michael van Lent

University of Michigan

My favorite things:

• Graphics Programming

• Artificial Intelligence

• Network Programming

• Interesting Math Problems

• Game Design

• Writing and Art

What we will do this term:

• Graphics

• Game Design

• Game AI

Graphics

Why I Hate DirectX

10.You can’t uninstall it.

9. Version changes led to crashes and character mutations.

10.There aren’t any really good books for the current version.

7. It’s from Microsoft.

6. No more DirectDraw.

Why I Hate DirectX

5. Exporting/loading 3D models is a pain. (conv3DS.exe is junk.)

4. Good luck using the documentation (information overload, gaping holes, it moves…)

3. It’s a major pain to debug.

2. It’s not portable.

1. Complicated is too kind a word.

Indirect DirectX

Rather than using Direct X directly, we will use a game engine.

• Portability

• Can program at a higher level

Game Engine Review and Demonstration

• Choose a game engine.

• Write a review.

• Write a demo program.

• Present your review and demo in class.

• The assignment web page has a list of game engines.

GameDesign

What makes a good game?

Game Review and Presentation

Look at a commercial game in terms of the game design principles we discuss in class.

Interactive Fiction

• Text games

• Venerable ancestors of ...

• Game balance, story line, nonlinear plots, characters, combat, etc.

• Story generation

Game AI

Write a program to control a bot.

We will also look at this game in terms of graphics and game design.

http://universe.tc.uvu.edu/uvbots/index.html

UV Bots

Server DisplayClient

BotClient

BotClient

BotClient

http://universe.tc.uvu.edu/uvbots/index.html

Programming Problem

How can the server efficiently tell when one bot hits another?

Programming Problem

How can the display keep the beam from going through obstacles?

AIIDE

Artificial Intelligence in Interactive Digital Entertainment

Story generator and director

• Automated dungeon master– Creates map– Creates plot/storyline– Runs adventure

Easy, right?

A project I’m working on…

Universe

• Long-term game development project• Wide range of clients• Wide range of players• “Serious games”• “Not-so-serious games”• Recruiting• Research: game design and game AI• Independent study, senior project

possibilities

Project• I encourage groups of 2 to 3 students for the

project.• Specialize in graphics, game AI, game design.• Complete

– Not necessarily a complete game, but should be a complete game, tool, or library.

• Programming required– Not just a level design

– I must be able to read your source code and play your game.

Project Ideas

• UV Bots– map editor– 3D display, Flash/Flex display, ...– game design and mechanics

• Universe– spaceship combat– trade and exploration– mini games

Project Ideas

• Converters for 3D model formats– Export .x from Blender for Irrlicht– Import/Export .ms3d in Blender

• Story generator and director– Use AI planner to generate and analyze plots– Choose manageable subproblem and

implement for NWN, UT, Half-life, text game, ...

Project Ideas

• ORTShttp://www.cs.ualberta.ca/~mburo/orts/

• Interface for commercial game

• Simulator software for the Christa McAuliffe Space Education Center (if they're interested...)

www.spacecamputah.org

• Your idea here...