Subject: General Tech | September 1, 2015 - 04:24 PM | Scott Michaud
Tagged: unreal engine 4, unreal engine, ue4.9, ue4, epic games, dx12
For an engine that was released in late-March, 2014, Epic has been updating it frequently. Unreal Engine 4.9 is, as the number suggests, the tenth release (including 4.0) in just 17 months, which is less than two months per release on average. Each release is fairly sizable, too. This one has about 232 pages of release notes, plus a page and a half of credits, and includes changes for basically every system that I can think of.
The two most interesting features, for me, are Area Shadows and Full Scene Particle Collision.
Area Shadows simulates lights that are physically big and relatively close. At the edges of a shadow, the object that casts the shadow are blocking part of the light. Wherever that shadow falls will be partially lit by the fraction of the light that can see it. As that shadow position gets further back from the shadow caster, it gets larger.
On paper, you can calculate this by drawing rays from either edge of each shadow-casting light to either edge of each shadow-casting object, continued to the objects that receive the shadows. If both sides of the light can see the receiver? No shadows. If both sides of the light cannot see the receiver? That light is blocked, which is a shadow. If some percent of a uniform light can see the receiver, then it will be shadowed by 100% minus that percentage. This is costly to do, unless neither the light nor any of the affected objects move. In that case, you can just store the result, which is how “static lighting” works.
Another interesting feature is Full Scene Particle Collision with Distance Fields. While GPU-computed particles, which is required for extremely high particle counts, collide already, distance fields allow them to collide with objects off screen. Since the user will likely be able to move the camera, this will allow for longer simulations as the user cannot cause it to glitch out by, well, playing the game. It requires SM 5.0 though, which limits it to higher end GPUs.
This is also the first release to support DirectX 12. That said, when I used a preview build, I noticed a net-negative performance with my 9000 draw call (which is a lot) map on my GeForce GTX 670. Epic calls it “experimental” for a reason, and I expect that a lot of work must be done to deliver tasks from an existing engine to the new, queue-based system. I will try it again just in case something changed from the preview builds. I mean, I know something did -- it had a different command line parameter before.
UPDATE (Sept 1st, 10pm ET): An interesting question was raised in the comments that we feel could be a good aside for the news post.
Anonymous asked: I don't have any experience with game engines. I am curious as to how much of a change there is for the game developer with the switch from DX11 to DX12. It seems like the engine would hide the underlying graphics APIs. If you are using one of these engines, do you actually have to work directly with DX, OpenGL, or whatever the game engine is based on? With moving to DX12 or Vulcan, how much is this going to change the actual game engine API?
Modern, cross-platform game engines are basically an API and a set of tools atop it.
For instance, I could want the current time in seconds to a very high precision. As an engine developer, I would make a function -- let's call it "GetTimeSeconds()". If the engine is running on Windows, this would likely be ((PerformanceCounter - Initial) / PerformanceFrequency) where PerformanceCounter is grabbed from QueryPerformanceCounter() and PerformanceFrequency is grabbed from QueryPerformanceFrequency(). If the engine is running on Web standards, this would be window.performance.now() * 1000, because it is provided in milliseconds.
Regardless of where GetTimeSeconds() pulls its data from, the engine's tools and the rest of its API would use GetTimeSeconds() -- unless the developer is low on performance or development time and made a block of platform-dependent junk in the middle of everything else.
The same is true for rendering. The engines should abstract all the graphics API stuff unless you need to do something specific. There is usually even a translation for the shader code, be it an intermediate language (or visual/flowchart representation) that's transpiled into HLSL and GLSL, or written in HLSL and transpiled into GLSL (eventually SPIR-V?).
One issue is that DX12 and Vulkan are very different from DX11 and OpenGL. Fundamentally. The latter says "here's the GPU, bind all the attributes you need and call draw" while the former says "make little command messages and put it in the appropriate pipe".
Now, for people who license an engine like Unity and Unreal, they probably won't need to touch that stuff. They'll just make objects and place them in the level using the engine developer's tools, and occasionally call various parts of the engine API that they need.
Devs with a larger budget might want to dive in and tweak stuff themselves, though.
Unreal Engine 4.9 is now available. It is free to use until your revenue falls under royalty clauses.
Subject: General Tech, Graphics Cards, Shows and Expos | March 4, 2015 - 05:52 PM | Scott Michaud
Tagged: GDC, gdc 15, nvidia, epic games, ue4, unreal engine 4, PhysX, apex
NVIDIA and Epic Games have just announced that Unreal Engine 4 developers can view and modify the source of PhysX. This also includes the source for APEX, which is NVIDIA's cloth and destruction library. It does not include any of the other libraries that are under the GameWorks banner, but Unreal Engine 4 does not use them anyway.
This might even mean that good developers can write their own support for third-party platforms, like OpenCL. That would probably be a painful process, but it should be possible now. Of course, that support would only extend to their personal title, and anyone who they share their branch with.
If you are having trouble finding it, you will need to switch to a branch that has been updated to PhysX 3.3.3 with source, which is currently just “Master”. “Promoted” and earlier seem to be back at PhysX 3.3.2, which is still binary-only. It will probably take a few months to trickle down to an official release. If you are still unable to find it, even though you are on the “Master” branch, the path to NVIDIA's source code is: “Unreal Engine/Engine/Source/ThirdParty/PhysX/”. From there you can check out the various subdirectories for PhysX and APEX.
NVIDIA will be monitoring pull requests sent to that area of Unreal Engine. Enhancements might make it back upstream to PhysX proper, which would then be included in future versions of Unreal Engine and anywhere else that PhysX is used.
In other news, Unreal Engine 4 is now free of its subscription. The only time Epic will ask for money is when you ship a game and royalties are due. This is currently 5% of gross revenue, with the first $3000 (per product, per calendar quarter) exempt. This means that you can make legitimately free (no price, no ads, no subscription, no microtransactions, no Skylander figurines, etc.) game in UE4 for free now!
Subject: General Tech | February 21, 2015 - 07:00 AM | Scott Michaud
Tagged: unreal engine 4, unreal engine, epic games
On Thursday, Tim Sweeney joined the Unreal Engine 4 Twitch Broadcast to announce “Unreal Dev Grants”. In short, Epic Games have set aside 5 million dollars to pass out in increments of five thousand ($5000 USD) to fifty thousand dollars ($50,000 USD), with no strings attached. If you are doing something cool in, with, or involving Unreal Engine 4, you are eligible and can use the money in any way. You keep all your “intellectual property” and equity, and you do not even have any accountability requirements.
It's free money that you can apply for, or they will even approach you with if they see you doing something awesome (you can even nominate other people's projects). The only “catch” is that your work needs to be relevant to Unreal Engine. From there, it could be anything from congratulating an awesome pull request for the engine on GitHub, to giving an indie (or even AAA) game a little bit of a financial boost. Tim Sweeney was telling stories about mowing lawns for the $3000 it took for him to launch ZZT. He mowed lawns so you don't have to.
For more information, or to nominate yourself or someone else, check out their website.
Subject: General Tech | October 19, 2014 - 11:20 PM | Scott Michaud
Tagged: unreal engine 4, epic games
Epic Games released Unreal Engine 4.5 last Tuesday, and it is one of their largest releases since launch. While most point-releases occur on a four-to-six week schedule, this one took about nine weeks.
The headlining feature from the press release is Ray Traced Distance Field Soft Shadows. In the real world, lights have an actual size. A light bulb is not an infinitesimal point, it fills up your hand when you grab it (when it is off and cooled to roughly room temperature, of course). If a surface can see a light, it is lit by it. If the surface cannot see the light, it is not lit by it, which looks like it is covered in shadow. If a light is big enough that part of it lights a part of a surface, but part of it is blocked, you get "soft shadows".
Ray Traced Distance Field Soft Shadows is a dynamic effect, which means that it can update over time. This is very useful if, for instance, the object that is casting a shadow gets blown up by a rocket launcher or, less entertainingly, the sun sets. The effect is also particularly quick, with scenes rendering in just a couple of milliseconds (you get about 16ms to hit 60 FPS). This is faster than cascaded shadow maps (a method to generate shadows that is optimized for shadows near the camera) in benchmarks listed at Epic's documentation.
Unreal Engine 4.5 has also updated Subsurface Scattering. I am not exactly sure what is different, because Unreal Engine 4 had SSS for quite some time now, but they changed something. This technique is useful to create realistic skin, but is also very useful for oceans, ice, and wax.
Although Ray Traced Distance Field Soft Shadows and Screen-Space Subsurface Scattering are the most interesting feature to write about, I would consider C++ Hot Reload to be the most important feature of this version. To explain it, I will need to first describe how Unreal Engine 4 is designed. When you subscribe, you are given source code access to the engine on GitHub; alternatively, you can download the Unreal Engine Launcher, which allows you to manage canonical builds of Unreal Engine. When a version of the engine is run, it will open a project in Unreal Editor. These projects could be programmed either in C++ or Epic's flowchart-based scripting system, "Blueprints". Complete games could be made in Blueprints, and developers are encouraged to do so, but they are often used for simple objects (lights and elevators), modifications of complex objects, and rapid prototyping.
Rapid prototyping is the key part of my explanation. Remember how there is "engine code" that, when compiled, opens an editor to run "game code" for any given project? Despite the E3 2012 demo, many changes in a project's C++ source require the editor to be shut down and reloaded when game code is compiled. This led people to use Blueprints as a prototyping tool, not because of its logical, visual layout, but because you could manipulate objects several times in just a couple of minutes and without closing the editor. Now C++ is said to be a first-class citizen in this regard (unfortunately I have not had time to test this). As long as you are not modifying the engine's code, just the C++ code associated with your project, your changes should be possible while remaining in editor.
Also updated, and finally supported by default, is Unreal Motion Graphics (UMG). UMG is a UI platform that is built upon Slate, which itself is the main UI platform for Unreal Engine 4 (Unreal Editor, for instance, is created with Slate). Basically, it extends Slate and includes a Flash Professional-like editor for it, complete with styles, animations, and scaling for high-DPI devices.
Because I am not in the DirectX 12 private beta, I am unsure whether that branch has been updated. Microsoft has announced that it was based on Unreal Engine 4.4. They have not said anything publicly since, at least not regarding that.
Unreal Engine 4.5 is available now for subscribers through GitHub or the Unreal Engine Launcher.
Subject: General Tech | July 17, 2014 - 05:16 PM | Scott Michaud
Tagged: open-source, open source, fbx, epic games, Blender
Blender, probably the most popular, open source 3D creation suite (sorry Wings!), was given a healthy donation of $13,500 USD by Epic Games. According to the tweet from Ton Roosendaal, Chairman of the Blender Foundation, this is intended to support FBX development, which is becoming the industry standard method of importing and exporting 3D models, skeletons, animations, and so forth. It is also for "epic-game-style navigation controls" (not sure what this is -- Unreal Editor-style controls maybe??)
EpicGames donates 10k euro (13.5k usd) to Blender Development Fund. Is support for more FBX work + epic-game-style nagivation controls. #b3d
— Ton Roosendaal (@tonroosendaal) July 5, 2014
FBX support would definitely be a welcome area of development. It exists, but not at the level of other 3D applications, because those could link directly to Autodesk's library. The format is owned by Autodesk after they acquired Kaydara in 2006. Its closed-source SDK was put under a license that was incompatible with Blender and its public documentation was non-existent. Since then, the Blender community has been working on reverse-engineered support. They have come a long way, the exporting from Blender and importing into Unreal Engine 4 is apparently reasonable, today. Of course, with Epic's focus on the indie developer, $13,500 seems like a good investment to help it continue.
Beyond its status as the default import format into Unreal Engine 4.x, FBX is also standard in many different modeling applications. While it is fairly easy to move around most base, polygonal geometry (and UVs to properly apply materials to them) from suite to suite, the same cannot be said for animation data, and so forth. FBX was designed to be a single pipeline for all of that.
Hopefully, Blender can become a first-class citizen.
Subject: General Tech | May 8, 2014 - 03:04 PM | Jeremy Hellstrom
Tagged: gaming, unreal engine 4, Unreal Tournament, kick ass, epic games
The only way Epic could have excited gamers more than the announcement that Unreal Tournament is coming back is to announce that it is utterly free with no DLC or pay-to-win ... which is exactly what they did! It will be built on Unreal Engine 4, the one you can license at $19 a month and will be designed from the ground up to be moddable and eventually there will be a marketplace where modders can trade, sell or give away their work. Polygon wasn't given any hint of a release date but this news is so exciting it almost makes you forget UT3 ever existed!
Of course you don't have to wait to join in on some classic UT2K4 action, just head to the Gaming Forum and see when the Fragging Frogs will be playing next.
"Developer Epic Games revealed today that the multiplayer shooter's next incarnation — in development in Unreal Engine 4 for Linux, Mac and Windows PC and called simply Unreal Tournament — will be free, moddable and collaboratively developed with fans."
Here is some more Tech News from around the web:
- Sci-Fi Contest Winners @ Hack a Day
- Microsoft is developing a smartwatch to rival Samsung, Sony and Apple @ The Inquirer
- Whoops! Nvidia lets slip Q1 earnings early – and they're solid @ The Register
- HP's virtual cloud-based Z Workstation packs Nvidia Grid K2 graphics @ The Inquirer
- FCC MUST protect net neutrality to preserve AMERICA, say Google et al @ The Register
Subject: General Tech, Mobile | April 27, 2014 - 01:50 AM | Scott Michaud
Tagged: unreal engine 4, ue4, epic games
Epic Games has just incremented the minor version number of their popular engine by releasing Unreal Engine 4.1 to all subscribers. While the dot-zero was available privately for quite some time, it was made public barely a month ago. Its headlining feature is a few extra platforms: Linux, SteamOS, Xbox One, and Playstation 4. Each of these are included in the 19$ per month and 5-percent royalty agreement -- excluding outside fees, such as those required to become a registered developer with Sony and/or Microsoft, obviously.
You will also need a capable Windows PC to deploy a game to Playstation 4, Xbox One, Linux, or SteamOS... "for now". This implies that development on other platforms is being considered. Development from OSX seems likely, as does Linux, but creating games on an Xbox One or Playstation 4 seems a bit far-fetched. Who knows though? If any company has good enough relationships with Sony and Microsoft to make it happen, it would be Epic.
— Ray Davis (@EpicRayD) April 25, 2014
I am guessing... Dreamcast support is a "no". It was not that ahead-of-the-curve.
The actual update notes are just shy of 7000 words and about 20 pages long, so platforms are not everything. Epic has been adding a lot of content and templates to the engine and their marketplace, including the Elemental demo first seen at E3 2012. The editor was also updated with numerous improvements, such as better FBX importing (FBX is a cross-application 3d file format).
Also, it is available now.
Subject: General Tech, Shows and Expos | March 19, 2014 - 08:15 PM | Scott Michaud
Tagged: unreal engine 4, gdc 14, GDC, epic games
Game developers, from indie to the gigantic, can now access Unreal Engine 4 with a $19/month subscription (plus 5% of revenue from resulting sales). This is a much different model from UDK, which was free to develop games with their precompiled builds until commercial release, where an upfront fee and 25% royalty is then applied. For Unreal Engine 4, however, this $19 monthly fee also gives you full C++ source code access (which I have wondered about since the announcement that Unrealscript no longer exists).
Of course, the Unreal Engine 3-based UDK is still available (and just recently updated).
This is definitely interesting and, I believe, a response to publishers doubling-down on developing their own engines. EA has basically sworn off engines outside of their own Frostbite and Ingite technologies. Ubisoft has only announced or released three games based on Unreal Engine since 2011; Activision has announced or released seven in that time, three of which were in that first year. Epic Games has always been very friendly to smaller developers and, with the rise of the internet, it is becoming much easier for indie developers to release content through Steam or even their own website. These developers now have a "AAA" engine, which I think almost anyone would agree that Unreal Engine 4 is, with an affordable license (and full source access).
Speaking of full source access, licensees can access the engine at Epic's GitHub. While a top-five publisher might hesitate to share fixes and patches, the army of smaller developers might share and share-alike. This could lead to Unreal Engine 4 acquiring its own features rapidly. Epic highlights their Oculus VR, Linux and Steam OS, and native HTML5 initiatives but, given community support, there could be pushes into unofficial support for Mantle, TrueAudio, or other technologies. Who knows?
A sister announcement, albeit a much smaller one, is that Unreal Engine 4 is now part of NVIDIA's GameWorks initiative. This integrates various NVIDIA SDKs, such as PhysX, into the engine. The press release quote from Tim Sweeney is as follows:
Epic developed Unreal Engine 4 on NVIDIA hardware, and it looks and runs best on GeForce.
Another brief mention is that Unreal Engine 4 will have expanded support for Android.
Subject: General Tech, Shows and Expos | March 12, 2014 - 09:17 PM | Scott Michaud
Tagged: GDC, gdc 14, mozilla, epic games, unreal engine 4
Today, Mozilla teases Unreal Engine 4 running in Firefox, ahead of GDC.
Both Mozilla and Epic will have demos in their booths on the conference floor.
Subject: Editorial, General Tech, Graphics Cards, Systems | May 23, 2013 - 06:40 PM | Scott Michaud
Tagged: xbox one, xbox, unreal engine, ps4, playstation 4, epic games
Unreal Engine 4 was presented at the PlayStation 4 announcement conference through a new Elemental Demo. We noted how the quality seemed to have dropped in the eight months following E3 while the demo was being ported to the console hardware. The most noticeable differences were in the severely reduced particle counts and the non-existent fine lighting details; of course, Epic pumped the contrast in the PS4 version which masked the lack of complexity as if it were a stylistic choice.
Still, the demo was clearly weakened. The immediate reaction was to assume that Epic Games simply did not have enough time to optimize the demo for the hardware. That is true to some extent, but there are theoretical limits on how much performance you can push out of hardware at 100% perfect utilization.
Now that we know both the PS4 and, recently, the Xbox One: it is time to dissect more carefully.
A recent LinkedIn post from EA Executive VP and CTO, Rajat Taneja, claims that the Xbox One and PS4 are a generation ahead of highest-end PC on the market. While there are many ways to interpret that statement, in terms of raw performance that statement is not valid.
As of our current knowledge, the PlayStation 4 contains an eight core AMD "Jaguar" CPU with an AMD GPU containing 18 GCN compute units, consisting of a total of 1152 shader units. Without knowing driving frequencies, this chip should be slightly faster than the Xbox One's 768 shader units within 12 GCN compute units. The PS4 claims their system has a total theoretical 2 teraFLOPs of performance and the Xbox One would almost definitely be slightly behind that.
Back in 2011, the Samaritan Demo was created by Epic Games to persuade console manufacturers. This demo was how Epic considered the next generation of consoles to perform. They said, back in 2011, that this demo would theoretically require 2.5 teraFLOPs of performance for 30FPS at true 1080p; ultimately their demo ran on the PC with a single GTX 680, approximately 3.09 teraFLOPs.
This required performance, (again) approximately 2.5 teraFLOPs, is higher than what is theoretically possible for the consoles, which is less than 2 teraFLOPs. The PC may have more overhead than consoles, but the PS4 and Xbox One would be too slow even with zero overhead.
Now, of course, this does not account for reducing quality where it will be the least noticeable and other cheats. Developers are able to reduce particle counts and texture resolutions in barely-noticeable places; they are also able to render below 1080p or even below 720p, as was the norm for our current console generation, to save performance for more important things. Perhaps developers might even use different algorithms which achieve the same, or better, quality for less computation at the expense of more sensitivity to RAM, bandwidth, or what-have-you.
But, in the end, Epic Games did not get the ~2.5 teraFLOPs they originally hoped for when they created the Samaritan Demo. This likely explains, at least in part, why the Elemental Demo looked a little sad at Sony's press conference: it was a little FLOP.
Update, 5/24/2013: Mark Rein of Epic Games responds to the statement made by Rajat Taneja of EA. While we do not know his opinion on consoles... we know his opinion on EA's opinion:
— Mark Rein (@MarkRein) May 23, 2013