DEVELOPER'S BLOG

ARMA Technology Inside

In this blog entry I would like to share with you some experiences of how new technology is being developed for computer games. I hope it will help you to understand the complex and interesting work which is needed for a new feature to be used to its full benefits.



Going Satellite


When ArmA was in the middle of its development the visual technology was mostly that which was used for Operation Flashpoint:Elite. At that point we performed a comparative analysis against other games' visuals. Soon we identified a few areas in which ArmA was significantly lacking, and one of the major ones was the detail and variety of the terrain. As the old system was too limited (major limitation was that surface types were defined in 40 x 40 m grids), we decided to implement a significantly reworked one, with much greater flexibility, which enabled the creation of terrain which was huge, varied, and detailed. The system was then designed and implemented within one month. The system itself is somewhat similar to the well known MegaTexture, but it was developed independently (actually when we implemented it, the MegaTexture technology was not publicly known yet). I am not trying to claim anything special here - as even Carmack has said, the technology is very obvious.


tech-sat.jpg


All of this seems like a clear win. However, the reality was more complicated. In the first iteration, the terrain creation tools were very crude and slow. They worked well with small data, but failed or worked very slow with Sahrani, where about 32 GB of source data needs to be processed.


Even worse, when current terrain representation was created, most of the design and editing work on Sahrani was already supposed to be completed. The whole island was designed as fictional, and therefore there never existed any real-world data for it. It was not possible to build a whole new world at that stage. As a result, Sahrani does not use the technology as well as it could. As Ivan wrote in his  Landscape Almost Real, this should change with ArmA 2, which will use the next instalment of this terrain technology, but this time the whole game world design process is done with the technology already known, which leads to much better results.


Controlling Animations


blog-tech-anim.jpg


With the animation system, we were already one generation old as the system was inherited from Operation Flashpoint:Elite. It is based on a universal shader solution, with animation looks decoupled from their meaning by means of "Animation Controllers". This way animations can be combined, layered over each other, or multiple animations can be used to visualize one "state change", like the lowering of plane gears. As a result, the process was quite straightforward with such animations - the artists knew from the very beginning what they should expect and what features they are targeting, and they had tools available for creating and testing animations.


While it can be a quite interesting psychological exercise, to observe the reactions of artists when you explain to them a few weeks before the game goes gold "Look, all those gears and gadgets could be moving. Now sit and rework all vehicle models so that this works", one should really reserve such a exercise only for very special occasions.


Technology needs to mature


Implementing a technology is only a first step on a long journey. If it is to be used well, we need to:





  1. have the technology available

  2. have tools which allow the creation of content for it

  3. have people trained in using it

  4. have people experienced with it, and be fully aware of its benefits / weaknesses




As a result, it usually takes at least one cycle (generation) since the technology became available, before it is used well.


See the pattern?


While what I have described here may be quite disturbing, the fact is that there is hardly anything which can be done against it. It is quite normal that technologies are born first, and only mature later. The same was (or is) true about vertex and pixel shaders, enhanced CPU instructions sets (like SSE) or multi-core CPU architectures. I'll leave it as an exercise for the reader to complete a timeline with 1-4 stages as above for those technologies.

Published on