CRYENGINE Developers Discuss Schematyc, Omni Directional Cameras, and Open Color IO
Friday, November 10, 2017 —
In a recent roundtable discussion, CRYENGINE developers talked about upcoming updates and continuing engine development.
Senior Software Engineer Dominique Marder, Senior Cinematic Artist Joe Garth, and Lead Software Designer Stephen Clement sat down together to discuss the latest in Schematyc, Omni Directional Cameras, Open Color IO, and more. Read the full interview below.
Dominique: As Senior Software Engineer on CRYENGINE, I’m responsible for the development of our visual scripting experience.
Joe: I work on cinematics but I’m also guiding CRYENGINE R&D and creating new content like tutorials, webinars, and presentations.
Stephen: I’m working with Joe and the team on bringing new and innovative features to CRYENGINE. I’m super-excited to share what we’ve been working on!
What’s your main focus at the moment?
Dominique: Currently, my focus is on Schematyc and the development of our visual scripting experience, including FlowGraph and other node graph based technologies. In the long run, we want to unify this for coders as well as designers. Imagine our node graphs as the communication layer between different systems. Artists and designers can glue them together to build whatever they want. But programmers will benefit too, because they won’t need to implement the same node in different systems anymore.
Stephen: I'm currently working on bringing support for OpenColorIO to CRYENGINE. OpenColorIO is an open-source library which aims to simplify color grading support for the film industry. Accompanying that is full support for The Academy Color Encoding System (ACES for short), which is a set of color spaces and transformations provided by the Academy of Motion Picture Arts and Sciences. This support, naturally, will come with a set of tools designed to take full advantage of the power that these technologies provide. These features have been available internally for a few years now, but we will be making these features available for the first time for public use in games.
Joe: I'm working on various demonstration levels that showcase the engine. Each will feature a natural environment, and serve to showcase the power of CRYENGINE's graphics capabilities. It’s not just for show though. These levels are really useful to us internally. As we build out these new scenes we find areas where the engine can be improved. New features and workflows are usually found when creating these small demos, which give us more ideas going forward.
For example, while creating some snow scenes we generated the idea of using a large decal for snow and giving users more control over how it appears on objects. I love finding new and sometimes unexpected ways to do things, it makes the job really fun! Our new omnidirectional camera feature was originally used in a Warface Trailer, but once we saw the potential to make 360 panoramic shots we brought it over to CRYENGINE. You can check out the very first CRYENGINE omnidirectional test here.
Schematyc has turned out to be one of our most popular beta features. Did you expect that to happen?
Dominique: To be honest, yes! In my previous company we used node graph based content creation for a variety of different asset types. This technology enables designers and artists to build whatever they want and their creativity benefits massively from this freedom. They loved it! Also producers love it because feature iteration is much faster, which allows cost reductions or delivering larger and more interactive games. Those benefits are universal, whether you’re working on a AAA game or a home project. This technology really is for everyone, and means you no longer need a programming background to create something cool.
There’s been a lot of buzz and feedback about Schematyc – how does that help you go about developing the technology?
Dominique: We’ve really benefitted from community feedback, and we invite everyone to get in touch to help shape the development of this tool. For example, we checked out some videos on Youtube in which community members explain and test what can be done with Schematyc. This is great for us – it shows us how people are using Schematyc without any of our direction, and helps inform us about what we’re doing well and where we can improve and help. Sometimes community members find ways to build things which we never thought of and it changes the way we think about a problem. I’d like to thank everyone who does these videos, or gets in touch in any way with their feedback and comments – it’s really appreciated and genuinely and directly helps us make Schematyc better.
What’s coming next for Schematyc?
Dominique: The new editor will deliver improved usability for both beginners and experts. We will also introduce a new asset type called Schematyc Object. It’s basically a variable with functions that can be called. We are also working on better debugging mechanics.
Schematyc is being used internally on HUNT and we’ve learned a lot about the bottlenecks in our current implementation during this process. We are going to improve performance in the editor as well as in-game. Schematyc will be built based on a unified node graph core framework. This will allow developers to use their nodes in different systems, which I think will be really great.
What does that mean for everybody who tested Schematyc in its current state?
Dominique: Because of our ambition for Schematyc, we do need to rewrite parts of it. That includes internals and also the API for a deeper integration of Schematyc into the engine. And we’ll be bringing a redesigned editor. However, the experimental implementation of Schematyc will remain as part of CRYENGINE for a while, even after release of the new Schematyc. But it's planned that the beta version will be wrapped up and replaced by our final vision of Schematyc at some point.
Regarding migration, it’s our goal to keep it as simple as possible, but it will definitely require some work. I hope people understand that I don’t want to promise too much on that right now.
Turning to the omnidirectional camera, how is this going to make a difference for people’s projects?
Joe: The omnidirectional camera is just really cool tech. You can use it to render both 360 degree screenshots and movies. You can check out an example in this Warface trailer you can see at the bottom of this paragraph. Once you have a 360 Youtube video like this, you can view it on a mobile or tablet. You can even buy a VR headset for your phone and watch it with that. It's a nice way to stand out on Youtube, and it opens up lots of creative possibilities when it comes to staging your video. You can almost treat it like a halfway house between video and VR. It’s cool to use visual and audio cues to grab the viewer’s attention and craft an experience where they have the possibility to look wherever they want. You can even hide some nice Easter eggs in there if you’re sneaky!
When will this feature be rolling out?
Joe: The feature will be available in 5.5, which fingers crossed will be just around the corner! I think it will be interesting to see what developers can do with it. I'd love to see game trailers being rendered in 360 degrees. Or, for example, environment flythroughs. We did some of those for our VR game The Climb.
Stephen – can you tell us a bit more about your OpenColorIO project?
Stephen: Put simply, this is a huge overhaul of the color process for CRYENGINE. Currently, developers have to load up a color chart image in Photoshop, apply color operations to both the image and the chart, and then save that chart using a specific image profile. It’s quite a labor intensive process, and if we’re honest, a bit tedious. The results are also stored and applied in 8 bit (after tonemapping), limiting their visual quality. This is more or less how all engines handle complex color grading.
With OpenColorIO, developers will be able to perform color grading in-engine with the benefits of professional color grading software, complete with layered color grades and qualifiers, all in high-precision color before tonemapping. While the toolset isn't as complete as a fully dedicated color grading software, these tools will still allow for much more artistic control over the final image without having to move to an external application. Grading will also be scriptable to some degree, allowing developers to use color as part of their game mechanics in ways that may not have been possible before. Choosing various display outputs, such as Rec709 or Rec2020, allows things like selective de-saturation. That means, for instance, the red-on-grey treatments used in movies such as Sin City will now be available within a few clicks.
Sweet! When will people be able to get their hands on this feature?
[Stephen: It’s still in heavy, iterative development, so it's very much a case of “when it's done.” But hopefully it won't be too long before we can release it to the community. This new color pipeline will not immediately replace the existing color grading features, so existing projects that make use of the old system will remain unchanged. Moving to the new color pipeline is a simple cvar change away. When it happens, I do recommend that anyone making the switch performs a pass over the final look of their game, since tonemapping no longer plays a large role in contrast compared to the usual S-Curve/Filmic tonemapper approach. Tonemapping under the new pipeline is achieved via ACES and functions only as a mapping from HDR linear color to the selected display output color space.
--- Designs are subject to change - WIP development screenshots ---
CRYENGINE’s latest updates will put more power than ever into the hands of CRYENGINE developers, and the team is committed to taking those improvements even further with every subsequent release. Ongoing development of the engine will continue to be shaped by the community, and feedback can be submitted via Facebook, Twitter, and the official CRYENGINE forum. More information on CRYENGINE membership packages and benefits are available on the CRYENGINE website at https://www.cryengine.com/.