Current MS Students/Neal Patel
From CSWiki
Game Engine Analyzer
Contents |
[edit] What I am planning to accomplish
My goal for my masters is to form a thesis that analyzes game engine functions. I intend to build one simple game simulation in each of the following game genres (FPS, RPG, and a Sport game) and test them using a variety of game engines. This investigation will record and relay quality information of certain attributes, i.e. rendering, networking, physics, etc. in game engines. The goal is to determine which engines provide better functionality to a particular type of game. Therefore at the end of my research the thesis will report how certain game engines support gaming features such as physics, audio, networking, 2d GUI, etc that were tested by my simulations as well as independent game developers who have other simulations for testing.
Some important questions to answer is
- Why should we as independent game developers choose this game engine over a huge list of others?
- What type of game is better suited with a game engine that provides better physics routines but lacks any network functions or has simple networking and audio functions but has poor graphics quality and rendering speed.
I plan on reviewing all open source engines that run on Linux and Windows platforms and are written in C/C++ and or Python (since I want to learn & become proficient in Python) supporting OpenGL. If time becomes an issue a narrow list of suggested engines that fit these criteria can be adjusted. I do plan on making a interactive website for users so they can input their rankings based on their testing but initially the properties would be listed by me. The intention would be that independent game developers can have a reference to choose from game engines that fit their particular need. Also they can add there input stating there experience using a certain game engine, reporting how the engine worked on their simulation.
Then you could compare the various interface implementations of the various engines. The downside of doing that is that you wouldn't be taking advantage of the special features of the different engines. You would be coding the interface so that all engines could implement them.
But it might be interesting to try to something along those lines.
Reply: That does seem like a good way to go about doing the project. I believe I will have to do that to test the simulations to see results of features given by a particular game engine. What I initially planned on doing was modifying the game code to run on top of the game engine code. Thus I can work with the game engines just as they have been implemented.
[edit] Why this is academically interesting
[edit] Intended audience
Professionals or students working in game development, simulation, scientific visualization, or virtual worlds.
[edit] Why this is MS-level work
This thesis requires a substantial amount of research and knowledge of game engines. To do this there will be a great deal of software testing and analysis of game engines which will take a lot of work. MS-level work takes a significant amount of time and work which is what my thesis will take.
[edit] Previous work
* CS590
Do to the fact my thesis will focus primarily on software testing I have read articles that estimate the cost of time in order to reduce the amount of time on testing especially in game testing.
T.J. Cheatham, J.P. Yoo, and N.J. Wahl. Software testing: a machine learning experiment. In Proceedings of the 23rd Annual Conference on Computer Science, 1995.
G. Xiao, F. Southey, R. Holte, and D. Wilkinson. Software testing by active learning for commercial games. In Proceedings of the 20th National Conference on Artificial Intelligence, PA: AAAI Press, 2005. [1]
Moloney, J, Amor, R., Furness, J., and Moores, B. Design Critique Inside a Multi-Player Game Engine, Proceedings of the CIB W78 Conference on IT in Construction, Auckland, New Zealand. [2]
Olivier Montanuy, Unofficial Quake-C Specification, [/http://www.gamers.org/dEngine/quake/spec/quake-spec34/]
Miliano, V. (1999) Unrealty: Application of a 3D Game Engine to Enhance the Design, Visualization and Presentation of Commercial Real Estate. 5th International Conference on Virtual Systems and Multimedia, September 1-3, Dundee, Scotland, [3]
Lewis, M. & Jacobson, J. 2002. Game Engines in Research. Communications of the Association for Computing Machinery (CACM), NY: ACM 45(1). [4]
[edit] Anticipated challenge(s)
[edit] Challenges
Choosing how many game engines to analyze is a big challenge.
How to report the data will be another challenge where users can add their input from simulations they have done with there games. For instance how can you tell which game handled better on a particular game engine? Will there be a log of performance and handling related issues with particular games. How will you be able to tell which game handled collision detection, AI, physics, etc better?
Learning Python
[edit] Anticipated approach to each challenge
1) Game engines that are written in C/C++ and or python supporting OpenGL should narrow the list. They must also be open source since code for commercial game engines are not available.
2) Creating an interactive web site seems like a possible solution maybe a CMSMatrix. Once this data is recorded by me and other users then we could log our findings on the site. As this information is gathering the finding can serve as evidence of performance and handling issues which would be detailed in my thesis.
3) A language is a language. If you learn one language well transitioning to a new language is not as hard so they say.
[edit] What I bring to this work
[edit] My relevant background and experience (CS 590)
In my cs419ab project I designed and implemented a First Person Shooter Game
Check it out
However this differs from any other course in that substantial research will be done on pariticular game engines. Before designing my undergraduate project research was done in the game development process. This study goes beyond development of games.
[edit] What I find interesting about this work
From this research I will learn game engines and game development process which I can present to potential employers. I will be also able to be involved with the game development community which helps me have a better understanding of the different internal level of games.

