Frequently Asked Questions

What you always wanted to know about 3D game development

Q. What is a 3D Engine, a 3D Language, and a 3D Authoring System?

A 3D Engine is a software library of 3D graphics functions. It can be used in combination with a software delevopment system such as Microsoft Visual C++™. Programming a game with a 3D engine offers a maximum of flexibility, especially since the library is often available in source code and thus can (and usually needs) be adapted to the application.

A faster approach is using a 3D Language. This is a 3D engine integrated in its own programming language. Such languages often don't offer the full flexibility of 'real' programming, but are a lot easier and faster to use - especially for beginners to programming.

The easiest way to create a game is an Authoring System, which allows 'clicking together' games without any programming. Some authoring systems, such as Gamestudio/A7, can be used on different levels as a 3D engine and a 3D language as well. Here's a comparison table of the most popular systems and engines:

Authoring Systems 3D Languages 3D Engines

Compared version 4.0 3.0 2.5 8.1 8.1 ? ? 8.1 1.4 1.4.6 6.3 1.5 1.0 3
Price ca. (US $)* 1500 500 free free 199 69 100 free free free 500 150 295 free
Publishing games
free free Logo Logo free free free free ZLIB LPGL free Logo Logo Logo
Scene manager ? Octr ? ABT ABT BSP - ABT Octr Octr BSP - Port BSP
Terrain renderer - yes yes yes yes yes yes yes yes - yes yes yes yes
Shadow mapping yes - yes yes yes - yes yes - yes - - - yes
Dynamic Shadows yes yes - yes yes yes yes yes yes yes yes yes yes yes
Shaders yes yes yes - yes $39 - - yes yes yes - yes yes
Postprocessing yes - - - yes - - - - yes - - yes yes
Dynamic decals - - - - yes - - - - yes - - - yes
Particle generator - yes yes yes yes yes - yes yes yes yes yes yes yes
Beam generator - - - - yes - - - - yes - - - yes
Template system - - yes yes yes - - yes - - - - - yes
Save/Load system - - - yes yes - - yes - - - - yes yes
Multiplayer - yes yes - yes $20 yes - - - - yes yes yes
Physics engine yes yes yes yes yes $59 - yes - - yes - yes yes
Plugin extendable yes - - - yes $31 - - yes yes yes yes yes yes
Level editor - yes yes yes yes $99 yes yes - - - yes yes yes
Terrain editor - - yes yes yes - - yes - - yes yes yes yes
Model editor yes - - yes yes - - yes - - - - - -
Script/HLSL editor yes yes yes yes yes yes yes yes - - - - - -
Script compiler - - yes yes yes yes yes $99 - - - - - yes
Script debugger - - yes yes yes yes - yes - - - yes yes yes
Script syntax LUA Lisp C C C Basic Basic C - - - C C C++

* Prices are listed for commercial publishing licenses.

Chart based on manufacturer's specifications as of 2012 - no responsibility is accepted for the correctness. If several license versions are available, normally the medium-priced license is listed. If you find something incorrect, or if you want a certain engine to be included, or if you are a manufacturer and don't want your engine compared here, please notify webmaster at conitec.net.

The above feature list does not necessarily reflect that a certain system is 'better' than another system. There are huge differences in speed and stability between engines with apparently similar features.

Q. Apart from Gamestudio or lite-C, which other systems can you recommend?

. Authoring Systems: Unity (huge community); 3D Languages: Blitz 3D (slow, but stable and well suited for small games); free 3D engines: Irrlicht (well structured and understandable C++ code).

Q. What is a Scene Manager?

A. A scene manager improves the frame rate by rendering only the visible parts of a game level. The oldest scene managers were Portal and Octree systems. A Portal system attempts to reduce the scene to the parts seen through openings, like doors or windows. An Octree system splits the level into a tree of cubic regions and only renders the content of regions that are in the view area of the camera. Due to their simplicity, Portal and Octree systems are still used by many 3D engines today.
The ABT (Adaptive binary tree) is an improved version of the Octree system. It splits the level into rectangular regions dependent on the level geometry and content. The BSP tree system splits the level into irregular regions along level walls. This is the most effective system, especially for indoor levels. For outdoor levels, where a BSP tree offers litte advantage over an ABT or Octree, a LOD (Levels-Of-Detail) system can be used for keeping the frame rate high. It automatically switches to simpler shapes of objects that are far away from the camera, thus reducing the overall number of polygons drawn per frame.
A brief technical description of the A7 engine's scene manager can be found here.

Q. What is a Terrain Renderer?

A. Realistic landscapes consist of millions of polygons and thus normally can't just be rendered like normal models. Therefore some engines contain a special terrain renderer that divides the landscapes into small chunks and adjusts their details to their distances to the camera. Only the terrain sections close to the camera need to be loaded into computer memory and rendered on the screen. This method supports highly detailed landscapes of theoretically unlimited size (screenshots from the Gamestudio user forum).

 Far away: huge size, low details    Close by: small size, high details

Q. What is Shadow Mapping?

A. Also called Lightmapping - a system for precalculating realistic lights and shadows without frame rate penalties. A shadow mapping compiler allows you to place an unlimited number of static light sources in the level, and then calculates the light flow and shadows for each surface. Can you find all the differences in the two images below? As you see, precalculated lights and shadows considerably add to the atmosphere of a scene (screenshots from the Gamestudio user forum).
Some advanced systems, such as Gamestudio, use a radiosity algorithm for calculating the light flow. The light rays don't end at the first obstacle they hit, but their diffuse reflection from the surface continues to illuminate the scene. This gives a much more realistic lighting than a straight light flow calculation.

 Level with Shadow Mapping    Level without Shadow Mapping

Q. What are Decals?

A. Decals are small images that are 'stamped' in real time on positions of wall, ground, or model surfaces. They are used for special effects such as bullet holes, scorch marks, footprints, ground shadows and so on. Properly placed decals can greatly add to the realism of a scene. Some advanced engines offer a decal system that can generate a virtually unlimited number of decals and moves and animates them together with the objects they are attached to.

Q. What is a Particle System?

A. A particle system is an effect generator that creates a huge number of small particles for special effects like smoke, fire, or explosions. Well-made particle effects look better than pre-rendered animation, and thus particle generators are used in all newer games and game consoles. Simple particle systems support pre-defined particles properties like lifespan, gravity or color; more sophisticated engines allow arbitrary particle behavior functions. Some particle systems also contain beam generators for creating light beams or tracer paths (screenshots from the Gamestudio user forum).

 Particle effect Beam effect

Q. What are Shaders?

A. Shaders add a new dimension to graphics rendering. They allow the transform, lighting, and rendering functionality to be modified at runtime on a vertex, pixel, and screen basis. A shader is a small script that runs on the graphics hardware for every vertex or pixel that is rendered on the screen. This gives the user a new level of flexibility over the way that pixels are rendered. Vertex and pixel shaders can be used for thousands of effects, such as creating water ripples, render cartoon style, cover models with fur, or control the lava flow of a volcano.

Shaders are supported by most newer game engines. Shader support usually includes a collection of standard shaders, as well as an editor that allows users to program their own shaders. Some engines - such as A7 - also support postprocessing shaders and render targets that allow cool effects like realtime reflection and refraction, high dynamic range rendering, deferred shading, or depth-of-field effects as in the underwater image below (screenshots from the Gamestudio user forum).

For editing shaders there are two methods. Visual shader editors allow you to put together shaders from predefined functions. Language-based shader editors allow you to write shaders in a high-level language with C syntax. A shader language offers much greater flexibility, but has the disadvantage that you normally need to write many versions of the same shader for different light and rendering modes. Some engines, such as A7, offer the best of both worlds by using a language together with predefined shader functions that automatically support all possible light and render combinations. If you want to learn the shader language, download the Shader Workshops that introduce into shader programming.

 Normalmapping shader Distance Blur shader
Q. What is a Save/Load System?

A. Such a system allows the end user to save and resume the game at any point. It automatically 'freezes' all running scripts and all objects and variables of the game and writes them into a file, possibly together with a screen shot. This is necessary for resuming game play at a later time, or leaving and entering game levels at any point. While saving the game seems an easy thing at a first glance, it's tricky in detail and has to be implemented in the very core of a game engine. Without such a system, for saving games a script had to be written which stores the state of every variable and object and the position within every script function - quite awkward and only possible for very simple games. Therefore, better commercial engines usually contain a save/load system.

Q. Can I create a MMOG with Gamestudio?

A. Engines can provide multiplayer support in several ways. The simplest way is a set of commands for sending send data via network or Internet to other PCs. More sophisticated engines provide a mechanism for automatically synchronizing levels among all PCs connected to a game. High end engines support dividing the game world into many zones that are controlled by dedicated PCs (zone servers). Zone systems are used for massive multiplayer online games (MMOG) with a theoretically unlimited number of players.

Yes, you can create a MMOG with Gamestudio, but start small. The Engine synchronizes levels automatically over the network or internet - this way any 3D game is already a multiplayer game from the beginning. A tutorial about programming a multiplayer game can be found in the lite-C workshop 25. However be aware that a MMOG involves a lot more than just a game engine. For hosting ten thousands of players you need to set up at least a portal server, a database server, and several zone servers. Creating a MMOG is definitely not a hobby project, and requires a good team, and last but not least, good funding.

Q. What is a Physics Engine?

A. A physics engine calculates movement, rotation and collision response of rigid body objects by applying realistic physics to them. It's not absolutely necessary to use a physics engine for a game - simple 'Newtonian' physics, like acceleration and deceleration, can also be programmed or scripted to a certain extent. However, the programming possibilities end when the game requires objects colliding, rolling, gliding or ricocheting in a complex way - like in a racing or in a bowling game. A physics engine uses object properties like momentum, torque or elasticity for simulating rigid body behavior. This does not only give much more realistic results, but is also much easier to handle for the developer than writing a behavior script.
Better physics engines allow the construction of complex mechanical devices (such as cars) through motors, joints, wheels, cylinders and hinges. Some also support the physics of non-rigid bodies, like fluids (screenshots from the Gamestudio user forum).

 Car physics   Fluid physics
Physics engines can be purchased from different manufacturers. Several game development systems have an integrated physics engine, but be careful: some systems have 'physics' listed in their features list, but only offer simple acceleration or collision functions.
Q. What is a Script Compiler?

A. Many 3D game systems use scripting languages for the gameplay or for controlling objects or actors. The more things move in the game, the more script instructions have to be executed per second. For this reason, a script compiler - such as lite-C - translates the language into machine code, the native language of the processor. This allows program execution at maximum speed.
Many older script languages, such a LUA, Python, Angle Script, Torquescript etc. are interpreted (an euphemism for this is 'byte code compiled'). This means that instructions are first translated into an intermediate code. The processor then interprets the code byte for byte at run time. For this reason, an interpreted language runs about 10 times slower than a compiled language. This does not matter for most applications interpreted languages were intended for, but it certainly matters for the frame rate of games.

Q. Is it true that I must learn programming for seriously creating games?

Yes - no matter what you've heard otherwise. You can build simple games, like 3D shooters, without any programming. However for realizing unique game ideas and special effects you'll need to describe them by scripts. But don't worry. Even if you've never programmed before, by working through the lite-C tutorial you'll pick it up fast.
Q. Why C instead of BASIC / LUA / PYTHON...?

For many reasons a C based language is the best suited for programming games.
C code is clearer, shorter and easier to understand than BASIC, and runs much faster than interpreted scripting languages such as LUA or PYTHON. Due to its support of C++ classes, lite-C has direct access to DirectX and Windows API functions, and thus allows programming effects that wouldn't be possible with any other scripting language.
C/C++ is used today for almost all commercial games. Even games with LUA or PYTHON scripting use C/C++ for all complex or time critical areas, such as rendering, physics and effects. Windows and graphics libraries have a C/C++ based interface, and C is also the language used for shader effects. Knowledge of C is essential for all programming jobs in the game industry. You just can't avoid it.
Q. How often is Gamestudio updated, are the updates free to previous owners, and are they downwards compatible?

Major new features are added permanently in frequent free updates. You can follow the schedule for future features on the beta and forecast links on our user forum. Upgrades to new engine generations (A5 -> A6 -> A7 -> A8) are released every couple of years and are not free. All engine updates are compatible to its predecessor, so you don't have to change your scripts when updating.
Q. How bug-free is Gamestudio, and how stable are the games produced with it?

We are pretty sure that Gamestudio is the most stable and robust game creation tool on the market, and we're going to great efforts for keeping it that way. When developing a game, you really don't want to grapple with software bugs! Our company was the first game development tools manufacturer who received the ISO 9001 certificate for his quality control system. Before a new Gamestudio update is released, it is tested for months by our team of around 100 beta testers. After that, it is uploaded to our forum for a public beta test, which normally involves over 1000 testers. Only then it becomes officially available on our download page.
Q. Is Gamestudio suited for a 13-year-old?

We don't know the minimum age of our users, but the youngest participant in our game development contests was 12, and the oldest 78. Gamestudio is frequently used in game creation courses for teenagers.
Q. What was the first commercial game made with Gamestudio?

he first commercial games were the 3D Hunting series by MacMillan. They were developed shortly after the Gamestudio/A4 release by the end of 1999. The grizzly hunting game was the first Gamestudio multiplayer game.
Q. What was the game with the most distributed copies so far?

Great Clips Racing, an advertising game with 1.5 million produced CDs, developed with Gamestudio by Digital Content. The developer wrote us: "I am doing this all with the commercial edition of your software. Compared to what I paid for it ($199) and what I am getting from it, I am very happy."

Q. What was the biggest project ever done with Gamestudio?

The biggest project so far (and probably the largest 3D world created ever) was the 3D reconstruction of the German city Quedlinburg for the World Exhibition. On a huge video screen, visitors could walk through the medieval center, and enter buildings, colonnades, towers, and cathedrals.

This ambitious and spectacular project was developed by Procon GmbH and the German Foundation for Protection of Historic Monuments (Stiftung Denkmalschutz). The Quedlinburg old town was created anew on the PC, using over 5000 photographs of historic facades and building interiors. Over 400 detailed buildings were reconstructed. The virtual city covered a walkable area of around two square miles. It was divided into multiple zones which ran on a network of PC servers.

Q. Which was the most sophisticated Gamestudio project so far?

The project with the most complex scripts we know of is 3D Driving Academy by Harro Besier. Districts of Paris, London, and Berlin were reconstructed for this project. The most sophisticated part however was the traffic AI. It controlled hundreds of cars, motorcycles, people, and traffic lights. It even verified that the driving student didn't violate the rules - and this with the traffic rules of 6 different countries!
Tthe first version of 3D Driving Academy was developed on the side by only two people in 5 months. Meanwhile version 3 is on the market and successfully distributed in many European countries. More than 250,000 copies of 3D Driving Academy were sold so far in Europe, making it the most successful Gamestudio application ever created.


oP group Germany GmbH • Birkenstr. 25-27 • 63549 Ronneburg / Germany • info (at) 3dgamestudio.net