24
CIS 300 Spring 2005

CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Embed Size (px)

Citation preview

Page 1: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

CIS 300Spring 2005

Page 2: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Introductions

The Mastrix team:– Jim Babcock– Eric Hayes– Christian Montoya– Yi Xu

Page 3: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Story

HELP!

Page 4: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Goals

• Fast paced space shooter• First person shooter feel• Variety of levels• Unique weapons• Challenging AI

Page 5: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Game Play

• 16 thrilling missions• Each has specific tasks

– Get to a specific location– Destroy enemy fighters – Collect resources

• Levels are arranged into “campaigns” that develop the story

• Lots of power-ups:– Lasers– Missiles– Nuclear launchers– Temporary invincibility shields– Damage repair

Page 6: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Game Play continued

• Heads-up-display:– Shield meter– Engine indicator– Radar / mini-map– Weapon selector

• Fun stuff:– Some areas have high gravity– Orbiting planets– Drifting asteroids

Page 7: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu
Page 8: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu
Page 9: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Physics

• Initially, simple asteroids / space war physics– Hard to aim and slow

• Update: ship always faces cursor– Inspired by “ Wasteroids” – Faster pace and allows strafing

• Update: camera follows the cursor– Inspired by “Alien Swarm”– Solves view problems– Adds FPS feel

• Update: afterburners– You get an initial kick when you start thrusting

• End result: Completely different from asteroids!

Page 10: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

AI

• Implementation– Waypoint graph– Dijkstra’s algorithm– State machine for decision making and

steering

• Overall principles– Beatable

• Slower movement and shot speed, lower health

– Competent• Lead their shots, avoid obstacles

– Fully implemented• Modified physics• No friendly fire

Page 11: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu
Page 12: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Music

• 3 songs, all created in Reason:– Mastrix Fanfare– Space Rock– Ether

• Most sounds are public domain downloaded– Except for the shot sound, created in Reason

• All songs are available on the website

Page 13: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Multiplayer• Our game is networked multiplayer!

– Death match was our first game objective– Was playable before single player levels

• Multiplayer is a very different experience– Weapons are balanced for deathmatch– Extremely fast paced– Number of players is limited only by bandwidth– Powerups appear randomly

Page 14: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Networking• Based around simple message-passing

– For example: SendMessage msg(message_updatehealth);

msg.putFloat(health/maxHealth);

msg.sendToClient(clientID);– Biggest challenge was setting it up initially

• Not very efficient– Uses TCP/IP– Too much bandwidth– Vulnerable to lag and jitter– But great on a LAN!

• Server finder– Central server tracks games– It’s actually PHP on a web server

Page 15: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu
Page 16: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Scripting• Easy to interact scripting with main program

– Bad syntax, no control flow or arithmetic– Very easy to add commands

• Can tweak game parameters through console variablesfloat maxPlayerSpeed = 1000.0;

-vs-ServerConsoleVariable<float> maxPlayerSpeed(“player_speed”, 1000.0);

Can then change this in gameplayer_speed 1500 # Make the player faster

Page 17: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

• Can call game functions through console commandsvoid screenshot(void) {

static int screenshotNumber = 1;Screenshot(retprintf(“screen%i.bmp”,screenshotNumber++).c_str());

}-vs-CLIENT_CONSOLE_COMMAND(screenshot){static int screenshotNumber = 1;Screenshot(retprintf(“screen%i.bmp”, screenshotNumber++).c_str());

}• Can then call this in-game

bind f3 screenshot # make F3 take screenshots

• All of the controls work though the scripting system

Scripting cont.

Page 18: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu
Page 19: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Level Editing

• Implemented through scripting with menus• Menu options

– Add planets, spawn points, waypoints, regions, and power-ups at mouse cursor

– Set flags like collision type• Console commands

– Save current level– Specify boundaries– Set gravity

• Level files– Add triggers, functions, and timers– Set advanced entity properties, such as initial

motion

Page 20: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu
Page 21: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Art

• No artist in the group, so we had to be creative– Most art drawn by Jim (mines by Eric)– Heads-up-display done through code by Eric,

except for shield orb and icons– Star field uses parallax scrolling, continuous

depths, and relative brightness– Plain shots have a cool jitter effect added– PARTICLE EFFECTS! LOTS OF PARTICLE

EFFECTS!• Easy way to make game look good without

drawing everything – used for engines, explosions, weapon draw effects

• But, to get them running smoothly, we dropped GameX for SDL/OpenGL

Page 22: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu
Page 23: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu
Page 24: CIS 300 Spring 2005. Introductions The Mastrix team: –Jim Babcock –Eric Hayes –Christian Montoya –Yi Xu

Summary

• Thrilling single player mode with unique levels, innovative physics, variety of objectives, and challenging AI

• Exciting multiplayer mode that makes great LAN parties

• Useful level editor for endless fun