|
This Technical FAQ is aimed at tools programmers and includes very detailed questions about the innards of Spielwerke. If anything is not covered please contact us.
|
|
Once I get the software - how do I get started?The first thing that has to be done is to tie your own data to the Spielwerke data API. As most game companies have already their own data representations in use and required by their engine, the easiest way is normally to put your existing loading/saving routines for your scene data to use. In more detail, you will usually have to connect up loading/saving routines for entity properties and for the 2d/3d view to make it possible to load scene geometry and textures to DirectX objects.
Once this is done - it will take you about a week, including familiarisation with the Spielwerke architecture - you can make use of the components. Spielwerke comes with a complete sample editor demonstrating how to tie all the different components into one usable application:
* If you are writing a scene editor from scratch, the sample editor can serve as a good starting point for your own editor.
* If you have already your own editor or other tools, and you just want to start by integrating one of the components into your own tools, the existing sample code and the extensive documentation will help you to accomplish this.
In any case, if the documentation and the samples are not sufficient to answer your questions, we are there to help you. What platforms does Spielwerke work on?Nearly all of the Spielwerke components are tool components running on the .NET framework and are written, compiled and tested in Windows.
The libraries for the Live Connection running on the game side are mostly written in native ANSI C++ and can be compiled with any sensible C++ compiler. The only platform-dependent library in use is the TCP/IP wrapper - currently we have working implementations for Windows and the X-Box, we are working on implementations for other platforms. Can I use Spielwerke with C++/C#/VB/Python/...?On the editor side Spielwerke can be used with any language supporting the .NET framework - that includes C++/CLI, C#, Visual Basic, Python .NET and any other language capable of making use of .NET components. The libraries used on the game side for the Live Connection layer are written in C++ and can only be used with C++ game code. How can the editing be any good with generic components?First, all of the generic components can be configured by the data they are editing using attributes (you can find more information on this here). This will cover most of your use cases. Secondly, for the few exceptions, you can write your own components or extend existing components. Note that the architecture of Spielwerke is specifically designed to allow flexible implementation of components unique to your game or engine. Spielwerke is a collection of building blocks and not a complete framework. The Spielwerke data API - what is that?The Spielwerke data API is the core interface between all of the Spielwerke components and the actual game data. It assumes that the data is a tree structure with one root object.
Each object in the structure can have a number of properties which in turn can hold objects or primitive values. Each of the properties and each of the object types can carry attributes to provide the tool components with additional information beyond the plain data. Furthermore, functions are available which allow the user to subscribe to changes of the data. What are attributes used for?One of the central concepts of the Spielwerke components is to keep the libraries independent from specific game code. Nevertheless, a lot of the editor components require specific information to be of any use. Good examples are:
- If a slider control is appropriate for a specific property, the editor component needs to know that this property should be displayed with a slider, along with the appropriate range attribute.
- Where an NPC has a view-cone which needs to be displayed in the 2d/3d view, the view needs to be told this fact, along with the attributes that specify its size and direction.
These attributes allow you to add new controls and visualisation to any of the data available to the editor, in most cases by just adding one line to the layer publishing your data to the data API. Hence your content coder, scripter and engine coder can easily make their new functionality usable for your designers and artists. As a tools coder you only need to handle the more complex cases. Will Spielwerke have any impact on my game code?If you do not use the Live Connection, Spielwerke will have no impact at all on your game code.
If you use the Live Connection, Spielwerke will still have no impact on your shipped game, however some code is needed on the game side to make the Live Connection work for the editor. Normally you would encapsulate this code in a separate library or game object which you only use when you want to enable the Live Connection for your team.
All libraries running on the game side are written to use only a fixed amount of time per frame to do their work and to have a minimal memory footprint. How does the licensing work?All .NET assemblies use the standard .NET licensing model in conjunction with a license server handing out floating licenses.
Each computer using one or more of those assemblies will acquire a license from the license server which will last for a couple of hours. To make sure that the license does not run out, the computer tries to renew the license in regular intervals as long as the assemblies are in use. This ensures that a failure of the license server will not result in shutting down your team.
The system is designed to be robust and invisible to your users.
|
|
|
Latest News
|
The Spielwerke data API docs can now be accessed online. |
|
The Develop Conference presentation is available for download. |
|