

Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Material Type: Project; Class: Comp Sci Proj Plan; Subject: Computer Science (CSC) ; University: University of Miami; Term: Fall 2007;
Typology: Study Guides, Projects, Research
1 / 2
This page cannot be seen from the preview
Don't miss anything!


Alex Dellinger September 10, 2007 Instructor: Dr. Geoff SutcliffeSupervisor: Dr. Uttam Sarkar
Computer Science Project Proposal For my computer science project I will be attempting to create a 3D game engine. Since it seems very likely that the time required to create a fairly comprehensive and complex engine will far exceed that which would be available, the actual scope for this project will be much narrower. Thus, the focus will be primarily on creating a 3D renderer. A framework may also be created which will, hopefully, be fairly modular. This will allow me to add missing engine components (such as sound) easily without disrupting the already written and tested code. The renderer will utilize the DirectX 9 API, which is the dominant API for gaming on Windows (which is itself the dominant platform for PC games). The engine will be written using the C++ language. While I briefly considered using C# (C Sharp) to write the engine, which would have been easier and quicker than any other language, I felt it would be best to use the industry standard. The renderer will, of course, make use of the basic algorithms: culling, clipping, double- buffering and so forth. It will make all the appropriate transformations and follow the Direct3D graphics pipeline. It will feature basic texturing and lighting effects. This is merely the minimum engine that could result from the project. Given the inherent impossibility of knowing exactly how long any given effect or algorithm will take to get working in the engine, it would be unwise to create a fixed goal at the outset when working with such a limited and unchangeable deadline. Therefore, as the project progresses forward, the goal will be expanded – always staying just slightly out of reach. I feel that this tactic will result in a more mature engine, rather than by setting some arbitrary goal. When the deadline finally approaches, the engine will have essentially met several previous objectives and will only be in the process of attempting to add a single new feature, effect, or
algorithm. This would either be easy to finish in the time limit, or would dropped from the engine entirely – essentially rolling back to the last functional and working version. It will also not be overwhelming, as each new target is not too far away. Some examples of advanced effects that, circumstances permitting, I would like to include are: real-time lighting, skeletal animation, HLSL, particle effects, bump mapping, and etcetera. My reasons for doing this project extend beyond the scope of the project requirements. Ultimately, I would like to end up with a 3D game engine that is as fully functional as possible and which would be worthy of showing to potential employers (either as is or used for a game).