Post by rchpabst on Jul 18, 2007 15:29:03 GMT 1
Evaluation of Solutions
2-Dimensional Graphics
Summary
2D imaging is where graphics are displayed on a flat plane, however this does not mean that 3D effects, or 3D objects can't be rendered on the screen as well. The 2D imaging that will be referred to here allows for the inclusion of 3D effects and 3D objects, but strays away from advanced effects such as ray-traced shadows and 3D characters, although they can be implemented at a later time.
Advantages
- 2D imaging requires less work and therefore less production time.
- Will most likely experience fewer errors with comparison to a 3D engine.
- Can be built simultaneously with the Core Engine(1) assuming Fallout as the base.
- Performs sufficiently on most computers, ensuring that almost all users can run the application.
- Construction and Design of the engine does not require many programmers, a single programmer dedicated to its development is all that is required.
- 2D can act as a means of displaying high quality graphics without having to deal with performance drops or require knowledge of producing a high quality 3D engine. This is assuming that 3D renderings of each object are made. This can be achieved using 3D Studio Max, Cinema 4D, or other rendering applications. Assuming that proper modelers can be found, this is possible. Modelers that can model humans and animate them are required.
- 3D effects such as particle effects operating in 3 dimensions are possible.
- Certain features enabled by 3D graphics can be added to the 2D engine at later times; such as 3D characters, which can be placed seamlessly into the 2D realm.
Disadvantages
- If using pixel art, large amounts of time will be required for the creation of these images and animations.
- If using 3D rendered models like Fallout; 3D modelers will be difficult to find.
Additional Comments
Some of the suggested advantages to the 2D engine are based on hardware acceleration, which can be achieved through OpenGL or DirectX. Performance differences between the two are minimal and do not indicate that one performs better than the other with regard to all functionality.
OpenGL does offer certain advantages over DirectX:
- The API is far easier to learn.
- Relatively less room for errors as DirectX programming is tedious.
- Does not limit the type of language which can be used; C++, C, Java, C# (wrapper is available, but I'm not sure if there is a loss of functionality).
- Is available on all operating systems, rather than only Windows based OSs.
When using the 2D engine, it will be possible to extract Fallout 2 Data files and use them as the images for the game. The downside of this is that the game produced by us will only act as a socket where the images can be used; we cannot directly provide these images in order to avoid legal confrontations. However since the data files can be acquired by others via the purchase of Fallout, this might be an acceptable route of development which would clear us of the need to produce our own graphics. This acts similarly to FIFE's ability to use Fallout data files to extract image data.
Should 3D models be used to render high detail 2D images, these models can be later used as 3D models should we wish to expand the application to operate in the 3D realm.
3-Dimensional Graphics
Summary
3D imaging allows for actions that couldn't be performed in 2D space to be performed in 3D space. This article does not cover the disadvantages or advantages of producing a 3D engine, but rather evaluation regarding the use of 3D Engines which have already been built. Such 3D engines include Irrlicht, Ogre3D, Crystal Space. These are the leading 3D engines with the largest support community. The choice of which engine to chose from will not be discussed here.
Advantages of Using 3D Engines With Regard to Game Design
- Prebuilt support for shadows, texture management, model loading, particle systems, skeletal animation, BSP trees, and so on.
- Enables the ability to produce high detail environment, but does not guarantee it.
- More pleasing to the general public than 2D graphics.
Disadvantages
- Requires 3D modelers.
- Learning requirement; graphics programmers will be required to understand how to program in the 3D engine. This requires reading tutorials, and practice with operating the engine.
- Possibly Restricts to programming in C++. Although some of the graphics libraries offer Java bindings, or C# bindings, certain functions available in the original might not be available in the binding. Ogre3D offers a Managed (C#) version of Ogre which appears to have the same functionality as Ogre3D. Irrlicht however, offers a Managed version without the same features.
Additional Comments
The time required to construct the Game World(2) is dependent on the requested features, which means that production must rely on our development of the game features (breakable buildings, ray-traced firing, ability for bullets to collide with objects, and so on). Certain features may be considered given, such as shadows.
Definitions:
(1) Core Engine
All parts of the engine which consist as main functions of the game, ie character management, moving objects, collision, items, attacking, and so on.
(2) Game World
Anything that must be programmed using the 3D engine, such as skeletal animation, shadows.
If I've missed anything or made an error, please make a note of it and I'll edit the post.
Thanks,
Pabst