2010-07-26
We are hiring
Our company is growing so we would be happy to see new team members: developers, PM, sales manager and system administrator. Moreover, the good news is our convenient office in Tomsk is now doubled in size!
2010-05-25
Heaven 2.1, Tropics 1.3, Sanctuary 2.3
Released updated versions of Unigine benchmarks with support of OpenGL 4.0 (including hardware tessellation) and stereo 3D technology (including 3D Vision): Heaven 2.1, Tropics 1.3 and Sanctuary 2.3.
2010-05-04
5 years since the first commercial release of Unigine
The first commercial version of Unigine engine was released five years ago, on May 4, 2005. With the release number 0.3, it had codebase size of approximately 10% relative to the current one. At that time, there used to be 5 people on board.
2010-03-23
Unigine Heaven Benchmark 2.0
Updated version of Unigine Heaven DirectX 11 benchmark is now publicly available. Main changes are: added more content, improved engine, introduced "moderate" and "extreme" tessellation modes, added Linux version (32/64 bit).
2010-02-22
Unigine booth at GDC SF 2010
We gladly invite you to come visit our booth #1344 at Game Developers Conference, San Francisco, 2010. There you will be presented the recent version of Unigine Engine and the Heaven Benchmark 2.0 along with a lot of featured Unigine-based content. Feel free to contact us for an appointment.

Development Log

You can subscribe to our RSS feed.
There is also a translated LiveJournal account: unigine_devlog.
2008-06-11 Link

Bunch of useful fixes

Recent changes:

  • New 'world' samples: occluders, sectors and portals, WorldTrigger usage.
  • Plugins for 3dsMax 2009.
  • Xml module doesn't generate   anymore due to standart compliance.
  • 'quit' callback for the editor (quit from the world).
  • Backup of .world file before saving new one.
  • Brush rotation in TerrainEditor.
  • Excluding support in Archiver.
  • Visualization of ambient occlusion.
  • Built-in packed resources instead of XPM files.
  • New 'Resource' tool for packing of resources to be built-in into the binary.
  • TTF fonts in ResourceEditor.
  • 3x3 PCF for shadows in lightmap generator.
  • More optimal ambient occlusion for open spaces owing to branching in shaders.
  • Transformations of texture coordinates in ResourceEditor.
  • isNode(), isBody(), isJoint() functions in UnigineScript for pointer type detection.
  • call_stack() and stack_dump() functions in UnigineScript for easy debugging.

There are also tons of changes in UnigineEditor in our development branch, but they require some time for stabilization, so they will be introduced in next updates.

PS: Unigine team is hiring: see vacancies list. We would be happy to find more great developers, may be it is your chance to join us!

2008-05-15 Link

Don't worry, we are still here

There were no updates for a while because we are messing up with our new office, sorry (at the moment almost everything is done, we are ready to move in). Plus we were at Russian Game Developers Conference (KRI), it also took some time. Anyway, the development goes on even within these circumstances, so don't panic.

By the way, we met some of our customers at KRI (including Afterfall developers), we hope those meetings being fruitful.

Current update provides the following:

  • New sound module is almost ready (except for reverberations).
  • Added sound usage samples (data/samples/sounds).
  • Improved ControlsApp: keys and buttons can be assigned from scripts.
  • Optimized mesh intersections.
  • Lightmap generator for all types of lights in UnigineEditor.
  • User-adjustable containers inside "Materials" and "Nodes" windows.
  • Great speedup of ResourceEditor / NormalMapper (now it uses dedicated tracing code).
  • Less memory consumption by NormalMapper, it's more stable in Windows now.
  • color_scale instead of alpha_scale in shaders.
  • New WidgetVPaned and WidgetHPaned widgets, which can be adjusted in size by a user.
  • Access to a swizzled member of arrays is allowed from user classes now: foo.array.size().
  • Access to methods and members of a class is allowed if the object is a member of another class now: foo.file.close().
  • isCallbackEnabled() in UnigineScript.
  • copy, swap and compare functions for arrays in UnigineScript.
  • Case-insensitive mode for filesystem (data_icase console variable).
  • 'hidden' flag for widgets (it controls visibility).
  • New WorldTrigger object with callbacks (see data/samples/worlds/triggers_00.cpp).

We are going to get back to normal development pace in 2 weeks.

2008-03-31 Link

New sound system is on the way

Recent changes:

  • New cross-API sound framework.
  • Wrappers for OpenAL/FMOD/XAudio2.
  • New WorldSource and AmbientSource classes for sound in the framework.
  • Rollback to alpha7 version of Theora, beta seems to be too buggy.
  • Improvements of C++ API, now it's possible to work with UnigineScript's arrays.
  • Image framework now allows rotation of an image, it's very useful for cubemaps.
  • Fixed lack of HSV accuracy for image dialog.
  • Additional render optimizations (less CPU cache thrashing).
  • Updated stereo launchers.
  • Support of 3DNow! technology in the framework.
  • Interpreter optimizations (Variable is more compact now, vec/mat/quat parameters are passed more optimal also).
  • RichText now can be expanded.
  • ObjectGui and ObjectGuiMesh cannot load UI files anymore, they simply provide an interface for GUI object.
  • Separators in WidgetMenuBox.
  • Open menu can be hidden by a click of any mouse button.
  • XML parser now skips EF BB BF sequence at the beginning of the file in order to be more compliant with Unicode standarts.
  • Fixed old UnigineEditor bug with moving nodes up/down in the list.
  • Node instancing framework in UnigineEditor.
  • Updated MPEG video grabber for new ffmpeg.
  • C++ API documentation update.

It seems that the new sound system is close to be completed. Unfortunatelly there are a lot of bugs in OpenAL, some of them are really stupid ones. Another headache is different reverberation models in different APIs, there can hardly be API-independent settings.

2008-03-11 Link

DirectX 10.1 support

What's new:

  • DirectX 10.1 support (d3d10_render_use_feature_level_1 console variable, it's enabled by default; means that comparison sampling from texture arrays for cube and world lights is used).
  • Support of MS Visual C++ 2008 Express Edition.
  • New object for dynamic sky: ObjectSky (2 surfaces, 2 cubemaps with RGBE support, 2 layers of clouds).
  • Shadowing by clouds of ObjectSky.
  • Modulation of dynamic irradiance environment maps by ambient map.
  • Geometry duplication via geometry shaders for rendering of cube and world shadow maps (it works really fast on ATI).
  • Workaround for shadow biases (they are broken in ATI Direct3D10 drivers at the moment, the bug is submitted).
  • R600-specific optimizations.
  • Support of 16f and 32f image formats, loading of *.HDR files.
  • Fixed ATI2 normals.
  • Fair light scattering for reflections.
  • SpriteVideo YUV output with shader-based conversion into RGB for ObjectGui and ObjectGuiMesh (it reduces CPU load while playing multiple videos).
  • Dynamic access to textures by means of UnigineScript (e.g. for generation of procedural textures).
  • KEY_PRESSED callbacks for WidgetEditLine and WidgetEditText.
  • Saving of screenshots in different file formats (video_extension console variable, TGA is used by default).
  • Fixed Alt-Tab issue with fullscreen mode on Direct3D9.
  • Documentation updates: "Content Creation / Animation" and "Programming / Typical Architecture of a Unigine-Based Application" articles.

There is a funny thing with ATI2 components swapping on different cards and APIs (if you don't take it into account, there are artifacts):

R500 R600 NV40 NV50
OpenGL YX (3dc) YX (3dc) XY (la) XY (latc)
Direct3D9 YX YX YX YX
Direct3D10 XY XY

We hope our render to be completed for several months, it is already on the most bleeding edge. Sound module and physics improvements are the following.

2008-02-21 Link

Joysticks support and some networking improvements

Recent changes:

  • New Phong-rim material is now a default one for meshes.
  • Full support of Xbox 360 gamepad.
  • Support of standart PC joysticks and wheels (no force feedback is available yet).
  • Fixed clip planes for all APIs (no more problems with 2D reflections).
  • Optimization of shadow map memory usage.
  • GUI refactoring, all widget classes now have "Widget" prefix, like WidgetVBox (use deprecate.h for backward compatibility).
  • Visual limits of suspension travel in JointWheel.
  • New WidgetMenuBox and WidgetMenuBar widgets.
  • Mask buffers for GUI rendering (WidgetSprite).
  • Fixed reading of empty string arrays from XML.
  • Dedicated thread for networking in the engine.
  • New Packet class for parallel data transfer in the thread.
  • Added a lot of articles in "Content Creation / Materials" section of the documentation.

Here is a screenshot from the small racing demo, which will be included into Unigine SDK soon (there are both types of gear box available, physics interaction of objects, and some GUI elements, including minimap and speedometer):
Racing demo