Chris Pollett > Students >
Joshua

    ( Print View )

    [Bio]

    [Project Blog]

    [CS180H Proposal]

                          

























Advisor: Dr. Chris Pollett

Description:

Pop is an instructional framework accompanying Professor Rudy Rucker's game development text, Software Engineering and Computer Games. This text and framework is used in the instruction of the CS134: Game Programming course at San Jose State University, now taught by Dr. Pollett. Pop is used by CS134 students for their software projects, helping students to focus on the specifics of game development by abstracting the interaction with the operating system and graphics libraries. To augment the framework, an improved mechanism for n-body 3-D collision detection will be devised for the framework, extending the brute-force spherical approximation method currently used, allowing fast and exact (where computationally feasable) collision detection while attempting to encapsulate the complexity of the algorithm from the users of the framework. The oriented bounding box tree (OBBTree), a recent algorithm for collision detection, will be adapted to work with the framework.

Pop currently has two graphics targets, one for 2D and one for 3D graphics. The 2D target uses a Microsoft Foundation Classes (MFC) API, and the 3D target uses the OpenGL library. Both of these implementations currently limit the framework to the Microsoft Windows platform. The Pop framework also relies heavily on proprietary MFC implementations of features such as run-time type information (RTTI) that could be replaced by now standardized C++ language features. A second goal of the project will be to improve the portability of the Pop framework by replacing proprietary Visual C++ language features with standardized C++ features. The 3D rendering target of the framework will be enhanced to allow cross-platform operation. The 2D rendering target of the framework will be refactored to allow the use of a cross-platform library instead of MFC. Input and sound functionality will be refactored to allow building with cross-platform libraries. The Simple Directmedia Layer (SDL) is a suitable cross-platform library, providing "low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer." (LibSDL.org, 2004) SDL supports Windows, MacOS X, and Linux as well as other platforms. At the completion of this project, Pop should compile on both Windows and Unix platforms.

References:

Gottschalk, S., Lin, M. C., & Manocha, D. (1996). OBBTree: A hierarchical structure for rapid interference detection. Proc. ACM SIGGRAPH'96, 171-180.

Josuttis, N. (1999). The C++ Standard Library 1st ed. : Addison-Wesley.

Lantinga, S. & Donlon, M. (2001). SDL library documentation. retrieved from Simple Directmedia Layer Web site: http://libsdl.org/.

Penton, R. (2002). Data Structures for Game Programmers 1st ed. : Muska & Lipman.

Prosise, J. (1999). Programming Windows with MFC. 2nd ed. : Microsoft Press.

Rucker, R. (2003). Software engineering and computer graphics. 1st ed. : Addison-Wesley.

Stroustrup, B. (2000). The C++ Programming Language 3rd ed. : Addison-Wesley.