For the upcoming release of Media Seasons “Driving Simulator” the title Lightrock Entertainment is being reactivated as a consumer label for entertainment software.
This also means that this weblog is being moved to a sub-path of www.lightrock.biz. Stay tuned…
Category: Common / Author: Lightrocker / Date: 2008-10-27 - Monday / Comment(s): none
From Monday until Saturday I participated in the “GCDC” and the “Games Convention“.
The developer congress was very interesting and partially educational. For me the most entertainment lecture was the keynode by David Perry, who had integrated a lot of photos and useful statistics (Sony has lost more money on the Playstation 3 than they had earned with the Playstation 2 while its five year peak before), and the most valuable speech was “Driving DirectX in a parallel World” by Leigh Davies.

At Wednesday evening I went to see “Video Games Live“, which was the official opening concert for the “Games Convention” trade show this year. It was very entertaining but I had seen nearly all available recordings of former concerts on YouTube before, so that I already knew most of the show components. Unfortunately that led to a reduced amount of goosebumps.

From Thursday on I have been on the trade show and had a look on a lot of coming games: “LittleBigPlanet“, “Fallout 3“, “Mirror’s Edge“, “Far Cry 2“, “Star Wars: The Force Unleashed“, “Command & Conquer: Red Alert 3“, “Sonic Chronicles: The Dark Brotherhood” and so on. And I had many meetings with different technology vendors to inform me about new ways for our development future.
Category: Common / Author: Lightrocker / Date: 2008-08-24 - Sunday / Comment(s): none
Maybe it will be the last time the “Games Convention” will take place, definitively it will be the last time in its current shape… for now.
The German association of entertainment software industry leaders called “BIU” has decided to support the Cologne Trade Fair from next year on. The show is named “GAMESCom“, because Leipziger Messe GmbH is holding the rights for the name “Games Convention” and has keenly announced to continue to bring them into line. But without the industry leaders it will not be the same. And so it will depend on the success of the successor, if the BIU will come back to Leipzig. I doubt a clear failure, so this year will be the last for the established trade show.
In 2008 I am going to attend the “GCDC“, which is the developer conference right before the trade show. Keynode speakers are Michael Capps (Epic Games), Cevat Yerli (Crytek), David Perry (Acclaim Games) and Chris Taylor (Gas Powered Games).
Mainly I will visit programming and developing lectures like “Driving DirectX in a parallel World”, “COLLADA - An intermediate format for game developers” or “Practical use of Screen Space Ambient Occlusion”.
Unfortunately the conference is taking place from Monday, 18th until Wednesday, 20th, which is also the trade visitor day for the show. At that day you have the best chance to play all the future games because of the missing public visitors. So I have to try it between our business meetings from Thursday on: “Fallout 3“, “Star Wars: The Force Unleashed“, “Mirror’s Edge” and many more… I am coming.
Category: Common / Author: Lightrocker / Date: 2008-08-10 - Sunday / Comment(s): none
After nearly one year without any new post this blog is being revived. The last months has been very stressful for me both job-related and personal.
We (Media Seasons) developed a new version of the TigerHeart engine including core, 3d graphics, GUI, scripting and runtime functionality. Beside the scripting part everything else has been built from scratch. And also a new TV analysis tool for soccer, which based on the recent TigerHeart engine, was evolving. Major improvements compared to the old one are support for animated scenes, HD output and drawing elements.
There is also an unannounced soccer project, which will soon result in the first product.
The third project is a consumer driving simulator, which should be published this Christmas season. And last but not least there is also a real game under way. It is a casual one, programmed using XNA, and based on a popular board game.
More information will come later…
Category: TigerHeart II, History / Author: Lightrocker / Date: 2008-08-01 - Friday / Comment(s): none
The time has nearly come… again. In one week our city becomes the center of computer gaming.
It starts with a get-together of famous and common game developers at the “GCDC” from Monday, 20th to Wednesday, 22nd. Well-known speakers are Bob Bates, Julian Eggebrecht (Factor 5), Peter Molyneux (Lionhead Studios), Mark Rein (Epic Games) and Bruce Shelley (Ensemble Studios/Microsoft Game Studios) this year.
At Wednesday the exhibition “Games Convention” opens with a Trade Visitor and Media Day for professional attendees. From Thursday, 23rd to Sunday, 26th also consumers are coming to visit edutainment, video and PC games, which will be published in the next months and year. The trade fair expects over 200,000 private visitors this year.
“Media Seasons” is represented as part of the new “GamesNetwork.LE” at the “Games SupportNet Mitteldeutschland” booth in the Business Center. A short trailer from us will be running within the “Games SupportNet” showreel.
Personally we will have meetings with publishers and service providers, catch up on new games and enjoy the entertainment.
Category: Common / Author: Lightrocker / Date: 2007-08-12 - Sunday / Comment(s): none
COLLADA is an XML file schema, which allows users to exchange 3D assets between various DCC applications like “Autodesk® 3ds Max®“, “Autodesk® Maya®” or “SOFTIMAGE®|XSI™” and other interactive 3D applications. It was originally initiated by Sony Computer Entertainment® America (SCEA) to create a development format for “PlayStation® 3” and “PlayStation® Portable” projects and became a standard of The Khronos Group, which also holds the OpenGL standard.
There are a lot of problems to transfer data from one 3D application to another, because every software uses proprietary file formats, which are optimally suited to the features the application supports. Most programs also support other file formats like “Wavefront Object“, which however can only store a small set from the features list. That way it is often only possible to convert model data like polygon meshes with a single texture coordinate set and more complex data like multiple texture sets or animations get lost. Even commercial converters are not able to translate every asset completely.
So for realtime 3D or game development programmers were forced to abstain from features, which were not supported by the file formats their team was using but which became more and more important with increasing game quality. Or you had to write an exporter or importer for every 3D application, which the artists were using. Just a single im- or exporter can be a lot of work.
A solution would be a standard file format that every application can read from and write to. The first attempt was “FBX®“, which is now owned by Autodesk®. It became free to use but a long time it does not solve important issues like exchanging multi-textures between programs because the existing plug-ins were not able to do that, even though the format itself could handle it. And there is no source code to extend the plug-ins by yourself. You still had to write your own for every application.
Today “FBX®” is the most common format for asset exchange between DCC applications but not important for game programming.
In October 2006 the COLLADA format had been published. It was and is open source, easily readable XML and extendable. But there were no plug-ins and no programming kits. Because “FBX®” has got a C++ SDK it was easier to write im- and exporters for that format than for COLLADA at this time. Fortunately some month later a SDK was released and the first plug-ins for programs appeared. Today many 3D applications support the format but not all major ones like “LightWave 3D®“, which we are using. However native support is announced unofficially for the current main version.
We have already implement a COLLADA file loader into a character animation plug-in for “Viz|Artist 3.0™” called “Action Model“. And currently I am using COLLADA as standard development format for “TigerHeart” II projects.
Files are being read using the SDK and converted to “TigerHeart” objects. These can now be modified using C++ and will also be changeable in a editor later. After that object data can be stored back without destroying original COLLADA data that was not converted or modified. In doing so multiple applications can access a COLLADA file, modifying its data without loosing something that was useless for a program. A sound editor may use some 3D data for setting effects but it cannot utilize textures. Although it does not destroy those texture objects by overwriting the original file at export time, because only new and modified data is updated to the COLLADA file database. That is no standard behavior for the COLLADA runtime but can be easily integrated using the SDK.
COLLADA has got also disadvantages. Because the format is very flexible, diverse programs can store their data differently. The programmer has to adapt his software for every utilized application. And even then an update of an application or its plug-in can force him to change his code. But this is being done lots of times faster than to write an im-/exporter for every proprietary file format.
Many common file formats have got the second downside. They are very slow to load and save because much data has to be interpreted multiple times. It does not really matter at editing time but loading time is essential for interactive programs and games. Programmers are able to accelerate reading texture file content using an own format and they also are able to do it with all other data. Generally speaking it is important to convert as few as possible and often to minimize bandwidth.
COLLADA files and other development assets could be converted before they are regularly used by the project or when they are finalized. That depends on the time you are saving during the development. In any case they should be converted before the product is delivered to the customer.
I believe that COLLADA will become the standard game development format one day, if no other competitive format occurs. Currently it is already utilized by some big names like Sony®, Google™, “3ds Max®”, “Maya®”, “Unreal® Engine” or “XSI™”.
Category: Content Creation, Programming, Technology / Author: Lightrocker / Date: 2007-07-27 - Friday / Comment(s): none
I am currently implementing some classes for the new “TigerHeart” graphics engine using the OpenGL pipeline. And it is the right way because I am a beginner in OpenGL, which is a little bit more different from Direct3D than I thought. Since I am a professional in programming with Direct3D I can judge how to design interfaces, classes and their interaction so they can be used for both APIs.
A good example is shader programming: In Direct3D vertex and pixel shaders can be applied roughly independent from another. But using OpenGL you have to create a program object, to which multiple shaders can be attached. Afterwards this “program” must be linked and applied to utilize the shaders.

You can see my current progression state at both images above. It is a cube model with shared, rounded vertex normals, what is not a reasonable assignment but a good test. The first one shows the common per vertex diffuse and specular lighting. It has got a poor quality because both lighting colors have to be linearly interpolated between the eight vertices.
On the second image you can see the same calculations but relocated to the pixel shader. There is no need for a normal map unless you want to add details to the object without appending vertices. The quality seams to be nearly perfect.
The mesh is rendered using vertex buffer objects (VBO), which is the fastest way to draw complex models using OpenGL, and shaders are compiled with GLSL. This language is comparable to Microsoft’s HLSL but have got some design differences. For example the compiler is integrated into the graphics driver and there is no possibility to specify shader model targets.
Category: Programming, TigerHeart II, Technology / Author: Lightrocker / Date: 2007-07-04 - Wednesday / Comment(s): none
I wrote that the second version of “TigerHeart” should be able to use OpenGL and Direct3D for rendering. But why do we need to support both APIs today? It is a lot of work, which has to be done twice.
Currently some hardware vendors haven’t got good OpenGL drivers. So you can get problems to run your software on some graphics cards. But as a game developer you need the widest possible hardware range, which is able to execute your software without any difficulty. For this reason it is a good decision to choose Direct3D because its behavior is obviously more matchable. Moreover you get better support for older hardware since a lot of features can be simulated by the CPU when the GPU does not support it and HLSL shaders can be compiled to Shader Model 1, what is not possible with GLSL.
Media Seasons is not only developing games but also graphics software for television. Therefore a requirement is to output the rendered graphics on the SDI channels of a “NVIDIA Quadro FX” card. We use the SDI SDK to accomplish this. Unfortunately that software development kit only supports OpenGL, what is comparable to the Quadro drivers, which are optimized for OpenGL because it is still the standard API for professional products. So we are forced to implement a rendering path for it. But we do not have to make our TV software compatible for further graphics cards because in this market segment the developer is able to exactly specify the required hardware.
Category: TigerHeart II, Technology / Author: Lightrocker / Date: 2007-06-06 - Wednesday / Comment(s): none
The 3D engine is the largest and most addressed extension of the first “TigerHeart” version. Because it is possible to use it not only for three-dimensional presentation but also for hardware-accelerated flat, 2D drawing the notation will be changed to the more indicative term ‘graphics engine’.
Following characteristics should be achieved:
- API base: It must be able to utilize Direct3D and OpenGL for hardware-accelerated display.
- Standardization: The objects should be accessible and modifiable independently from the graphics API, which is currently active. So a scene, which is created with DirectX, can be rendered with OpenGL and vice versa and tools and helper functions have to be created only once. Anyway the engine gains specialized interfaces, methods and attributes for particular API functionalities and performance issues.
- Object types: There are two major kinds of objects. Displayable ones (like graph nodes and polygon meshes) are unilaterally interdependent, transformable and have got the ability to be rendered and attributes like bounding volumes and a position vector. They use states (like shaders and textures), which are the second kind and on a par, for rendering. Besides octrees will help for culling and collision detection, fonts are being used by text objects to show letters, animations to transform nodes by presets, cameras for view manipulation and light sources for illumination.
- Multi-pass: Displayable objects should have the ability to be rendered multiple times using different sets of states. This is important for generating shadows, effects and complex lighting.
- Streaming: Rendering operations are stored into buffers, which can be sorted to reduce state changes and to meet other, hardware-dependent conditions for performance increases. These stream buffers can be processed in another thread than the generating one. That way the scenery is being modifiable for the next frame while the previous one is still being drawn.
Category: TigerHeart II, Technology / Author: Lightrocker / Date: 2007-05-29 - Tuesday / Comment(s): none
The Extensible Markup Language (XML) can be used to store any given data. I am using it to design functions, interfaces, classes and other types for the second TigerHeart engine.
Besides pure XML files, which store names, parameters, result types, derivations and so on, there are also a schema (XSD) and transformation files (XSLT).
The first one defines basic types and valid elements, attributes, groups and sequences for the XML files. So their syntax is checked for mistakes. Both kind of files are free from programming language specifications like class or virtual for C++.
For that XSLT is available to assemble files that are usable for coding. The greatest benefit of the whole system is the convertibility of the XML files into various languages and even multiple files of the same language (e.g. .h[pp] and .c[pp] for C). It is also possible to automatically generate bindings of functions and variables for scripting languages and to build a documentation in HTML or whatever you want. For TigerHeart II C++ headers, source code files and Lua bindings are formed. Maybe there will be a time when XSLTs for C# are added but they are not currently planned.

After the transformations I can add content to the created source code. If I have to change a type name or a definition later, then I only need to do it once in an XML file and not at every appearance in the code.
Category: TigerHeart II, Technology / Author: Lightrocker / Date: 2007-05-17 - Thursday / Comment(s): none