Gamestudio
From Wikipedia, the free encyclopedia
|
3D GameStudio, often known as Gamestudio or 3DGS for short, is a 3D computer game development system which allows users to create 3D games and other virtual reality applications, and publish them royalty-free. It comes with a model/terrain editor, a level editor, and a script editor and debugger. It also contains a texture and artwork collection, and a game template system that allows creating a basic shooter game or RPG without programming. For complex and custom games or other applications, you need to use either the integrated scripting language Lite-c, or an external development system such as Visual C++ or Delphi.
Contents |
[edit] History
- 1993 ACK 3D (Animation Construction Kit) by Lary Myers (Wolfenstein-like open source engine, downloadable at http://ftp.lanet.lv/ftp/mirror/x2ftp/msdos/programming/ack/00index.html)
- 1994 ACK NEXT GENERATION by Johann Christian Lotter / oP Group (improved version of ACK 3D, open source)
- 1995 ACKNEX-2 written for the German TV show X-BASE (engine comparable to Doom)
- 1995 ACKNEX-2 becomes Conitec property and is released as '3D GameStudio'
- 1997 ACKNEX-3 released (downloadable at http://server.conitec.net/down/a3.zip)
- 1999 A4 released (Windows Based Quake-like Engine)
- 2000 A5 released (Terrain Engine)
- 2003 A6 released (Physics and Shaders)
- 2007 A7 version released (new ABT renderer)
The current version is 7.07 (as of May 2008). Free updates are normally available once every 4 to 8 weeks. Gamestudio / A7 has 2 different meanings. The Gamestudio part refers to the editors and game template system, but the A7 part refers to the game engine.
[edit] Game Engine
The A7 engine contains a physics engine which can maintain multiple physic objects (eg. four wheels on a car turning, moving the car, instead of the car moving with the wheels). The engine can handle multiplayer automatically (however still requires scripting for some multiplayer features). It uses an ABT (Adaptive Binary Tree) renderer for indoor and outdoor levels, and an additional BSP renderer for indoor levels. The BSP renderer is only available in the rather expensive Pro edition. The free edition and Extra edition don't support shaders.
The engine supports high resolutions, terrain rendering, pre-rendered shadow maps and dynamic stencil shadows (single dynamic shadows for models, but not dynamic stencil shadows from multiple light sources per model like viewable in Doom 3). The 2D system (GUI system) of the A7 Engine is not very powerful (see scripting section), but replaceable using the 3d system if needed. Thanks to Lite-c, you can customise nearly everything. Shader model 3.0 support and post-processing using stages make it easy for shader programmers to chain together effects and produce any number of custom-made shader effects.
[edit] The editors
Gamestudio supplies users with an editing suite. However, software like MAX, Maya and Adobe Photoshop can also be used to create professional imagery and models for Gamestudio.
The editors allow to put together a game by creating a terrain or building environment, inserting models, and adding behaviors to them from template scripts or own scripts. If desired, users can create their own models and designs, textures, and scripts. Textures are created in external paint programs like Photoshop, Paintshop Pro, MSPaint, or the GIMP.
[edit] The world editor (WED)
The World Editor (or WED for short), is the main editor. With it, you position the various objects, assign actions to models (also known as entities) which are defined through scripts, assign textures to level geometry, and build your levels using the Binary space partitioning tree (or BSP for short) technique.
WED is the main program of Gamestudio, you can startup you game from here, attach the scripts to it etc. WED is the location where you merge all the parts of your game (programming, 3d graphics, levels).
The layout for WED is fairly simple. The main part, the central right section, is where most of the editing is done. There are three graphs and a 3D view. Through re-arrangable, the top left window is the top view, which has the X and Y coordinates. The bottom left is the side view, or the X and Z coordinates. The bottom right is the back view, or the Y and Z coordinates. The top right is the 3D view, which gives a quick preview of your level without building (compiling) it.
The graphs are split into multiples of 128 and further split into multiples of 16 to help with snapping and spacing. The graphs will automatically resize when you zoom out a bit and in steps of multiples of 8 (1024 and 128 then 8192 and 1024).
The left central section lists objects in your level, textures, and some other things. Textures must be of a power of 2 (such as 256x128, 1024x256, or 64x64) for best effects. Odd ones (like 394x213 or 723x1280) look worse and are slower at rendering.
The top is the tool bar which allows you to manipulate objects, add new objects (such as entities, sounds, and lights), build your level, run it, and several other options.
When right-clicking on something and choosing properties, you can manually enter a position, assign an action to an entity, or adjust textures on the individual sides of a block.
A disadvantage of WED is its incapability to do anything without blocks or terrain. E.g. it is really hard to build a street (that is not just a plane), because it is nearly impossible to move the blocks in the perfect position, so no "steps" or gaps are in the street (it is just not possible to get the edges of the blocks perfectly together, the snap-to-grid-feature helps only when using nearly non-rotated blocks). Triangles or a snap-block-edge-to-block-edge feature would fix that and would make it possible to make a more complex floor out of more than one single block without gaps or steps.
[edit] The model editor (MED)
Though many users prefer to use external modeling programs, the model editor (or MED for short), provides the capabilities of designing models, and sometimes used to make levels with. Models can be made of anything ranging from simple boxes, to human models or complex environments like an entire city. Models are made of meshes, a group of vertices and triangles (often called "polygons") put together to form a shape; a skeleton of bones for animation; one or several textures for the skin; and effect files (.fx) for shaders.
Like WED, MED's general layout is almost the same. It has the three graphs and the 3D view. They are arranged in the same way as WED. However, by default, MED doesn't have the grids, but it can be configured that way.
MED is somewhat like WED in the general layout, but MED also has a skin editor, which allows the model to be textured. The skin editor has a completely different layout. The texture is shown on the left side and the model is shown on the right with tool bars surrounding these. Textures are frequently created in external graphics editors and imported from a BMP, TGA, or PCX image file. MED uses UV mapping which is having vertices from the model's mesh placed on the texture to texture the model.
Model shapes are created either through using primitives (like cubes and pyramids) or by creating vertices and building faces. Models don't have to follow the restrictions that BSP has which, along with faster rendering, makes them a better choice for level design in most cases.
[edit] The script editor (SED)
The script editor, SED, is like a general plain text editor with a compiler and debugger. However, key words like "function", "alpha", variable types, or numbers get colored differently to help you, line numbers help to find syntax errors given by the engine faster, a code jumper allows jumping to different functions, actions and objects, and other functions further assist in programming and organizing projects. The script editor is used to program in Lite-c or C-Script (a scripting language somewhat similar to C used in previous generations but supported for compatibility's sake).
[edit] Scripting
[edit] C-Script
C-script was the old scripting language of Gamestudio. It is still supported, but was replaced by lite-C in A7 and is not recommended anymore for new projects.
C-Script is a simplified version of C programming. The syntax is about the same, but it does not have preprocessor directives and formatting strings. Also, unlike C, scripts can only define one type of variable, a var. The var is a 32-bit fixed point variable which uses 22 bits for the integer, 1 sign bit, and 10 bits for the decimal. This permits a maximum range of -2,097,152.9990234375 to +2,097,151.9990234375. Some entity functions use an extra bit of the variable, thus the range is half this.
C-script has some odd restrictions like the lack of arrays for panels (2D elements used for buttons, health bars, dialog boxes etc.). Entity pointer arrays are non-existent in C-Script. Fortunately there is a work-around. You can access a var-pointer (not a built-in entity pointer of the special entity data type which can be used to access all the entities properties, methods etc.), store it in a var-array and then convert it back to an entity pointer if entity access is needed. There is also a superb function that iterates through all entities (for example: world elements in the particular scene) that makes an entity pointer array needless for general iterations, but the former might be desirable if entities in the array have been flagged (Flagged entities need to be handled differently in relation to unflagged entities).
There are problems with C-Script due to the lack of support for panel arrays and sub-par performance of its 2D system. When a comparison is made to other available engines, some inadequacies stand out. For example: If you want to rotate any existing GUI buttons or allocate an immense (100+) amount of buttons, you have two possible solutions using C-Script. First, you can choose the mundane task of coding a panel definition for every allocated buttons, or you can use 3D Sprite entities to create those buttons in your GUI. However this method includes some problems, e.g. GUI elements clip or collision detect other 3D object (Walls for example) prematurely when positioned in close proximity because the engine considers GUI elements as 3D world objects in the game.
[edit] Lite-C
Lite-c is the new programming language and was introduced in 2007. It is similar to the real C language, but includes many aspects that make it easier than C. Unlike C-Script, lite-C supports the full C/C++ variable set, structs, and external classes. It offers access to the DirectX command set as well as to the Windows API.
There is also a free standalone version of Lite-C, which can be used apart from Gamestudio.
[edit] Drawbacks
C-Script did not support Classes; lite-C supports only classes from external libraries, but you can not define your own classes in lite-C. Structs are available, however.
[edit] Intense X
The Intense X plug-in is designed to assist in creation within Gamestudio without programming, integrating into the level editor. Intense X uses artificial intelligence and pathfinding engines that attempt to remove the “cookie cutter” look that often accompanies other game design packages. Intense X is open source and can be expanded and customized for users with programming experience.
[edit] The editions
GameStudio comes with 4 different editions. Each edition has different features. All editions come with free updates within an engine version (Free within A7, but not from A6.x to A7.x). They also all come with the model editor, level editor, and script editor. You can publish your game in all editions (except team editions). With creative thinking, many of the features in higher editions can be mimicked or faked with lower editions.
[edit] Lite-C edition
The free lite-C edition is the starting point. It contains the A7 engine, the model and script editor, but not the level editor.
[edit] Extra edition
The Extra edition adds the WED level editor, the shadow mapping compiler and the game template system that allows 'clicking together' games from prefabricated scripts and components. It costs 99 US dollars.
[edit] Commercial edition
The Commercial edition, at 199 US dollars, adds multiplayer networking and shaders.
[edit] Professional edition
The professional edition is for commercial game companies and includes security mechanisms and a file packer. The professional edition costs 899 US dollars.
[edit] The user forums
A method of support preferred by some is the user forums.
[edit] Online magazines
There are three main online magazines which provide new tips, tricks and tutorials. Two of them (3AM and 3PM) are paid for, while the third, Acknex User Magazine (AUM for short) is free, being created by George Dan Pirvu and published monthly.
[edit] Tutorials
In addition to the manual, there are several tutorials available ranging from basic things such as how to use WED, MED, and/or SED to more advanced things such as how to design multiplayer levels, editing shaders, or creating interactive environments.
[edit] Restrictions
A special license term restricts the use of Gamestudio to applications that do not "propagate genocide against a certain group, race, nation or religion existing in today's real world" (quote from the Gamestudio license sheet).