Game Development Software Engineering Process Jeffrey C. King CIS4914 Senior Project 23 April 2001 and the
Summary Motivation Buggy Games Release Delays Maintenance Difficulties Problem No Design Plan Unknown Dependencies / Emergent Behavior Code Duplication Frequent Rework Solution Formal Design Modularity Reusability Robustness Documentation
H. Hoppe, Computer Graphics (SIGGRAPH 1997 Proceedings), pages Literature Sources Alan Watt and Fabio Policarpo, 3D Games: Real-time Rendering and Software Technology. ACM Press, New York, NY, Andrew Rollings and Dave Morris, Game Architecture and Design. Coriolis Group, Scottsdale, AZ, DeLoura, Mark, ed., Game Programming Gems. Charles River Media, Rockland, MA, Mason Woo, Jackie Neider, Tom Davis and Dave Shreiner, OpenGL Programming Guide. Addison Wesley, Reading, MA, Tomas Möller and Eric Haines, Real-Time Rendering. A.K. Peters, Natick, MA, H. Hoppe, IEEE Visualization 1998, October 1998, pages Charles Bloom, VIPM (Progressive Meshes), (current 21 March 2001) Tim C. Schröder, glVelocity, (current 21 March 2001) Sommerville, Ian, Software Engineering, Pearson Education, Essex, GB2, 2001.
Work Performed Prototypes Software Requirements Specification Main Application Camera Landscape Waterscape Scene Management BSP Constructor
Results Program Overview
Results DEFINES; # NoMouse variable indicates # that the mouse cursor should # not be drawn. $noMouse = TRUE; END; DO_RIGHT; $translateX -= cos($rotateY); $translateZ -= sin($rotateY); END; DO_LEFT; $translateX += cos($rotateY); $translateZ += sin($rotateY); END; DO_UP; $translateX -= sin($rotateY); $translateZ += cos($rotateY); $translateY += sin($rotateX); END; DO_DOWN; $translateX += sin($rotateY); $translateZ -= cos($rotateY); $translateY -= sin($rotateX); END; DO_LOOK_VERTICAL; $rotateY += $move_vertical; END; DO_LOOK_HORIZONTAL; $rotateX -= $move_horizontal; END; DO_ALT_UP; $translateZ -= 1.0; END; DO_ALT_DOWN; $translateZ += 1.0; END; Camera Script (FPS)
Results
Conclusions and Future Work Conclusions Game Development benefits from Software Engineering practices Overhead is negligible Future Work Level of Detail Curved Surfaces Indoor Scenes (Portals and PVS)
Questions and Answers