Why use a 3D engine?

Why the 3DSTATE 3D Engine ?


Why use a 3D engine ? [Top]

Here are 5 reasons why using a 3D engine is not an option, but a MUST. 

1. Simple fact. Every game that is released today has an engine behind it. Developing your own proprietary engine will take years, and then no one guarantees that your engine will be able to compete against the rest.
2.There’s no choice. The engines that come with the hardware APIs don’t deliver good performances. For example, the Direct3D Retained Mode engine is very weak and is not capable of dealing with large worlds efficiently. You won’t see any leading games built on top of it. Glide is just an interface to hardware with no engine behind it.
3.There’s no choice (2). The market of 3D accelerators and API is undergoing rapid changes. Each month we hear about the new king of 3D accelerators. API wars are causing lots of changes. MiniGL out, ICD in, DirectX 8.1 out, Direct 11 in. Glide3x out, OpenGL 1.1, 1.2, ...4.1 etc. …
If you have to spend your time testing your code on dozens of different 3D accelerator cards, you won’t have time to make the game itself. By the time you finish your game, the industry could look completely different. You need someone else to take care of those details. You've got to spend your time on the actual development!!!
4. Development speed (1) A good 3D engine resolves all the ugly details of 3D API programming without sacrificing performance. Becoming an expert with even just one API takes time and patience.
5. Development speed (2) Even if you are already an expert with the 3D APIs, you still have to develop a smart engine on top of it. That’s exactly what we’ve been doing for the past nine years ! So take it. It’s debugged and it's working extremely well.
Alternatively, you can take your time and start doing your own research on: binary space algorithms, surface caching, physics and kinematics, texture memory management, shaders programming etc …

Why the 3DSTATE 3D Engine ?   [Top]

1.  Performance: With our new Speed Technology, 3DSTATE 3D Engine is one of the fastest engines available today, delivering very high quality graphics in high FPS (frames per second).
2. 100,000 users can't be wrong ! 3DSTATE has more than one hundred thousand users with about 200 new users joining every day. During the last four years thousands of our users were actively helping us make a better product by sending us bug reports and reporting about eccentric and rare 3D cards and PC environments. New users that join us today benefit from years of hard work by many people and thus receive a product that is near perfect.
3. Technology: 3DSTATE’s 3D Engine proprietary Virtual-Reality engine is based on state-of-the-art algorithms and techniques, including proprietary PIRR technology (photo realistic Interactive Real-Time Rendering). The result is more advanced performance both in speed (frames per second) and image quality than other PC based engines. 3DSTATE’s 3D engine SDK makes it extremely easy to add any kind of 3D content to any application or to create arcade level games from scratch.
4. Simplicity: One of the first things you should check when examining a 3D engine is its sample code. Start from the simplest sample available. If in order to view one triangle you have to write 10 pages of complex code, then you should have real doubts about this engine’s ability to shorten your development time. Working with the 3DSTATE 3D Engine is amazingly simple. As an example, here is a FULL program sample code. This sample will load a world and render it until the Escape key is pressed. The world itself can be built using The 3DSTATE WorldBuilder with simple drag-and-drop functionality. A world can be very complex, cars driving, planes flying, dogs chasing people etc.
#include "3dstate.h"
   void main(void)
                3DSTATE_engine_load_world("worlds\\world1.wld",NULL, "bitmaps", NULL);

                //Render till the Escape key is pressed.
                while( (GetAsyncKeyState(VK_ESCAPE)&1) ==0 ) 
                                3DSTATE_engine_render(NULL, NULL);



5.Total Control: Using the 3DSTATE 3D Engine you can control every aspect of your 3D game up to the bits and bytes level, so you get to enjoy both worlds. On the one hand you enjoy application generator characteristics while on the other hand, you can control absolutely everything using your favorite programming language.
6.  General Purpose Engine: Is your current 3D engine limited to only one kind of game ? You could have a great engine like Id Software’s Engine, but will you be able to create a racing game or a flight simulator ? (The answer is of course NO). Working with a special task engine will limit your development directions in the future. It will even limit your game, making every episode of your game look identical. 3DSTATE is a general purpose engine. You are not limited to any category. The 3DSTATE engine also includes optimizations for both indoor and outdoor games.
7.   Non-Binding Engine:  Once you start developing with any other engine (except 3DSTATE), your are tied to it forever. Trying to switch later to a different engine would mean throwing most of your invested code into the garbage and starting all over again. 
But how is the 3DSTATE 3D Engine non-binding?
  The answer is that there are no new data types defined with the 3DSTATE 3D Engine!!! No new classes and no new structures!!! It is mainly set and get commands. Should you want to use a different engine in the future, you’d just have to replace the 3DSTATE API calls with calls to the new engine.
8. Very fast learning curve: Well, everybody says that and usually everybody is wrong. The reasons that make 3DSTATE so different is that our engine doesn’t add any new data types !!! No new classes and no new structures!!! The 3DSTATE 3D Engine SDK comes with about 30-sample code of which many are full programs less than one page of code. How complicated can one page of code be without any new data types? On the other hand, we have full games with their source code from which you can learn.
9. Full package: 3DSTATE supplies a wide range of tools that are all tuned to work smoothly with the 3DSTATE 3D Engine. This will save you time looking for complimentary tools and then laboring to make them work together. If you try to tailor your own SDK package, i.e. take a 3D engine from vendor X and the World Builder from vendor Y, terrain generation program from vendor Z , you soon discover that you have to spend lots of time on import / export issues, trying to find out why your beautiful models from 3DS look so bad now in DirectX (X files) format etc…
10. Console, API, MFC or .NET: The 3DSTATE 3D engine lets you develop your application the way you’re used to. The SDK comes with Console application samples, Windows API samples and MFC. We also tailored special versions of the SDK to nicely fit some of the popular compilers .
11. DLL technology at its best: Our engine is a DLL this means that when a new version is relased our users do not have to change their code. They don't even have to recompile their application again !