Human-level AI's Killer Application: Interactive Computer Games

advertisement
CS 3540
at
UVU
Dr. Brian Durney
Computing and Networking Sciences
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:
Human-level AI’s Killer Application:
Interactive Computer Games
John E. Laird and Michael van Lent
University of Michigan
No, they’re not talking about chess.
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.
8. 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.
Game
Design
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
Display
Client
Server
Bot
Client
Bot
Client
Bot
Client
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
• ORTS
http://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...
Download