August 29, 2014

The Codedrop Song: Unreal Engine in 2001

By Daniel Vogel

A recent discussion about our build and release process reminded me of our more humble beginnings when it comes to delivering updates to developers.

During Unreal Engine 2's early days in 2001 we had less than ten programmers at Epic, used Visual Source Safe, and I was the official build machine, compiling binaries locally on my machine and putting them on a shared network drive.

We distributed the engine to developers via zip files called codedrops. While clunky, the main issue was the infrequent intervals due to us making the mistake of tying releases to features as this meant if a promised feature slipped, the entire release and all other features slipped as well. The bigger the feature, the longer the time between releases, and the higher the expectations on it.

One such slip was related to Unreal Engine 2's material system, which was a radical departure from existing material systems at the time and our first foray into providing artists with a lot of control in this area. Our 2002 GDC demo is a good example of what was possible to achieve over twelve years ago via this material system. You can see for yourself here -- and maybe also check out what Unreal Engine 4 developer koola has been able to accomplish in the 2014 version here

This innovation came at a price though as the release of the material system slipped by several months, which meant that developers were in the unfortunate position of having to duplicate other features we were also developing, but couldn't provide yet as the material system wasn't ready.

This culminated in Jean-Francois Dube and Emilie Gauthier @ Ubisoft creating a song to tease us about our slip. You can listen to it here. To me, this serves as a constant reminder of a situation we don't want to see ourselves in ever again.

It was a big learning experience for us, and one of the main reasons why around ten years ago we changed our approach to providing live source access to developers for Unreal Engine 3, and monthly stable releases dubbed QA builds (builds having been vetted and blessed by our engine QA department). We extended the monthly release cadence to the Unreal Development Kit as well upon its release and stuck with it during the Unreal Engine 3 lifecycle.

Fast forward to 2014 and we now have around 150 engineers employed at Epic Games. We have massive build and continuous integration farms, various branches, etc., but one thing that hasn't changed is our desire to provide our customers with live access to what we are doing and ever more transparency into our release and testing processes and status.

We strongly believe that live access combined with frequent (every 6-8 weeks) quality assurance approved releases is a critical component to guarantee a great customer experience.