Tonight was my first Toronto Unreal Engine Meetup. Apparently there used to be ones in the past so this is the first one in a very long time. Kudos to organizers Ben Unsworth and George Davis for picking up the torch and really lighting up the Toronto Unreal scene.
It was really great to meet other people who use Unreal Engine (UE) and those starting to learn more about it like myself. Having an Unreal event has been long overdue here in Toronto. The meetup started with news from various studios which I thought was pretty cool to hear about because I’m not in the know. Following the useful announcements were the featured speakers from both technical and design sides.
Dev Talk – “Server Optimization in UE4: Getting to 64 Players And Beyond!” w/ Greg Semple from Torn Banner
Greg discussed his experience in optimizing an unreleased UE4 game. His talk broke down the 3 major multiplayer systems: Replication, Movement, and Animation. In the profiling phase, they recorded users were getting 225ms latency for a 64 player game. After the optimizations, they were able to reduce this by orders of magnitude. The overall strategy I got from his talk was to acknowledge redundancy and come up with better ways to normalize it to the least number of instances as possible.
For optimizing replication, an approach that yielded the most results were to employ a versioning system where actors invalidated themselves by incremented their own version number. When the server performs comparisons as to what is different between the current frame and the previous, it does not have to iterate through each actor’s list of properties unless it’s version number has changed. This resulted in an increase in replication performance from 147ms to 13.3ms
In profiling movement, they had found users moved in a straight line 50% of the time . To reduce redundant information being broadcasted from the server to the clients, the server only sends a hint of the direction and leaves it to the client to infer the next position where to move the actor in the world. If the direction changes, then an update is dispatched. This inference tactic not only worked for movement but also worked for other attributes that did not change very frequently like health or ammo. Optimizing movement increased performance from 0.8ms to 0.2ms.
These approaches resulted in huge CPU and bandwidth savings. Some other nice pieces of information that I walked away with was UE Blueprints are 10x more expensive than the corresponding C++ class. However, I have to admit Blueprints definitely have their place in making the life of a non-coder easier.
Art Talk – “Environment Building in UE4: Racing towards efficiency with Houdini” w/ Chris Grebeldinger and Damien Pernuit, R&D Developers at SideFX.
Prior to integrating into UE4, Houdini was primarily known as an industry VFX tool. Chris and Damien did a rapid walk through what the tool was about, how it worked in UE and how it automatically updated the source in Houdini.
During the walk through, they demonstrated a simple one day project where they obtained satellite data of a mountain, brought it into Houdini, applied erosion and number of procedural effects, exported into UE4, made roads and a lake, with a scattered forest. As the changes were made in UE, it also synced with the corresponding Houdini project.
For me, the big takeaway was being able to gain the ability to generate procedural art assets without having to write code. This is a huge time saver than meticulously positioning each asset by hand. Houdini is a node based editor where you can iterate over many different parameters and add noise to generate a sense of randomness one would find in nature.
I spoke to these guys after the talk and they were super cool in answering my questions of what Houdini is capable of doing. More importantly, they hooked me up with this pretty awesome book that SideFX published for GDC 2018. The first half outlines many of the different features that make Houdini a very powerful time saving Digital Content Creation tool. Not only can it do environmental art as per the talk but it can do modeling, lighting, animations, characters, physics, award-winning explosions and many other tasks. The second part of the book features a series of tutorials which I will be very happy to dig through and get familiar with Houdini in the coming weeks.
At the end of the night, I really enjoyed how there were two talks, one that focused on technical and the other on design. Whether you pledge allegiance to either of these camps, you are always wondering what is happening on the other side. I found it very informative to learn from both perspectives. I am looking forward to seeing more speakers in the coming Unreal meetups. UE is an amazing tool that spans multiple industries and within each one there exists many specialized disciplines. I’m very excited to learn the many different ways UE is being employed.