PDF Ebook 3D Game Engine Design for Mobile Phones with OpenGL ES 2.0
This master's project investigated the capabilities of mobile phones to support 3D graphics for games and how to develop for these devices using the OpenGL ES graphics library. A simple 3D game engine was developed that runs on a PC using a OpenGL ES 2.0 emulator library. Additionally, a game prototype was developed using this engine. The report investigates the differences between PC and mobile games, and how the mobile platform affects the design of a 3D game engine. Furthermore, the differences between OpenGL ES 1.1 and 2.0 are described, covering the implications of developing game graphics with shader programs. In conclusion, mobile phones supporting OpenGL ES 2.0 will be available in 2008 and they will probably support 3D graphics approaching the quality of recent PC games. Developing games for these devices would be very similar to developing PC games. The largest differences relating to graphics are the screen size and memory constraints.
Mobile phones constitute an interesting hardware platform for game developers since so many people always carry a phone around with them. However, mobile phones are generally not specifically designed to support gaming, which poses problems for game developers. One of these problems has been that mobile phones traditionally have provided comparatively simple graphics. This thesis aims to evaluate the graphics capabilities of current and upcoming mobile phones, specifically focused on 3D graphics using the OpenGL ES graphics programming interface. OpenGL ES is an adaptation of the OpenGL industry standard aimed at embedded systems, and is available in two main versions: 1.1 and 2.0. This thesis is mainly focused on the later version which supports more advanced graphical effects through the use of shader programs.
The goals for the project were to examine how to develop mobile games with OpenGL ES 2.0 and how three-dimensional graphics and shader effects can successfully be used in mobile games. This was accomplished by developing a 3D game engine on top of a OpenGL ES 2.0 emulator library currently available and using this engine to create a game prototype. The differences between PCs and mobile phones, between 2D and 3D games, and between 3D graphics with and without shaders were evaluated.
Contents
1 Introduction
- 1.1 Problem Statement
1.2 Delimitations
1.3 Thesis Outline
2 3D Game Engine Overview
- 2.1 Resource Handling
- 2.1.1 Models
2.1.2 Textures
2.1.3 Shaders
2.1.4 Materials
2.1.5 Animations
2.2 Scenegraphs
2.3 Rendering
- 2.3.1 Methods
2.3.2 View Frustum Culling
2.3.3 Occlusion Culling
2.3.4 Spatial Acceleration Structures
2.3.5 Hardware Specific Optimisations
3 Graphics Libraries
- 3.1 OpenGL
- 3.1.1 Versions 1.0 – 1.5
3.1.2 Versions 2.0 – 2.1
3.2 OpenGL ES
- 3.2.1 Versions 1.0 – 1.1
3.2.2 Version 2.0
4 Graphics Hardware
- 4.1 PC Hardware
4.2 Mobile Hardware
5 Approach
- 5.1 3D Game Engine
- 5.1.1 The Effect Files
5.1.2 The Model Files
5.1.3 Scene Representation
5.1.4 Scene Management
5.1.5 Animations
5.1.6 Built-in and Custom Uniforms
5.1.7 Scene Rendering
5.2 The Demon Demo
- 5.2.1 OpenGL ES 1.1 Adaptation
5.2.2 Symbian OS Adaptation
5.3 3D Kodo Game Prototype
6 Evaluation
- 6.1 3D Game Engine
- 6.1.1 Resource Handling
6.1.2 Data Files
6.1.3 Scene Management
6.1.4 Rendering
6.2 Demon Demo
6.3 3D Kodo Game Prototype
7 Conclusions and Further Work
Download
PDF Ebook 3D Game Engine Design for Mobile Phones with OpenGL ES 2.0
Posted in :