Subject: General Tech | March 31, 2016 - 06:52 PM | Scott Michaud
Tagged: epic games, unreal engine, unreal engine 4
It has been in preview since December, but Epic Games has finally released Unreal Engine 4.11 for developers to create awesome things with. This version focused on performance and the features that were added for Paragon, which entered early access two weeks ago. DirectX 12 is still considered experimental, and Vulkan is missing officially (although John Alcatraz has a tutorial to add it to Unreal Engine built from source), but the rendering back-end has received significant changes to accommodate the new graphics APIs in the future.
The three features that I'm most interested in, apart from free performance, are lighting channels, capsule shadows, and improved building of static light. Light channels are very difficult to implement in a deferred renderer, but Epic managed. This means that you can have dynamic lights only affect certain objects in the scene, either for performance, if enough lights are ignored to justify the cost of the channels themselves, or for special effects, like making a specific object stand out in a scene. They also added new shading models for eyes, hair, skin, and cloth, and added a bunch of interesting audio features.
Unreal Engine 4.11 is available now from Epic's Launcher. It's free to use, but Epic takes a royalty on certain revenues.
Subject: Mobile, Shows and Expos | February 21, 2016 - 10:14 PM | Scott Michaud
Tagged: Samsung, epic games, unreal engine 4, vulkan, galaxy s7, MWC, mwc 16
Mobile World Congress starts with a big bang... ... ... :3
Okay, not really; it starts with the formation of a star, which happens on a continual basis across the universe. I won't let facts get in the way of a pun, though.
As for the demo, it is powered by Unreal Engine 4 and runs on a Samsung Galaxy S7 with the Vulkan API. The setting seems to be some sort of futuristic laboratory that combines objects until it builds up into a star. It is bright and vibrant, with many particles, full-scene anti-aliasing, reflections, and other visual effects. The exact resolution when running on the phone was never stated, but the YouTube video was running at 1080p30, and the on-stage demo looked fairly high resolution, too.
Epic Games lists the features they added to mobile builds of Unreal Engine 4 for this demo:
- Dynamic planar reflections
- “Full” GPU particle support, which includes vector fields.
- Temporal Anti-Alising, which blends neighboring frames to smooth jaggies in motion.
- ASTC texture compression (created by ARM and AMD for OpenGL and OpenGL ES)
- Full scene dynamic cascaded shadows
- Chromatic aberration
- Dynamic light refraction
- Filmic tonemapping curve, which scales frames rendered in HDR to a presentable light range
- Improved static reflections
- High-quality depth of field
- Vulkan API for thousands of onscreen, independent objects.
The company has not stated which version of Unreal Engine 4 will receive these updates. I doubt that it will land in 4.11, which is planned for March, but they tend to release a full dot-version every one to three months. They also have early previews for those who wish to try it early, some compiled leading up to launch, and others that need to be built from GitHub.
Subject: General Tech | September 1, 2015 - 08: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, Shows and Expos | March 6, 2015 - 11:08 PM | Scott Michaud
Tagged: unreal engine 4, gdc 15, GDC
I am not quite sure if the Game Developers Conference led to this video being released, or if it was just a coincidence. This is the sole work of Alexander Dracott, a visual effects, lighting, and shader artist who has been employed at Sucker Punch and Sony Online Entertainment. He works for a studio in Bellevue, Washington, USA doing VR demos, which sounds like Valve but is probably someone else entirely.
Basically, it is a forest scene that is rendered in Unreal Engine 4. It is convincing, despite a little macroblocking from Vimeo compression (or its source). Even the falling leaves cast appropriate shadows. Granted, he never mentions his computer's specifications, which could make a difference in how many features he could get away with enabling. Either way, the art would even be amazing in a non-realtime scene, let alone Unreal Engine 4.
A couple of days later, he posted pictures of the same scene in an autumn time frame (same link). I guess that I should keep coming back to this thread, just in case it gets a Winter update or something. Awesome work!
Subject: General Tech, Graphics Cards, Shows and Expos | March 4, 2015 - 10: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 | March 2, 2015 - 02:11 AM | Scott Michaud
Tagged: quixel, GDC, gdc 15, ue4, unreal engine 4, gdc 2015
You know that a week will be busy when companies start announcing a day or two early to beat the flood. While Game Developers Conference starts tomorrow, Quixel published their Jungle demo to YouTube today in promotion of their MEGASCANS material library. The video was rendered in Unreal Engine 4.
Their other material samples look quite convincing. The vines on a wall (column in this case) is particularly interesting because it even looks like two distinct layers, despite being a single mesh with displacement as far as I can tell. I don't know, maybe it is two or three layers. It would certainly make sense if it was, but the top and bottom suggests that it is single, and that is impressive. It even looks self-occluding.
Pricing and availability for the library is not yet disclosed, but it sounds like it will be a subscription service. The software ranges from $25 to $500, depending on what you get and what sort of license you need (Academic vs Commercial and so forth).
Subject: General Tech | February 21, 2015 - 12:00 PM | 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 | November 21, 2014 - 06:53 PM | Scott Michaud
Tagged: unreal engine 4, game jam
Update 3: Day 3 is live. Clearly not going to be done before the Game Jam, but it sounds like this should be a regular thing that I do.
Update 2: Day 1 is starting just after 2 PM EST (~10-15 minutes from now). Stream is up. Link in first update.
Update: Live in less than five! Join me at Twitch.tv/ScottMichaud
It is all for fun, right?
Last week, the official Unreal Engine Twitter account tweeted about an online game jam being held, which starts this Friday (November 21st) at midnight and ends just 72 hours later. In that time, participants will attempt to create a full video game. All art, music, code, and so forth must be created in that short window. Existing engines, libraries, and utilties are allowed though, and they are actively encouraged with several license of Unreal Engine 4, Unity Pro, Clickteam Fusion, and GameMaker: Studio being provided to contestants. There are no prizes, except that the top ten, highest-voted entries will be featured in a PewDiePie YouTube video. He is the host of this game jam.
The theme of this game jam is, “Fun to play and fun to watch”. Funny is a bonus.
Oh why not? I have an idea for a quick-ish Unreal Engine 4-based game. While expectations should be kept low, I will enter the jam and I intend to stream the whole development process live on Twitch. Whether or not I am successful, I hope that it will be fun and entertaining for everyone involved. Drop in! Talk in the chat room! Say your opinion! Give suggestions! Embrace exclamation points!
I am not, by any metric, a professional game developer, but it should be a good weekend!
Barring technical issues, the stream will start at around 11:55 PM on Thursday, November 20th, 2014. I will probably work for a few hours that night outlining the concepts and creating assets. I hope you will attend! (Details will be available before the event both here and on Twitter).
Subject: General Tech | October 27, 2014 - 03:15 AM | Scott Michaud
Tagged: square enix, kingdom hearts 3, unreal engine 4, ue4
I did not report on this the first time because it did not seem like a credible rumor. As it turns out, they were citing an interview with the game's director from Famitsu, the Japanese video game magazine. Basically, while Square likes to make their own engine to use with their RPG projects, their Luminous Engine did not satisfy their needs so they decided to shift production to Unreal Engine 4. While it is still not scheduled to come to the PC, we know that the engine feels at home on our platform.
Image Credit: Wikipedia
It seems pretty clear that Kingdom Hearts was not moved to Unreal Engine 4 for PC support. That would just be silly. More likely, their internal engine might have needed a little extra development work and, especially with the vastly different art styles of Kingdom Hearts and Final Fantasy, they moved the two release dates further apart. Maybe they will even release Kingdom Hearts 3 earlier than intended?
But, if it does come to the PC, it seems somewhat more likely that it will function better than Final Fantasy XIII does. That title was locked to 720p with a few odd quirks, like Esc being the equivalent of "/qq" despite even Alt+F4 giving a warning prompt, and that it seems to require a keyboard to close (I could not find a way to close the game with the gamepad or mouse alone). That said, while a tangent-to-a-tangent, I did like the option to have the original, Japanese dub. Yet again, I digress.
This was not the first time that Square has developed an RPG on Unreal Engine. The Last Remnant, for the Xbox 360 and PC, was developed on Unreal Engine 3. Kingdom Hearts 3 does not have a release date, but it might be sooner than we expect (and probably much earlier than Final Fantasy XV).
Subject: General Tech | October 20, 2014 - 03:20 AM | 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.