Announcing Coherent GT
![](https://coherent-labs.com/posts/wp-content/uploads/2017/02/banner_CoherentGT-750x365.png)
Our current products – Coherent UI 2.x and 1.x, already power the UI of hundreds of games and applications. They proved to be great for a wide range of user interfaces and cover many requirements and needs. Coherent Labs however is a company that pushes boundaries further, committed to R&D and to continuously improve the technology that powers our products and the applications using them. We are excited to share with you that we have been working for some time on a new technology codenamed Coherent GT.
Coherent GT, is a HTML5-based user interface rendering technology for games and real-time applications on consoles, PC and mobile. The library is 100% dedicated to user interfaces and rendering them the fastest way possible. It provides AAA-grade performance and integration for any game engine. The Coherent GT technology has no analog in its blend of HTML5 rendering, GPU acceleration and developer flexibility.
Coherent GT and Coherent UI 2.x can work side-by-side, it’s goal is not to replace, but to complement 2.x as a kind of ‘sister’ technology.
Coherent GT emphasizes on rendering performance and offers a synchronous UI scripting model. Specifically Coherent GT implements a 100% in-process architecture, that allows integrating in the core rendering of the game.
GT Architecture
Coherent GT is a fully in-process and GPU accelerated user interface library. It uses the clients renderer (OpenGL context, DirectX device etc. of the application) for its drawing. In this way the UI rendering is streamlined with the game frames. The minimal latency in Coherent UI 2.x introduced by inter-process communication is non-existent in GT.
One of the key features of the HTML5 rendering algorithm is that it always keeps track of what has to be re-rendered and draws only these “dirty” regions. We have named this version of the library GT, not unlike the Gran Turismo car models, that are faster than their serial counterparts. Coherent GT re-draws only the bare minimum of each frame, which saves a lot of calculations and resources. Another key features is Coherent GT’s support for multi-threaded rendering. It not only increases performance, but makes integration in modern multithreaded game engines trivial.
In Coherent UI GT you can have dozens of Views simultaneously without significant resource usage, as we’ve worked very hard on minimizing memory consumption. Creating new Views is easy and fast – all Views share the same JavaScript virtual machine. The overall size of the libraries is 40% less compared to Coherent UI 2.x because we have removed anything that is not strictly related to user interface (mostly web surfing functionality and support for advanced plugins).
Coherent GT comes with a powerful C++ <-> JavaScript binding with the same familiar API but is now even easier to use because it supports synchronous communication. C++ and JavaScript code can exchange data with very low overhead.
One of the major features we want to bring to developers using Coherent UI is direct DOM access from the native language. Due to Coherent GT’s in-process architecture we can now do that with virtually no overhead.
The feature will allow for new easier and more powerful ways for UI authoring and manipulation. Object properties can directly be exposed to the UI without going through JavaScript. Editors with HTML5 UIs will benefit a lot as the UI population can be made from C++, cutting a layer of indirection. Performance can also be improved as developers change often-used DOM object properties directly from C++ instead of triggering a JavaScript event.
A big benefit of the Coherent UI product family is that it’s trivial for game developers to let their users modify the interface. Entire communities enhance the UI and share their mods – we already see such examples in games using Coherent UI. The C++ access to the DOM allows applications to control more closely UI mods and thus provide a more powerful, yet secure modding environment.
Coherent UI 2.x tech and Coherent GT tech comparison
This table gives some details about the differences between the core Coherent UI 2.x technology and Coherent GT.
Feature | Coherent UI 2.x | Coherent GT |
---|---|---|
HTML5 support | Full | Full |
JavaScript support | Full | Full |
Architecture | Multi-process | In-process |
Plugin support | Full | Partial |
WebRTC support | Full | No |
Rendering | Out-of-process with shared textures | In-process with client renderer |
Scripting | Asynchronous | Synchronous |
DOM manipulation from C++ | No | Yes |
Coherent GT is already in closed Beta. If you are a Coherent Labs studio licensee and you are interested in entering our Beta program, please write to info@coherent-labs.com
Follow Stoyan on Twitter: @stoyannk