420 likes | 590 Views
Lauren Bissett, Daniel Maguire, Nicholas Woodfield. Developing a 3D game using spark engine. Background. 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:
E N D
Lauren Bissett, Daniel Maguire, Nicholas Woodfield Developing a 3D game using spark engine
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, 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
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
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 Optimizations
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.