Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

2. febrero 2017


Epic have just released preview 3 of their upcoming 4.15 release.  As always, being a preview release, you should expect bugs and warts in this release and it should not be used in production.  With that in mind, this release brings a number of fixes, including:

Fixed! UE-40753 [CrashReport] UE4Editor_LevelEditor!FLevelEditorActionCallbacks::Paste_CanExecute() [leveleditoractions.cpp:1602]
Fixed! UE-41130 User Defined Enums may lose their display names on upgrade to 4.15
Fixed! UE-41073 Crash when opening blueprint with collapsed nodes with structure output, split pin
Fixed! UE-41072 Implemented Interfaces are not added to nativization list
Fixed! UE-41070 Data only blueprints are not not nativized when flagged to do so
Fixed! UE-41071 Parent blueprint not added to nativization array if only child saved
Fixed! UE-41190 Ensure failure !bStaticCall nativizing blueprint calling blueprint function library function
Fixed! UE-37815 BulkData Async loading remains in memory
Fixed! UE-38767 [CrashReport] UE4Editor_Core!FArchive::SerializeCompressed() [archive.cpp:447]
Fixed! UE-41125 Static mesh LODs other than LOD0 cannot be set to screen sizes greater than 1
Fixed! UE-41220 Crash when adding multiple collision types to a mesh
Fixed! UE-40791 The Play button on the ForceFeedback effect icons is missing
Fixed! UE-41294 Reimporting skeletal mesh clears material references from material slots
Fixed! UE-41126 HISMC UpdateInstanceTransform blueprint function does not update bounds correctly
Fixed! UE-40525 CommitMapChange doesn't fully deal with sub-levels
Fixed! UE-40939 Inconsistent line ending prompts occur in Visual Studio after adding Vehicle C++ feature pack
Fixed! UE-41163 Material curves keeps resetting to 0.f
Fixed! UE-41216 Additive Pose Asset arms become over exteneded when blended with reference pose
Fixed! UE-41082 Fix crash on cache bone with sub instance
Fixed! UE-40945 Crash trying to import facial animations
Fixed! UE-41143 Crash when launching engine without a windows audio device enabled.
Fixed! UE-41112 Crash when Dragging Skeletal Mesh with Apex Clothing into Level
Fixed! UE-37270 Changing transform of simulated component during physics freezes motion
Fixed! UE-39884 Foliage LODs are do not appear to use the base LODs lightmap any longer
Fixed! UE-40480 Ensure encountered when using the Copy/Paste sub-tool in sculpt mode
Fixed! UE-41271 Localization broken in cooked builds due to missing meta-data during cook
Fixed! UE-41253 Mobile / Use Full Precision not working on Metal
Fixed! UE-41023 Scene capture produces black texture on encoding devices with mobileHDR == false
Fixed! UE-39451 Web browser widget causes app to crash when packaging for Distribution on Android
Fixed! UE-40927 Projects crash on Android when trying to load mips
Fixed! UE-39911 Failed checkSlow(IsInGameThread()); in UWorld::GetWorldSettings
Fixed! UE-40524 Issues with PrepareMapChange/CommitMapChange and Level Collections
Fixed! UE-40810 Crash opening Infiltrator packaged on Windows for Linux
Fixed! UE-41198 Spinbox value decimal point is moved one place to the right when edited on Android
Fixed! UE-36984 TestPAL fails to compile
Fixed! UE-41146 Crash in editor when audio is playing
Fixed! UE-40451 Blueprint - User configured tvOS Bundle ID is not set properly during packaging
Fixed! UE-40392 GitHub 3111 : Fix environment variable name to the correct legacy LINUX_ROOT.
Fixed! UE-40023 UFE Deploying and launching a packaged build on Linux fails due to invalid directory
Fixed! UE-40761 Various audio clips are not playing in Elemental Demo on PS4
Fixed! UE-41209 PS4SharePlay errors are produced when launching onto PS4 with UnrealFrontEnd
Fixed! UE-41183 Crash Occurs when changing the 'Max Metal Shader Standard To Target' option within iOS Project Settings
Fixed! UE-38691 Launch On from Windows to Linux fails with missing GLSL_430 shaders
Fixed! UE-37016 GitHub 2842 : [Linux] Fix bootstrap script so it is independent on working dir
Fixed! UE-40956 Rare crash occurs in CoreAudio in Vehicle Game on Mac when quitting.
Fixed! UE-41042 GitHub 3160 : Fixed `ADB` being incorrectly set to `ANDROID_HOME`.
Fixed! UE-41079 NpToolkit2 fails to initialize in 6CPU mode on PS4
Fixed! UE-41167 Shader complexity is broken in the forward renderer
Fixed! UE-39754 Crash: Changing Material Property Overrides of Material Instance
Fixed! UE-40736 "Too many texture coordinate sets" warnings in KiteDemo
Fixed! UE-40873 Shadows of small movable components popping out
Fixed! UE-41193 Update material node tooltips based on 4.15 preview feedback.
Fixed! UE-40482 Ensure occurs when turning on Constraints in Advanced Show Flags
Fixed! UE-40980 Fix mem corruption on particles on PS4
Fixed! UE-40724 Large round stone in ZenGarden is no longer reflective
Fixed! UE-41138 Flickering in Elemental Demo when TemporalAA and bloom is enabled
Fixed! UE-41099 SpeedTree Material No Longer Compiles With Texture Coordinate Node In BaseColor
Fixed! UE-41008 LogApexClothingUtils Warning when opening QAGame
Fixed! UE-41311 Time snapping interval is not updating the timeline in UMG Sequencer
Fixed! UE-40682 Animations that overlap and blend together break when undoing
Fixed! UE-40758 Events on frame 0 fire twice
Fixed! UE-41019 Sequencer does not refresh on creating a new camera if Default Property Tracks is empty
Fixed! UE-41010 Fix up actors remove actor from sequencer folder.
Fixed! UE-41148 Logstreaming warning when opening the editor: "LogStreaming:Warning: Failed to read file 'Common/RoundedSelection_16x.png' error."
Fixed! UE-40070 VREditor: Laser not hidden on MotionControllers with docked Menu/UI Panels


As always, the preview release is available using the Epic Game Launcher.

GameDev News

31. enero 2017


Unity have just released a rather large patch for Unity 5.5.1p1.  Loaded with fixes, there are also a couple of improvements to the Android gradle builds as well as a couple new graphics API in the Mesh class.  Complete patch details from the release notes:


  • Android: Gradle export now supports custom template
  • Android: Gradle export troubleshooting added
  • Graphics: Added new APIs: Mesh.GetIndexStart and Mesh.GetIndexCount.
  • Tizen: Added a button to the deployment target window to refresh the target list.
  • Tizen: Remove the Tizen 2.3 minimum OS option. 2.4 is now the only accepted OS version. Users must update their devices to Tizen OS 2.4.
  • (852307) - Android/IL2CPP: Prevent a crash which can occur with the use of OnAudioFilterRead callbacks on krait CPUs.
  • (none) - Android/Metro: Fixed the issues preventing the Application.Unload API from functioning correctly.
  • (856650) - Android: Gradle export should now work with SDK version > 6.0.
  • (854535 ) - Android: Gradle export -Fixed colliding package name for unity-android-resources
  • (869582) - Animation: Fixed a crash when setting Animator.updateMode when no AnimatorController is set.
  • (860366) - Animation: Fixed edit key overriding key frames in curve editor.
  • (862004) - Asset Bundles: Fixws intermittent freeze that could occur when calling AssetBundle.LoadAssetAsync multiple times in a single frame.
  • (871730) - Cache Server: Fixed the custom port missing for the remote option.
  • (none ) - Editor: Fixed light probe rendering in LookDev HDRIs. Previously it could go wrong depending on the lighting panel parameters set for the project.
  • (862005) - Graphics: Fixed crash in occlusion culling when loading multiple scenes.
  • (860775 ) - HoloLens: Fixed a crash that occurs on device when downloading files with WWW.
  • (867606) - IL2CPP: Allow the build to succeed when the .NET 4 TargetFrameworkAttribute attribute is used in an assembly.
  • (863806) - IL2CPP: Correct an error in UnusedBytecodeStripper2 related to UnityEngine.RenderTexture that can occur during some project builds.
  • (828288) - iOS: Fixed an issue where the ReplayKit API might be reported as available on unsupported devices
  • (796649) - iOS: Fixed orientation requests from the app getting out of sync with iOS orientation.
  • (829753) - Kernel: Json serialisation now supports correct parsing of NaN and +/-Inf.
  • (none ) - Lighting: Fixed baked light map visualisation shading mode in the Editor.
  • (861293) - LineRenderer: fixed gaps when values are repeated
  • (864043) - LineRenderer: Fixed issue where setting endColor failed if using different number of color/alpha keys
  • (847798 ) - Mono: Correct an invalid C# compiler error with generic types in compiler generated code (like lambdas and enumerators). The error from the C# compiler often includes this text: "There is no boxing or type parameter conversion from..."
  • (836770) - Networking: Fixed issue where unspawn handler was not properly invoked during object cleanup (like in NetworkManager.StopClient())
  • (864122) - Particles: Fixed "TLS ALLOCATOR ALLOC_TEMP_THREAD" error messages
  • (862777) - Particles: Fixed crash in LightsModule when destroying systems
  • (862897) - Particles: Fixed crash in ParticleSystem.Emit()
  • (856842) - Particles: Fixed issue where distance-based emission was not working
  • (862352) - Particles: Fixed issue where particle bounding boxes could become corrupted, resulting in "Invalid AABB" messages
  • (861347, 863060 ) - Particles: Fixed issue where sub-emitters were causing memory leaks
  • (862976) - Particles: Fixed issue where switching Render Mode could cause rendering artifacts
  • (868648) - Particles: Fixed rare crash when using the Trail Renderer and Multithreaded Rendering is enabled.
  • (862921) - Particles: Fixed rotation bug with mesh particles
  • (864208) - Particles: Fixed TrailModule crash when enabling trails and using ParticleSystem.SetParticles
  • (861409]( - Particles: Stretched billboards could apply scale twice if using Speed Scale
  • (859436) - Particles: Texture Animation could skip frames and display invalid data
  • (none ) - Physics 2D: Optimize the CapsuleCollider2D component intersection tests for speed and accuracy.
  • (none ) - Purchasing: Fixed a bug where a duplicate transaction could fail without calling the failure callback.
  • (none ) - Scripting: Added the following non-allocating accessors to Mesh. These accessors write into a user-specified List. The accessors are GetBindposes, GetBoneWeights, GetColors, GetIndices, GetNormals, GetTangents, GetTriangles, and GetVertices.
  • (856507) - Shaders: Fixed shader compilation error when compiling certain surface shaders using WorldNormalVector from INTERNAL_DATA e.g. shadow pass variations.
  • (810571) - Splash Screen: Fixed an issue where the splash could be truncated by a first scene taking a long time to load
  • (872286 ) - Tizen: Change the minimum API level to Tizen 2.4 in PlayerSettings.
  • (869995 ) - Tizen: Fix a NULL referencing while exiting the game.
  • (834785) - Tizen: Improve error when failing to discover a deployment target.
  • (none ) - Tizen: Improvements to emulator deployment.
  • (none ) - Tizen: SystemInfo.processorFrequency now returns proper values.
  • (869964) - TrailRenderer: Fixed visual artifacts when manually enabled during Play mode
  • (861828) - UnityWebRequest: fix proxy support, so that debuggers like Fiddler work.


As always, the patch is available for download here.

GameDev News

31. enero 2017


I found myself recently needed some rocks… I could easily download a collection of rocks, but I figured it would be extremely easy to just make my own.  My first thought was to simply take a cube, smoothly sub divide it a number of times, and apply a displacement modifier to it.  The end results however didn’t really bring the results I wanted:



By the way, you can learn more about using the Displace modifier on my earlier tutorial on using Blender for level creation.


Ok, apparently this is going to take more than a few seconds…  hey… I wonder if there is a plugin?  Turns out, yes, yes there is.  The plugin add_mesh_rocks does exactly what it says.  You can download a tarball of the plugin here using the snapshot link.   You can get instructions for installing (a different but same process) plugin in Blender here.  Download and enable the plugin.



Once you’ve downloaded and enabled the plugin, there is a new option in the Add->Mesh menu, Rock Generator:



NOTE*** There seems to be a bug, the option wont be available if there isn’t any existing geometry in the scene.




Ok, I admit, that looks a bit more like a kidney bean than a rock, but it’s a start.  If you look in the Tool (T) panel, you will see initial creation options for Rock Builder:



Click Generate materials if you want it to create a starting rock texture for you.  Every time you change any setting, you will get a completely different rock, like so:



If you don’t want this behavior, turn off the random seed setting.  Once you’ve got a rock you are happy with… let’s destroy it!


Before we go to far though, if you dont want performance to absolutely crawl, we want to apply several modifiers that were created as part of the rock creation process.  Go to the modifiers tab and start applying the various modifiers:



OK, back to destruction.  The first and most obvious option is the Explode modifier.  There are a few steps we have to take here… first go into edit mode, select all the vertices and in the vertex data tab create a new vertex group.  Now apply first a particle system modifier, then an explode modifier.  Finally wire up the vertex group, like so:



The problem with explode is that it applies to the hull of the object only, so the results may not be way you want… as you can see:



In some cases, that effect might be exactly what you are looking for.  Oh, and I turned gravity off to get the effect above. But if you instead want things to be a bit more… substantial, it’s time for a rethink.  In fact, it’s time for another plugin, but thankfully this one ships with Blender, it just needs to be enabled.   What you are looking for is “Cell Fracture”:



Once enabled, in Object mode, there will now be a new option available in the Edit section of the Tools tab:



Cell Fracture will split your object up into several solid pieces.  You’ve got tons of control over how the fracturing will occur.



What I personally did was changed source limit (number of pieces) down to 12 and unchecked “Next Layer” so the fracture occurs in the primary layer.  Now you will notice you’ve got several meshes instead of one:



In fact, you can now get rid of the source rock if you want.  You will notice your rock is actually 12 rocks now:



Instead of using a particle system like we did with explode, we are going to use Dynamics (Physics) instead.  Select all of the objects, switch to the physics tab and select Add Active.



This means all of our rocks will now participate in the physics engine.  To see the result, quickly add a plane to the scene, make it a rigid body and turn dynamic off:



And now press play in the timeline:



Now that looks much more realistic!  Now, what if we wanted our rock to explode instead of fall?  Well, physics are once again coming to our aid!  This time add a force field to the scene:



Then crank the strength way up (or lower the mass of your objects), like so:



Once again, I don’t want gravity to be part of the process, so I turn it off.  In the Scene tab, simply turn off gravity, like so:



And voila, exploding rocks!


Art, General , , ,

31. enero 2017


The Haxe Foundation have just announced the release of Haxe 3.4.0.  Haxe is commonly used in game development with several game frameworks and engines available.  3.4.0 is a relatively minor release composed primarily of bug fixes, the following is an abridged version of the changelog:

General improvements and optimizations:

  • all : support completion for static extensions (#5766)
  • all : removed neko dependency for macros, use PCRE instead
  • all : disabled analyzer optimizations by default, re-enable with -D analyzer-optimize
  • php7 : generate native $v instanceof MyType instead of, MyType) where possible for better performance
  • php7 : added @:phpNoConstructor meta for externs which do not have native php constructors and yet can be constructed
  • php7 : greatly reduced amount of generated tmp vars
  • php7 : Array performance improvements
  • hl : made various improvements


  • all : fixed using picking up non-static abstract functions (#5888)
  • all : fixed issue with side-effect detection when optimizing (#5911)
  • all : fixed issue with zlib bindings causing zlib_deflate errors (#5941)
  • php7 : Allow user-defined modules in php package (#5921)
  • php7 : Dereference some of php.Syntax methods if required (#5923)
  • php : fixed assigning a method of dynamic value to a variable (#5469)
  • php : fixed missing initialization of dynamic methods in classes with empty constructors (#4723)


For complete details of what’s changed in the release be sure to check the complete change logs available here.

GameDev News

28. enero 2017


Amazon have just released beta 1.7 of their Lumberyard game engine.  Lumberyard is a fork of the CryEngine game engine, we took a quick hands-on look shortly after Lumberyard was released.  Lumberyard 1.7 beta brings a number of fixes and improvements to the engine, in fact it brings “more than 403 of them”…  which I have to admit is somewhat strange wording on Amazon’s behalf.   One major new addition is the new Asset Browser:

With the new Lumberyard Asset Browser Preview in 1.7, you can now see all of your available assets (including source folders and files in editor, gem, and project folders) in a familiar view in the Editor, and use those assets in your scenes by drag and dropping. Having the ability to access source assets in just one step from the Editor dramatically speeds up iteration, especially when your project uses complex source assets that can produce multiple outputs (e.g. a single .fbx file that contains both meshes and materials). Also, the new Asset Browser automatically updates itself as assets are changed, removed, or added, using the Lumberyard Asset Processor.  The Asset Browser’s underlying APIs are exposed to the Lumberyard bus system, so if you are writing your own plugin or controls, you have access to rich information about the assets, for example file size, name, location, what source produced the asset, and what other assets were produced at the same time.

Another major aspect of this release is improvements to the UI:

What you see above [to the right]is the first phase of our Editor UX improvements. We’ve interviewed many game developers, both internal and external, and have begun reorganizing and streamlining the main editor interface based around the new Component Entity system and the feedback we’ve received from our customers. Previously, to create a game object you had to select between 12cry1 different object types, and then navigate multiple layers of the Rollup Bar to customize them. Now there is one type of game entity, which you can create with a simple right click. Editing an entity’s components, selecting files to be used on that entity, and toggling between all of your level’s entities all happens in the main window. You can also create nested prefabs of entities (“slices”) just as easily – just right click on the main window.

Next on our UX team’s list is to streamline the toolbar and top menu, while still giving you the ability to deeply customize your layout based on your role or preferences. We’re collecting more data and feedback from customers – if you have ideas, we want to hear about them. Please let us know on our forums, where you can see a preview of where we are heading next.


Android developers will now have the ability to deploy directly from the editor, no more need to drop to a command line to deploy your application.  They also shipped a new multiplayer focused example (Geometry Wars clone) using their new Component Entity workflow and their networking layer GridMate.   Other improvements in this release include:

There’s lots more to this update, too, including Visual Studio 2015 support, spherical video playback support for VR, integration with Perforce Helix, UX improvements to our Geppetto character tool, new component entities that support audio, lighting, compound shapes, and animation, updates to Twitch ChatPlay and Metastream, integration with the latest AWS 1.0.24 SDK, and more.


You can read the full details of this release in the release notes or in the announcement blog post.

GameDev News

Month List

Popular Comments

Lumberyard Engine Beta 1.1
Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

16. March 2016


Launched just last month, today at GDC Amazon announced the first (beta) update, Lumberyard 1.1.  This update has a fairly impressive number of features including:

  • a new component/entity system
  • Substance PBR integration
  • FBX importer
  • mobile support (just ARM8 + iOS devices and the NVidia Shield for now)
  • new Twitch/Chatplay features

For smaller developers the FBX importer is probably the biggest deal, as Lumberyard currently requires you to use Maya or 3D Studio Max plugins to export in a compatible format.  The addition of a stand alone FBX importer opens Lumberyard up to a number of other DCC solutions such as Blender, Cinema4D, etc.

Obviously mobile support is a big deal as well, but it’s extremely limited at this point.  A bit more on that topic:

Lumberyard Beta 1.1 introduces mobile support. In this release, we include support for iOS devices with an A8 or better processor and the Android-based Nvidia Shield. Lumberyard Beta 1.1 uses Apple’s Metal API and leverages their GMEM fast memory to enable you to create high-fidelity iOS visuals. By using Metal and GMEM, Lumberyard enables your game to directly access and push more data to the Apple GPU hardware, so your game can use the latest rendering techniques (e.g. post effects such as depth of field, glow, flares, and color grading). Supporting mobile developers building 3D and connected games is a priority for us and we will continue to expand device support in coming releases.

Obviously in time that will become more mature.  Finally a bit more on the component/entity system:

One of the areas we are focused on with Lumberyard is making the engine extensible by developers without changing engine code. Our new Component Entity system is built to enable easy engine extension with new components. Content creators can drag-and-drop and combine those components into new game objects. They can then make reusable assemblies of Component Entities, which we call “Slices.” Slices can be composed of other nested Slices. Slices can contain scene elements and game logic written in Flow Graph, Lua, or C++. Individual properties of Slices can be overridden, or shared among all copies of a Slice. This approach allows you to lay out generic copies of a Slice in a scene, and then quickly make changes to specific copies.  For example, if you have a Slice that includes a row of street lamps, you could also include broken light bulbs on a select set of those street lamps. Furthermore, changes to the base model can quickly be shared with all copies. The Lumberyard Editor includes rapid drag-and-drop workflows for creating Components and Slices.

Component Palette


Pretty solid progress in a short period of time.  For more details read the complete release here.

GameDev News

blog comments powered by Disqus

Month List

Popular Comments