Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
14. January 2016

 

Want a little extra spice in your development life?  Does juggling live hand grenades, chainsaws and lit dynamite sound like a fun way to spend the afternoon?  Then have I got news for you!  Unreal Engine 4.11 Preview 2 has been made available.  Obviously it’s a “you get what you get” type preview release and the purpose is to find out what’s going to explode to make for a more stable release when the less adventurous types upgrade.

 

Preview 1 added:

  • Rendering Updates:
    • New physically based shading model for realistic hair based on the latest research from film. It models 2 specular lobes, transmission, and scattering.
    • New physically based shading model for eyes.
    • New physically based shading model for cloth. This combines the standard shading model with a layer of velvet fibers. This layer simulates fuzz and fabrics.
    • Capsule Shadows - We now have support for very soft indirect shadows cast by a capsule representation of the character
    • Lightmass Portals - Skylight quality indoors can be massively improved by setting up Portal actors over openings. Portals tell Lightmass where to look for incoming lighting, they don’t actually emit light themselves. Portals are best used covering small openings that are important to the final lighting. Placing large Portals all over the level will dramatically increase build times.
    • Per-vertex translucency lighting - There are two new translucency lighting modes available in the material editor which compute lighting per-vertex. PerVertex lighting modes use half as many shader instructions and texture lookups.
    • We now have support for 3 lighting channels. You can set which channels a PrimitiveComponent or a LightComponent is in.
    • We’ve integrated Intel's Embree ray tracing library into Lightmass and we got a huge lighting build speedup from it, as the majority of lighting build time goes toward tracing rays to figure out how light is bouncing.
    • We’ve integrated updates to the D3D12 RHI to allow better CPU utilization while generating rendering commands in parallel.
    • Improved quality and performance of the SubsurfaceScatteringProfile shading model.
    • Circle Depth of Field post process - New Material Functions to render small particles with out of focus.
    • Materials using separate translucency can now be rendered at a lower resolution, which can be useful to improve GPU performance for fillrate and overdraw heavy geometry (for example particle effects).
      The resolution is controlled via a console variable, r.SeparateTranslucencyScreenPercentage, which expresses separate translucency as a percentage of current screen resolution.
    • Static mesh LOD transitions now supporting dithering.
  • Core Updates:
    • CrashReporter Server available
    • Improvements
      • Garbage Collection up to 4x faster
      • Dependency preloading - brings us close to seek free loading (90% of the time seek free), faster package loading
      • UnrealHeaderTool makefiles - iterative UHT runs are 5x faster
  • Platform Updates:
    • Metal on Mac
    • AppleTV support
    • Fast Semantics on XboxOne
    • VS2015 on XboxOne
    • Code plugins for PS4
    • Deterministic cooking "bug-finder" commandlet
    • Background content precaching for most-recently-cooked-platform
  • Editor/Tools Updates:
    • Sequencer improvements
      • New tracks: Shot/director, play rate, slomo, fade, material, particle parameter tracks.
      • Improved movie rendering, exr support
      • Improved/consistent keyframing behaviors, copy/paste keyframes, copy keys from matinee, 3d keyframe path display
      • Master sequence workflow
      • Spawnables workflow
      • UI improvements: track coloring, keyframe shapes/coloring, track filtering
  • Framework Updates:
    • Anim Dynamics Skeletal Control for Animation Blueprints - allows dynamic motion to be procedurally added to skeletal meshes without having to use a full physics solution. This is accomplished using the new “Anim Dynamics” node in the Animation Graph of an Animation Blueprint.
  • Networking Updates:
    • Packet handler system
      • Easy interception of packets for things like encryption, compression, etc
      • Added CryptoPP, and packet handler components that support it out of the box
    • Oodle integration (SDK purchase required)
    • Client-side replays
  • Blueprint Updates:
    • The Blueprint search tool has been updated to support more advanced search functionality (to get more targeted results).
    • Native C++ functions marked BlueprintCallable can now also be optionally marked as DevelopmentOnly. This new metadata allows calls to those functions to be disabled (compiled out) of all Blueprint function graphs in cooked/packaged builds without breaking the execution flow.
  • Mobile Rendering Updates:
    • Support for hardware instancing on iOS and many Android devices, reducing draw calls for Foliage and InstancedStaticMeshComponents.
    • Improved reflections on mobile, optionally interpolating between up to 3 reflection captures and performing parallax correction
  • VR Updates:
    • Instanced Stereo Rendering
    • Head Mounted Display Camera Refactor
    • Stereo Layers
    • SDK Updates: Oculus SDK 1.0, SteamVR 1.0, PlayStationVR SDK3 Updates, and Gear VR LibOVRMobile 1.0 (not yet updated for Preview 1, but will be by final release)
  • Landscape/Foliage Updates:
    • Landscape layer whitelisting, allowing you to control which landscape components should accept which layers in the painting tool
    • Landscape layer usage view mode, to quickly see which landscape components are using which layers
    • Support for baking WorldPositionOffset changes into landscape collision

Preview 2 mostly addresses a number of fixes from Preview 1, including:

Fixed! UE-24563 Editor should launch launcher silently
Fixed! UE-25092 Error in NonUnityTestCompile_OnMac due to Shadow variable
Fixed! UE-25032 UnrealHeaderTool is checking for plugins required only by game.
Fixed! UE-24812 Editor crashes when adding a mesh reference to the event graph of a blueprint
Fixed! UE-24590 Crash resetting Bound Bone in Anim Dynamics node
Fixed! UE-25064 Crash upon removing Input Axis in Project Settings by using X
Fixed! UE-24958 Crash when getting the sequence player in level blueprint
Fixed! UE-24857 Re-implement plugin changes in 4.11
Fixed! UE-24854 Add release custom version
Fixed! UE-24729 Vehicle Blueprint template has hole in the floor
Fixed! UE-24710 Third Person Code has failed import load errors
Fixed! UE-24694 Match 3 crash when spamming gem moves
Fixed! UE-24773 Enabling Tessellation on Materials in 4.11 causes geometry to Disappear
Fixed! UE-24741 Flickering SpeedTree foliage when destorying an actor using the same mesh
Fixed! UE-24724 Dropdown menus are behind the Import window on Mac
Fixed! UE-24292 Using the Set console command to change a value at runtime causes a crash
Fixed! UE-24326 Vehicle Advanced projects have missing and blocking collision
Fixed! UE-24522 Find-in-Blueprints no longer works after switching languages.
Fixed! UE-24167 Physics Asset cannot be moved in the level
Fixed! UE-25140 VS2015 builds sometimes hang when using XGE
Fixed! UE-25027 Reading from ini sections not cached by new build system doesn't work in Android Plugin Language
Fixed! UE-25026 Puzzle Code lighting needs to be rebuilt
Fixed! UE-25013 Editing right-to-left text is very unstable
Fixed! UE-24967 Integrate D3D12 update from MS
Fixed! UE-25120 OBB downloader license check causes exception if TargetSDK set to 21 or higher
Fixed! UE-25090 Java libraries copied to JavaLibs by Android plugin are not included in project dependencies
Fixed! UE-25031 Mesh particles do not work on mobile
Fixed! UE-24989 Find-in-Blueprints does not find anything outside of current asset or Engine content
Fixed! UE-24975 Instanced stereo foliage culling incorrectly
Fixed! UE-24963 Zen Gardens opens with Load Errors/Map Checks/Warnings
Fixed! UE-24962 Crash exiting D3D12
Fixed! UE-24926 Include Render Pass name as variable in Filename Format field
Fixed! UE-24920 EXR renders won't go above 640x360 when rendering from an Editor Window
Fixed! UE-24900 Main and Alt input keys set in Touch Interface do not work
Fixed! UE-24873 Mac: Clicking on parent window when a child window is behind it activates the child window
Fixed! UE-22068 Changing inherited value in a blueprint child class also changes it in parent
Fixed! UE-21795 Switch on Gameplay Tag does not correctly register tag alterations in Standalone game
Fixed! UE-23269 Crash opening QA-Animation on Mac
Fixed! UE-22970 The white horizon for the sky is flipped upside down (at top of screen instead of bottom) for non-MobileHDR on mobile devices
Fixed! UE-24852 Creating a Blueprint out of existing Blueprints crashes the editor

You can read more about the release on the Unreal Engine forums.

GameDev News


11. January 2016

 

Out of the box Unreal Engine 4 has support for C++ and Blueprints.  This leaves a bit of a gap for people that want more of a scripting experience but don’t want to work in a visual language like Blueprints.  Of course we have full source code access and Unreal Engine has solid plugin support so it was only natural for a few third party languages to pop up.  What follows is the list of external programming language options for developing in Unreal Engine.

 

JavaScript

Probably the best supported language alternative, there are two major implementations of JavaScript for UE4:

 

Unreal.JS

Released by NCSoft, the folks behind the popular Guild Wars RPG series, this plugin adds JavaScript support via the V8 engine.  Impressive in it’s scope, it includes CommonJS module support, .d.ts files for Intellisense support, a Jade like templating engine, live reload as well as access to the entire Unreal SDK.

 

Flathead

Another implementation of JavaScript via the V8 engine.  Older, small in scope and less supported, so probably best to go with Unreal.JS.

 

C#/.NET

This one is a bit tricky.  There was an early leader in an implementation by Xamarin, until licensing differences killed that project.  The only other alternative is currently Windows only.

 

Mono for Unreal Engine

Sadly no longer under development because of licensing issues, this version is outdated, requiring Unreal Engine 4.4 and a Xamarin license to deploy.

 

Klawr

Currently the best bet for C# development using the Unreal Engine but sadly confined to Windows only.  In the authors own words “This project is still highly experimental, and not very useful (though it's getting there)”.  It’s open source and hosted on Github if you wanted to contribute.

 

Haxe

There is one project looking to add Haxe language support to Unreal Engine.  Fortunately it’s pretty far along.

 

Unreal.hx

Fully supporting subclassing UActor and Blueprints, the Haxe code compiles directly to C++ code leaving minimal overhead.  This implemetnation gives access to the entire Unreal Engine API.

 

Other

 

Rust

Slightly different than the other languages on the list, this project implements a simple plugin enables you to link a 3rd party Rust library to C++ in Unreal Engine.

 

SkookumScript

A custom scripting language for Unreal Engine (and other game engine) development, SkookumScript is in their own words “SkookumScript is a text-based programming language for creating performance-critical, real-time gameplay. It is now available as a free turn-key plugin for Unreal Engine 4 (UE4)”.  SkookumScript was used to create the game Sleeping Dogs.

 

 

No doubt there are languages I’ve missed, so if you know of one at is in at least a runnable state, please leave a comment below and I will add it.  I am somewhat shocked that I couldn’t find a Lua plugin at this point! 

Programming


4. January 2016

 

We recently covered getting started in GearVR development using Samsung’s GearVRf library and the Unity Engine.  Today we are going to finish it off with coverage of getting started using the Unreal Engine.  As with the Unity tutorial, although this is focused on the GearVR, most of the instruction should be equally valid for all Oculus Rift devices.  Of all the game engines, the Unreal was actually the easiest engine to get up and running with the GearVR.

 

There are a few pre-requisites before getting started:

There is a video based version of this tutorial available here and embedded below.

 

Configuring Unreal Engine

In order to be able to run code on your phone we need to add the Oculus Signature file to the application.  With Unreal Engine, this is configured at the engine level which is handy as you only have to configure it once for and it will work with all future projects.  If you haven’t already, sign up for an Oculus developer account, then get your key.  This will generate a file that we need to copy now.

The directory you want is [Unreal Install Dir][Version]\Engine\Build\Android\Java\assets.  In my install it was:

image

 

Creating a Project

You can use just about any settings, but these ones work well.

image

This will mostly just set presets that are mobile friendly.  Click Create Project when ready.

 

Configuring Your Project

If not done already, load your project in Unreal Engine, then select Edit->Plugins:

image

 

Now verify (or turn on) the GearVR and Oculus rift libraries and plugins, like so:

image

 

Now select Edit->Project Settings:

image

 

Locate Android SDK on the left hand side then on the right configure the location of your Android SDK install.

image

 

Now go to Android, set the Android minimum level then click the Configure Now button:

image

 

While in the Android settings, be sure to enable GearVR support!

image

 

Build Your App

 

Now build and package for Android, in the File Menu, select Package Project->Android->Android (ETC2):

image

Pick a location for the generated APK then Ok.

image

For the record, Unreal Engine Android builds are really really really slow.

 

When complete this will generate the APK file to run on your phone, as well as a pair of BAT files to quickly deploy to your device.  The noOBB batch file doesn’t copy data, only the updated executable.  Keep in min,d, you need to have your device either tethered or running wirelessly over adb to deploy.  This means removing it from the GearVR, which is an annoying process.  If you don’t need to fully test VR functionality, it might be faster to work in developer mode. [Link soon]

 

Video

Programming


22. December 2015

 

Unreal have just released a preview version of Unreal Engine 4.11 today. 

The following is a list of items updated within this release:

  • Rendering Updates:
    • New physically based shading model for realistic hair based on the latest research from film. It models 2 specular lobes, transmission, and scattering.
    • New physically based shading model for eyes.
    • New physically based shading model for cloth. This combines the standard shading model with a layer of velvet fibers. This layer simulates fuzz and fabrics.
    • Capsule Shadows - We now have support for very soft indirect shadows cast by a capsule representation of the character
    • Lightmass Portals - Skylight quality indoors can be massively improved by setting up Portal actors over openings. Portals tell Lightmass where to look for incoming lighting, they don’t actually emit light themselves. Portals are best used covering small openings that are important to the final lighting. Placing large Portals all over the level will dramatically increase build times.
    • Per-vertex translucency lighting - There are two new translucency lighting modes available in the material editor which compute lighting per-vertex. PerVertex lighting modes use half as many shader instructions and texture lookups.
    • We now have support for 3 lighting channels. You can set which channels a PrimitiveComponent or a LightComponent is in.
    • We’ve integrated Intel's Embree ray tracing library into Lightmass and we got a huge lighting build speedup from it, as the majority of lighting build time goes toward tracing rays to figure out how light is bouncing.
    • We’ve integrated updates to the D3D12 RHI to allow better CPU utilization while generating rendering commands in parallel.
    • Improved quality and performance of the SubsurfaceScatteringProfile shading model.
    • Circle Depth of Field post process - New Material Functions to render small particles with out of focus.
    • Materials using separate translucency can now be rendered at a lower resolution, which can be useful to improve GPU performance for fillrate and overdraw heavy geometry (for example particle effects).
      The resolution is controlled via a console variable, r.SeparateTranslucencyScreenPercentage, which expresses separate translucency as a percentage of current screen resolution.
    • Static mesh LOD transitions now supporting dithering.
  • Core Updates:
    • CrashReporter Server available
    • Improvements
      • Garbage Collection up to 4x faster
      • Dependency preloading - brings us close to seek free loading (90% of the time seek free), faster package loading
      • UnrealHeaderTool makefiles - iterative UHT runs are 5x faster
  • Platform Updates:
    • Metal on Mac
    • AppleTV support
    • Fast Semantics on XboxOne
    • VS2015 on XboxOne
    • Code plugins for PS4
    • Deterministic cooking "bug-finder" commandlet
    • Background content precaching for most-recently-cooked-platform
  • Editor/Tools Updates:
    • Sequencer improvements
      • New tracks: Shot/director, play rate, slomo, fade, material, particle parameter tracks.
      • Improved movie rendering, exr support
      • Improved/consistent keyframing behaviors, copy/paste keyframes, copy keys from matinee, 3d keyframe path display
      • Master sequence workflow
      • Spawnables workflow
      • UI improvements: track coloring, keyframe shapes/coloring, track filtering
  • Framework Updates:
    • Anim Dynamics Skeletal Control for Animation Blueprints - allows dynamic motion to be procedurally added to skeletal meshes without having to use a full physics solution. This is accomplished using the new “Anim Dynamics” node in the Animation Graph of an Animation Blueprint.
  • Networking Updates:
    • Packet handler system
      • Easy interception of packets for things like encryption, compression, etc
      • Added CryptoPP, and packet handler components that support it out of the box
    • Oodle integration (SDK purchase required)
    • Client-side replays
  • Blueprint Updates:
    • The Blueprint search tool has been updated to support more advanced search functionality (to get more targeted results).
    • Native C++ functions marked BlueprintCallable can now also be optionally marked as DevelopmentOnly. This new metadata allows calls to those functions to be disabled (compiled out) of all Blueprint function graphs in cooked/packaged builds without breaking the execution flow.
  • Mobile Rendering Updates:
    • Support for hardware instancing on iOS and many Android devices, reducing draw calls for Foliage and InstancedStaticMeshComponents.
    • Improved reflections on mobile, optionally interpolating between up to 3 reflection captures and performing parallax correction
  • VR Updates:
    • Instanced Stereo Rendering
    • Head Mounted Display Camera Refactor
    • Stereo Layers
    • SDK Updates: Oculus SDK 1.0, SteamVR 1.0, PlayStationVR SDK3 Updates, and Gear VR LibOVRMobile 1.0 (not yet updated for Preview 1, but will be by final release)
  • Landscape/Foliage Updates:
    • Landscape layer whitelisting, allowing you to control which landscape components should accept which layers in the painting tool
    • Landscape layer usage view mode, to quickly see which landscape components are using which layers
    • Support for baking WorldPositionOffset changes into landscape collision

 

Known issues in this release are:

UE-24744 Editor crashes when a Character is selected in Paint Mode.
UE-24721 Hot Reload fails to take effect when compiled from Xcode
UE-24716 Crash occurs selecting to open Session Frontend on Mac
UE-24715 Unplayable GearVR tracking sensitivity in First Person Template
UE-24699 Unable to build Linux editor ConvexHull2D file not found
UE-24650 Materials using separate translucency stop rendering if r.SeparateTranslucency is 0
UE-24590 Crash resetting Bound Bone in Anim Dynamics node
UE-24369 MAC: UI: Top half of the game client is not visible to users when Mac client is launched in fullscreen.
UE-23231 Can't Upload iOS build signed on PC

 

More details of the release are available here.  You can download the preview release using the Epic Game Launcher.

GameDev News


21. December 2015

 

Graphine have released version 3 of their Granite 3 texture streaming technology.  Available stand-alone or as a plugin for Unity and Unreal, Graphine enables you to use gigapixel level texture detail in your game or application.

 

This release brings the following new features:

Detailed Technical Features

  • Greatly improved sparse data handling. Data no longer needs to be available at all resolution levels on all layers.
  • Duplicate tile elimination. Duplicate tiles will be eliminated by the tools and only streamed once at run-time.
  • Support grayscale texture formats (BC4, 8-bit).
  • Large individual GPU caches up to 1GB. Cache sizes are no longer limited to the maximum texture size supported by the GPU.
  • Caches are now build per datatype instead of per layer layout.
  • More efficient cache memory use. Caches can now be shared between tiles sets with a different number of layers and layer datatypes.
  • Significant speedups in Granite core both on the GPU and CPU side. Overall up to 50% CPU and 50% GPU speedup may be seen in the Granite "Tick" per frame update call.
  • Tiling textures are now more efficiently handled reducing memory and bandwidth use.
  • Fixed several cubemap mipmapping issues.
  • New file format (version 3), Granite is backwards compatible with version 2.
  • Improved GPU memory tracking & logging.
  • Separate tool set installer for faster tool updates.
  • Total texture import freedom: Combine single images, tiled images and UDIM images in one stacked texture.
  • Many Tile Set Studio usability improvements.
  • Support for importing custom mipmaps.

 

In other Granite news, released an updated plugin for Unreal 4.10.1:

So what’s new in Granite for Unreal 4.10.1?

  • New GPU cache settings: one global setting with the option to specify the cache size per texture format. It’s easier to use and allows Granite to optimize memory usage even more.
  • Sampling quality can now be set in every individual Granite sample node. This allows a better trade-off between quality and performance on a per-node basis.
  • Large individual GPU caches up to 1GB.
  • Import custom mipmaps.
  • Separate tool set installer for faster tool updates.
  • A number of bugfixes.
  • All other benefits from using Granite SDK 3.0.

GameDev News


AppGameKit Studio

See More Tutorials on DevGa.me!

Month List