Transcript Slide 1
Lauren Bissett, Daniel Maguire, Nicholas Woodfield
Background
Two overall goals:
Expand upon 3D game engine built last
semester.
Create a fun, interactive game built on top of
the engine.
Background
Using:
Microsoft’s XNA framework (C#).
Visual Studio 2008.
Additional software for art and music
development.
2. Schedule, Lauren
Feature
January
February
Design
•Floor plans
•Character design
•Content list
•More floor plans
•Playable character model
based on character design
•Level building
•Prop building
Modeling
Rigging
•Generic skeleton
•Rig generic skeleton
•Tweak rig for playable
character
Animation
•Assist in content pipeline
development and testing by
providing custom animations
•Walk cycle
Game
March
April
•Level building
•Prop building
•Level building
•Prop building
•Animate
•Animate
•Lighting
•Staging
•Lighting
•Staging
2. Schedule, Dan
Feature
January
February
March
April
Game
•Puzzle design
•Research
•Investigate game architecture
•Gameplay
•Inventory System
•UI
•Gameplay
•Gameplay
AI
•Path finding
•Line of sight
•Research
•Decision system
•Path finding
•Line of sight
•Decision system
Audio
•Sound effects
•Background music
•Sound effects
•Background music
•Sound effects
•Background music
2. Schedule, Nicholas
Feature
January
February
March
April
Engine
•Lighting
•Normal Mapping
•Content Pipeline
•Animation Research
•General Architecture
•Code Rewrites
•Documentation
•Animation Package
•Particle Effects System
•Specular mapping
•Parallax mapping (?)
•Environmental mapping
•Honors Thesis
•Honors Thesis
Lighting
•Per-pixel implementation
•Further development
•Optimization
•Portability
Particle
Effects
•Basic particle system
•Fire
•Dust
•Etc.
•Game-specific effects using
system
Continue
Game
•Foundation
•More robust collision/physics
•Specific gameplay
mechanics
•Stairs
Continue
2. Schedule, Analysis
Schedule only started to fall apart
toward the end of the semester.
Got most individual items done!
It was only the final integration that fell
behind.
Engine Architecture
Scene graph
Rendering System
Materials & Lighting
Animation
Input
Content Pipeline
Engine Architecture
Materials & Lighting
Normal mapping
Environmental mapping
Light mapping
Specular mapping
Rim lighting
Light objects
Diffuse Map
Normal Map
Specular Map
Engine Architecture
Collision Detection
Bounding Volume Hierarchy
AABB
OBB
Sphere
Physics Files
Integrated with 3D Editors
Engine Architecture
Animation
GPU Skinning
Play
Speed up
Slow down
Reverse
Artificial Intelligence
•Check visibility
•Rectangle intersections
•Corner intersections
•Lion Move
•If visible, move toward player
•Newly visible?
•Roar
•Fresh in Memory
•Go towards player
•Check for collisions
•If not visible
•Forgotten?
•Sleep
•Slightly remember?
•Forget a little more
•Pursue (choose viewpoint)
•Check for collisions
•If frozen, move around object
Art
Models
Animations
Textures
Levels
Props
Character
Optimizations
No heap allocation per frame
Avoiding excessive garbage collection
Allocate everything up front
Value types
Avoiding box/unboxing w/ enums/ints
Render queue
Reduce state switching
Cache states
Cut Features
Particle Engine
Very complex.
Not enough time to implement correctly.
Would have meant cutting other features.
Inventory System
UI
The ability is there, but ran out of time!
Difficulties, General
TIME!
The biggest problem is we ran out of TIME!
Integration
All the pieces are there, but we lacked time
to fit them together.
We ran out of time for integration.
Difficulties, General
Man/womanpower
Could have gotten a lot done if we had a
small team dedicated to each development
area.
Difficulties, Gameplay
AI algorithms were based on a 2D
algorithm.
Translation to 3D proved challenging.
Difficulties, Art
Lack of suitable textures
Each texture needs a diffuse, normal and
specular map.
Could only find a handful of suitable
textures.
Painting by hand is too time-consuming.
Resulted in lots of tiling, which makes the art
looks overdone and bland.
Inexperience
Apparently this art stuff is kind of difficult.
Video Demonstration
And now, the moment you’ve all been
waiting for…
Video
So how did we do?
Basically, all the pieces are there, we
couldn’t put them all together in time.
So how did we do?
We did, however, accomplish a LOT!
So how did we do?
The engine is at the stage where
anyone could pick up our code and build
a game right now.
So how did we do?
The engine is at the stage where
anyone could pick up our code and build
a game right now.
So how did we do?
The game itself is not very playable, but
there’s something there you can interact
with.
So how did we do?
As a group, we consider the underlying
code and art a success, but the lack
of final integration our only weak point.
Overall, we are satisfied.
The End