Jump to content

3D GameStudio

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Bumpitybump92 (talk | contribs) at 11:02, 12 July 2007 (Game Engine). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

3D Adventure by Light Productions

File:3dgs ssb.jpg
Arcade ball game by Romac Studios

File:Azrael16.jpg
3D adventure by Azrael Dark

File:Glider 14.jpg
Flight simulator by REVOgames

3D GameStudio, often known as Gamestudio or 3DGS for short, is a 3D computer game development system which allows users to create their own 3D 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 game templates that allow to create a simple shooter game or a basic RPG without programming. For complex and custom games, you need to use a special scripting language.

As the commercial edition is needed for modern games with terrain-rendering and shaders, some people might prefer open source game engines like Irrlicht which are not so easy to handle but more powerful and cheaper.

History

  • 1993 ACK 3D(Animation Construction Kit) by Larry Myers (Wolfenstein-like open source engine, downloadable at http://sunsite.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 BETA version released

The current version is 7.04.2 (as of July 2007). Free updates are normally available once every 4 to 9 months. Gamestudio / A7 has 2 different meanings. The Gamestudio part refers to the editing system, but the A7 part refers to the game engine.

Game Engine

The A6 engine contains a professional 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), but it is only available in the professional edition without any restrictions(the commercial edition provides the physics engine for just one object). The A6 engine can handle multiplayer automatically (if poorly), and can handle animations thrown at it.

The A6 Engine can handle a huge amount of different games, if you have at least the extra edition. Not being able to use terrains means not being able to create any game with a bigger environment (a GTA-like game with wide landscapes is just not possible in Binary space partitioning tree (or BSP for short) due to performance issues (and the described block-gap/steps-problem in the WED section)), which includes any 3D strategy games or flight simulators etc. The extra edition doesn't provide any shaders, so if you wanted to create a game that is approximate a modern game, you would need the commercial edition.

The graphics look nice and the engine supports high resolutions, terrain rendering (if you have at least the extra edition), BSP-rendering (which means very fast indoor rendering), pre-rendered shadow maps and simple dynamic shadows (single dynamic shadows for models, but not dynamic shadows for the whole game world like viewable in Doom 3). The simple built-in physics can handle every shooter, but if you want to do a racing game or nice physics, you will need to do a lot of scripting or to buy an edition with the included physics engine (as already mentioned, only fully available in the professional edition).

The 2D system (GUI system) of the A6 Engine is not very powerful (see scripting section), but replacable using the 3d system if needed. Thanks to the scripting language, you can customise nearly everything.

The editors

While Gamestudio does supply users with its own suite of editors, these are average at best. Software like MAX, Maya and Adobe Photoshop can 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. 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.

The world editor (WED)

File:3dgs ed w0.jpg
Screenshot from 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 the 3DGameStudio, 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 and odd ones (like 394x213 or 723x1280) are often rejected and if not rejected, 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. E.g. it is really hard to build a street (that is not just a plane) as BSP, 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.

The model editor (MED)

File:3dgs ed med.jpg
Screenshot from 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.

The script editor (SED)

File:3D GameStudio Scripts Editor.png
Screenshot from the Scripts Editor (SED)

The script editor, SED, is like a general plain text editor. However, key words like "function", "alpha", or numbers get colored differently to help you, line numbers help to find syntax errors given by the engine faster. The script editor is used to write scripts in the own scripting language called C-Script (but it is possible to use it for any different programming language although the highlight may not work properly then).

Advanced Editing

GameStudio supports a variety of plugins, like Populace, which organizes multiplayer content. Users can also program in C++ and then import it into SED.

Scripting

C-Script

C-script is a simplified version of C programming. The syntax is about the same, but it does not have the hash marks (#) as from include statements and %d and %s stuff as from the printf instruction. 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 for the signature (positive or negative)) 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 impossibility of using arrays for panels (2D elements used for buttons, health bars, dialog boxes etc.), views (views that show what's going on in your 3d world, you can have create more of them for split screen etc.) or even strings. The developers of the 3DGameStudio are currently developing a new language called "C-Lite", a public test version is available for free on gamestudio's homepage.

Entity pointer arrays don't exist, too, but there's a work-around in getting 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 to convert it back to an entity pointer if access to the entity is needed. The nice function to loop through all entities in the level makes an entity pointer array needless, though (you could just loop through all the entities and do something with the ones that have a special flag set).

As there don't exist panelarrays, the 2D system of the engine is not very effective - if you want to rotate your GUI buttons or create one hundred of them without write one hundred panel definitions in your source code, you should use 3d sprite entities to create your GUI. But this method includes some problems, e.g. clipping of the gui elements when coming near to a wall as they are part of the real 3d world. There exist special in-front-of-view-entities though, but you can't create an array of them too which makes it impossible again to have a full control over a bigger range of them (they are enough for rotatable 3d buttons which is not possible with the 2d system).

Lite-C

Lite-C is new scripting language developed by Conitec. Its similiarity to real C language is huge, but still includes many aspects making it still scripting language and easier than C.

There is also an standalone version of Lite-C, which can be used apart from 3D Game Studio, but it is part of every A7 package.

The editions

GameStudio comes with 4 different editions. Each edition costs different amounts and have different features. All editions come with free updates within an engine version (Free within A6, but not from A5.x to A6.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.

Standard edition

The standard edition is the cheapest at 49 US dollars, but lacks features. It's decent for very simple games or for those with a low budget and just starting out.

Extra edition

The extra edition adds a few more features, like the use of terrains, level of detail (LOD), and losing the watermark (a tiny, transparent A6 in the corner). It costs nearly twice that of the standard edition at 89 US dollars. Extra edition is also good for just starting out.

Commercial edition

The commercial edition has a lot more features and costs 199 US dollars. The commercial edition has more features than the extra edition including bones animation (used to make animation easier and more flexible) as well as a beam generator and shaders.

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.

The user forums

A method of support preferred by some is the user forums.

Online magazines

There are three main online magazines which provide new tips and tricks and tutorials. Two of which are paid for, 3AM and 3PM, and a third, Acknex User Magazine (AUM for short) is created by George Privu, and is published once in a month.

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 or creating interactive environments.