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


As always the patch can be downloaded here.  This patch contains:

  • Documentation: In the scripting API, added information to Graphics.SetRenderTarget() and CommandBuffer.SetRenderTarget() about using linear lighting mode. Updated the wording about using linear lighting mode in the Graphics.Blit() entry.
  • iOS/IL2CPP: Added support for Xcode 7.3 (don't use __declspec attributes).
  • Samsung TV: Added support for 2016 TVs.
  • MSE: Prevent calling some Editor mode only APIs on EditorSceneManager from play mode, including EditorSceneManager.OpenScene, EditorSceneManager.SaveScene etc.
  • MSE: Prevent calling some play mode only APIs on SceneManager from Editor mode, including SceneManager.LoadLevel, SceneManager.LoadLevelAsync etc.
  • (745139) - Animation: Fixed an issue with stepped keys having the wrong value.
  • (745781) - Animation: Fixed animation events not firing on the last frame of a looping animation.
  • (754373) - Animation: Fixed crash when deleting all Euler keys in animation curve
  • (753866) - Animation: Fixed Crossfade called subsequently not properly interrupting transition.
  • (none) - AssetBundles: Fixed the assetbundle reading bug when compressed data could be read as uncompressed.
  • (715753) - AssetBundles: Fixed AssetBundle.CreateFromFile retaining file descriptor.
  • (none) - AssetBundles: Fixed memory leak when loading asset bundles with lzma compression.
  • (none) - AssetBundles: Fixed possible assetbundle caching error when starting multiple downloads with an empty cache.
  • (747492) - Direct3D: improved performance in GPU bound scenarios.
  • (754487) - Graphics (Editor): In play mode set the graphics device sRGB write mode to match the lighting mode e.g. enable sRGB write mode in linear lighting mode.
  • (none) - Graphics: Fixed crash when setting shader properties.
  • (760943) - IL2CPP: Do not incorrectly free blittable arrays marshaled as [In,Out] parameters.
  • (758926) - IL2CPP: Prevent a NotImplementedException exception from occurring in il2cpp.exe when the Unbox opcode is used with certain generics. This usually occurs when an assembly is built with Visual Studio.
  • (none) - IL2CPP: Removed an unnecessary Box used to null check before calling a virtual method.
  • (none) - iOS: Fixed Apple Pencil position reporting on iPad Pro.
  • (754068) - Lines & Trails: Fixing issue where rendering in VR was offset for one eye.
  • (752423) - MSE: Fixed a crash when trying to get the root count on an invalid Scene.
  • (751923) - MSE: Fixed loading new unsaved scene during playmode using Application.LoadLevel(index) or SceneManager.LoadScene(index).
  • (753550) - MSE: Now make sure inspector in ActiveEditorTracker for MonoBehaviours are not garbage collected. The ActiveEditorTracked manages the objects itself.
  • (752599) - MSE: Throw null reference exception if SerializedObject has been disposed.
  • (none) - OpenGL (legacy): Added work around buffer state tracking failure.
  • (742591) - OpenGL: Fixed binary shader cache, cache was always disabled because of a bug in the caps.
  • (751743) - OpenGL: Fixed mipmap generation for render textures using OpenGLES.
  • (none) - Samsung TV: Fixed the smarthub button problem.
  • (none) - Substance: Fixed console spam about unavailable material properties.
  • (752039) - Substance: Fixed a crash when checking/unchecking  'Generate all outputs' or 'Generate mipmaps' on OSX.
  • (751300) - Substance: Fixed a crash when reimporting SBSARs with multiple material instances on OSX.
  • (663236) - Substance: Fixed editor stutter when using RebuildTextures on OSX.
  • (none) - Substance: Fixed emission color being set to opaque white when resetting a ProceduralMaterial.
  • (754556) - Substance: Fixed textures not properly generated on player awake when affected only by constant inputs.
  • (none) - Substance: Output textures from ProceduralMaterials without any input are now always generated.
  • (740182) - WebGL: Prevent browser from processing Arrow Keys.
  • (747236) - WebGL: Prevent browser from processing Backspace and Tab key presses.
  • (747549) - Windows Store: Fixed AccessViolationException when initializing matchmaking in UNet.
  • (755473) - Windows Store: Fixed TouchScreenKeyboard crashes when it's members are used immediately after Open().

GameDev News

20. January 2016


Unreal have released another preview release of Unreal Engine, this release is 4.11 preview 3.

The release has the following fixes:

Fixed! UE-24810 Exponential Height Fog is not working
Fixed! UE-25137 Linux platform does not appear in Windows Binary
Fixed! UE-24260 Crash launching on Nexus 5 running 4.4.2
Fixed! UE-24132 HLOD crash when reopening a level
Fixed! UE-25070 Crash when overriding an animation in a child Anim Blueprint and then undoing
Fixed! UE-24403 First Person Template character no longer follows HMD rotation in VR
Fixed! UE-24714 Graphic corruption loading particles on Mac
Fixed! UE-24789 iOS Platform not found when packaging
Fixed! UE-24716 Crash occurs selecting to open Session Frontend or UFE on Mac and Linux
Fixed! UE-25268 bUsePawnControlRotation not working with VR
Fixed! UE-25057 Text variable types in BP Structure cause crashes
Fixed! UE-25352 Crash when loading 'GDC_KiteCine_Map' sublevel of GDC_Landscape01 in KiteDemo
Fixed! UE-24736 r.UseShaderPredraw needs to be reenabled
Fixed! UE-25424 Text shaping doesn't work on the Mac
Fixed! UE-25407 Remove unneeded reformatting of clang error output
Fixed! UE-25371 Loc is gathering from transient properties and objects
Fixed! UE-25322 Setting SupportedAgent's NavigationDataClass in Project Settings does nothing.
Fixed! UE-25128 Error when AT_MaterialFunction asset is opened
Fixed! UE-25115 No assets are created for static meshes in the level when generating LODs
Fixed! UE-25050 SideScroller2D BP and Code player can fall off sides of the map
Fixed! UE-24974 Baked shadows from static meshes that fall on dynamic objects cause artifacts with instanced stereo on
Fixed! UE-25372 Font cache can crash if the culture is changed mid-frame
Fixed! UE-25016 Custom Depth not rendering with mesh unless it's selected.
Fixed! UE-25035 Vehicle Code and BP templates have a missing texture
Fixed! UE-25204 Shader Complexity view mode not rendering correctly
Fixed! UE-25041 Landscape content has assets saved with empty engine version
Fixed! UE-22839 Custom Component Being Added to Wrong Target Blueprint
Fixed! UE-25361 UE4 Prereqs MSI does not install MSVC++ 2015 Runtime
Fixed! UE-25109 Player spawn point is incorrect in Third Person and First Person code template
Fixed! UE-23717 Ensure removing an implemented interface when transfering functions
Fixed! UE-25338 Crash playing level sequence after changing blueprint material
Fixed! UE-22845 Trigger Volume Blocks First-Person Template Projectile
Fixed! UE-22910 World Context Object Pin Appears on Nodes After Refresh
Fixed! UE-25498 Crowd simulation state is not set correctly

While also having the following known issues:

UE-25646 Can't interact with the Blueprint_Mouse_Interaction content example
UE-25644 First Person BP and Code gun has odd rotation
UE-25633 ContentExamples' NetworkFeatures map opens with Blueprint warnings
UE-25632 Asset produces error "Failed import for object property" upon loading editor
UE-25630 ContentExamples' Matinee map opens with PIE warnings
UE-25626 Asset with child actor component (documentation actor) crashes upon level load
UE-25625 Failing to compile will cause blueprint variables to reset to their default values
UE-25611 Disable writing NoOBBInstall batch file
UE-25605 ContentExamples' Math Hall map opens with Blueprint compiler warnings
UE-25599 [CrashReport] Auto-Convex Collision Generation crashing with specific Mesh
UE-25593 UnrealHeaderTool does not detect program plugins enabled by default
UE-25575 Long Google Play App ID can cause an invalid error
UE-25573 ContenExamples' LevelScripting map opens with Blueprint warnings
UE-25571 Can't Launch On or Package code templates on iOS
UE-25560 ContenExamples' Cloth map opens to SkeletalMesh warnings
UE-25553 Cinematic camera broken in Infiltrator
UE-25549 Closing Editor Crashes in OpenGL
UE-25548 Project Launcher Crashes in OpenGL
UE-25543 Actors that are scaled too small have incorrect collision responses
UE-25529 ContenExamples' BlueprintSplines map opens with blueprint warnings
UE-25524 ContenExamples' Audio map opens to missing NodeGuid warnings
UE-25521 Editor font doesn't render Arabic glyphs
UE-25520 The new BP gather method is ignoring non-root level BPs
UE-25507 Vehicle Advanced Template's dashboard view camera on ground in VR
UE-25506 Vehicle Template's dashboard view camera on ground in VR
UE-25502 Major artifacts in Shootergame bullet decals
UE-25495 Lots of Warnings for Kite demo when building via EC for the Launcher
UE-25493 Kite demo and Tappy CHicken fail to build via EC: Assertion failed: NewProperty [File:\BuildFarm\buildmachine_++UE4+Release-4.11\Engine\Source\Editor\KismetCompiler\Private\KismetCompiler.cpp] [Line: 665]
UE-25479 Unable to package a BP project for Linux missing UE4Game binary
UE-25477 BlueprintOffice has missing NodeGUID warnings on open
UE-25474 Callstacks are not properly written within a clients logs after a crash has occured
UE-25451 Construction script on child actor components not respected in PIE
UE-25444 SceneCapture(HDR) malfunctions on Mali devices.
UE-25433 UFE: HTML5 custom on the fly deployment stalls when trying to connect in Firefox.
UE-25422 Actor loses and regains net relevance, replicated references to it not handled correctly
UE-25411 Tappy Chicken does not display a numerical score on iOS
UE-25387 First Person projects packaged in Shipping for HTML5 constantly rotate upwards
UE-25383 UFE: Unable to deploy content to Android_ETC1 in custom profile. It stalls at the deploying stage and goes on indefinitely.
UE-25377 Spinning logo in Blueprint_Communication map is the incorrect size
UE-25355 Polygons are black in KiteDemo levels
UE-25352 Crash when loading 'GDC_KiteCine_Map' sublevel of GDC_Landscape01 in KiteDemo
UE-25334 Tessellation no longer working in 4.11 Preview 2
UE-25333 Mac project packaged in Shipping does not have a UE4 icon
UE-25328 Rendering artifacts when hovering over menu buttons on AMD card
UE-25323 Opening a project that contains an actor in viewport with a child actor component of type TextRenderActor crashes the editor
UE-25315 Improve code practices in Match3
UE-25313 iOS crash on launch on some devices
UE-25272 IHeadMountedDisplay Crash
UE-25267 Crash in IHeadMountedDisplay::ApplyLateUpdate
UE-25266 HTML5 packaging code project fails could not verify LLVM version
UE-25257 Mac HTML5 project crashes upon downloading expression HasFoundDataDirectory failed
UE-25235 Collision volumes don't keep their color in cooked game
UE-25233 Unable to add Chrome as a platform in the HTML5 SDK option. This prevents launching a project in Chrome.
UE-25214 LaunchOn for Firefox fails during the downloading of packaged data.
UE-25199 Crash when using +CVars=r.MobileContentScaleFactor=2
UE-25150 iOS build failure in 4.11 preview 1
UE-25147 ASTC textures with alpha channel corrupted by -alphablend optioion
UE-25146 Crash occurs texture painting on Mac with Metal
UE-25143 Crash occurs opening level sequence assets in QAGame
UE-25129 Crash occurred painting on landscape sublevels with Retopologize tool
UE-25123 Mac Editor Freezes after connecting and disconnecting a mobile device
UE-25118 Retopologize tool does not line up with cursor
UE-25111 Signal 11 error when closing project on Linux
UE-25097 TextureSampleParameter2D ignored in PostProcessMaterial
UE-25093 Landscape tool switches to Manage New Landscape when hiding a level with landscape mode open.
UE-25069 [CrashReport] Editor crashes if pointlight is added to level on El Capitan
UE-25065 [CrashReport] UE4Editor_Persona!FPersonaMeshDetails::IsSectionSelected() [personameshdetails.cpp:1179]
UE-25025 Undoing a change to equation of Math Expression node breaks output link
UE-25021 Project Thumbnail is distorted on Mac
UE-25015 Separate Translucency disabled in the Project Settings will not render asset
UE-25014 Persona viewport flickers when viewing a skeletal mesh on Nvidia driver 361.43
UE-25011 Crash when selecting a revision with the Blueprint Diff Tool
UE-25006 Merge bug fix for Vertex Colors in UI Materials into 4.11
UE-24994 Character is discolored and has a square shadow on Galaxy S5
UE-24993 Color Picker closes when selecting color in the Level Details Panel in a Blueprint actor
UE-24992 Undo not stepping back properly when the UMG widget is added to a sequence
UE-24968 Double clicking a widget will cause details properties to disappear
UE-24967 Integrate D3D12 update from MS
UE-24959 "Send and Restart" brings up the Project Browser
UE-24954 Enabling wifi while a game is running causes the device to freeze or crash
UE-24948 First Person template has odd reflections on the Galaxy S3 Mali
UE-24913 RecieveTick_Copy not working - Should not be able to make event copies
UE-24908 Cloth crash when changing frequency to 0
UE-24878 Crash when Converting 4.10 Project to 4.11 possibly related to Oculus Config Utility
UE-24843 Project launcher splash does not disappear after project opens on Linux
UE-24833 Crash undoing the adding of a Child Actor Component
UE-24822 Widget must be selected twice to transform newly added components in the blueprint viewport
UE-24813 Skylight Indirect lighting Intensity has no effect
UE-24793 iPadPro uses wrong resolution
UE-24792 Blocky terrain artifacting on iPadPro
UE-24757 Editor crashes when exiting and having a widget blueprint open.


For those of you that like to walk on the wild side, the preview release can up downloaded using the Epic Games Launcher.

GameDev News

19. January 2016


A few weeks back I looked at creating Isographic tiles in Blender.  Today we are going to follow it up with a tutorial on creating Orthographic tiles instead.  Orthographic and isometric simply refer to the camera’s projection mode.  In an orthographic project, the camera is straight on and the image does not become smaller as it gets further away from the camera.  Most traditional top down or side view tiles, such as Metroid or Mario Brothers, are orthographic.


Blender gives you a bunch of advantages when creating tiles, especially when it comes to auto-tile support.  You can see auto tiling in action in our Tiled Map Editor tutorial series.  By creating a sequence with the proper border between varying tile types, the auto tile algorithm can figure out the rest.  In this tutorial we will show how to setup Blender so creating these transitions becomes trivial.


There is also a video version of this tutorial available here or embedded below.


First fire up Blender.  Because we are rendering everything in the end, it’s critical we set the dimensions properly.  In this case I am going to try and keep all of my tiles to 2x2 Blender units.  With the 3d cursor at 0,0,0 add a new plane, the default location is ideal:



Now switch to edit mode, then UV unwrap it.  This is going to hold our texture.  I am going to use a pair of seamless textures I created for roads, one a straight section, the other an intersection:


The important part of these textures is they are (relatively) seamless.  I accomplished this by cloning the edge of the one corner of the intersection, then pasting it over the 3 other edges of the intersection, then the two ends of the straight piece.  It’s not flawless, but it’s close.


Now, in object mode, apply the texture to the plane.  We will start with the intersection.  Create a new material if one does not exist, then switch to the texture tab and add the texture to the diffuse channel.  If you don’t know how to do this, check out one of our existing Blender tutorials, they will teach you everything you need to proceed.


The end result should now look like this:



Woot, half way there... well, a quarter...  Now render this and you should see...



Well, that’s not ideal...  two problems here... first our lighting, second, our transparent region is being rendered.  First lets fix the lighting.  When creating tiles you probably want a flat lighting.  First select the scenes default light and delete it.  Now, with no lights in the scene, we want to turn Ambient Occlusion on.  In the properties, locate the World setting then enable AO, like so:



Now when we render:



Much better.  Now we just have to sort the whole transparency thing.  Select your plane, then go to the material tab and enable transparency, then set Alpha to 0, like so:



Now switch to the texture, check alpha and set the value to 1:






Perfect!  We are now at least half way there...  now lets create another tile, this one for the road.  Once again with the cursor at 0,0,0 create another plan, then move it by 2 units ( G, Y, 2 )


Now repeat the above process, just using the other texture instead, and our end result should look like:



Cool!  The only catch you might run into is you may have to rotate the UV 90 degrees to get the road to line up properly with the intersection. 


Now is where the magic of working in Blender can kick in... making our background.  Now create yet another plane object, this one 1wide, 2 high.  Most importantly, move it down the z axis a little bit, so the result should look something like this:



Now texture this new object however you wish... create your sand layer, grass layer, whatever.  Here it is with a quick grass texture applied:



Now we need to set up our camera.  There are two approaches we can take here... we can out camera to capture our entire image then split the tiles up using a tool like Imagemagick, or we can render each tile manually.  The choice is up to you. 


First switch your camera into Orthographic mode, with the camera selected, select the camera tab, then Orthographic:



The following settings are going to be determined by the number of tiles you have and the resolution of your map.  I will use the above example, and I want to render each plane out to 4 (2x2) tiles so our over all image is 4x2.  I am going to render out to a single image and split the tiles later.  To do this, first I went to the camera settings, and set the resolution like this:



I positioned the camera like this:



And set the camera properties accordingly:



With the Blender view in Ortho mode (5 on numpad), it should look like:



Now render, and:



Finally I fire up the following Imagemagick command to split the image into tiles.  As my rendered image is 1024x512, I am going to break it into 256x256 tiles:

convert -crop 256x256 tilesheet.png tiles%d.png

And now we should have 8 very game ready tiles:



Very cool.


Now, thanks to the fact we are in 3d using Blender, we can simply change the background texture and create instead a desert background say...



Five seconds later, a new autotilable texture transition!

Video Version

Art Design

19. January 2016


Crytek, makers of the CRYENGINE game engine, have just announced a new VR focused education initiative.  They will be partnering with select educational institutions giving full source code access as well as free hardware to encourage virtual reality development.


From the CryEngine blog:

The creators of CRYENGINE will provide full source code access for free and equip a new generation of talent to explore the power and potential of VR

Frankfurt am Main (Germany) January 19, 2016 – Seeking to nurture grassroots virtual reality development worldwide, Crytek today announced the launch of its new VR First program.

Under the initiative, Crytek will partner with academic institutions to provide state-of-the-art technology and facilities for students and researchers looking to explore the power and potential of VR.

Beneficiaries of the VR First program will not only enjoy full source code access to Crytek’s CRYENGINE development suite, but also free use of hardware from VR First affiliates.

VR First seeks to empower the development talent of tomorrow by ensuring academic institutions around the world are equipped to support their ambitions in this exciting new field. The initial VR First Lab opens its doors today at Istanbul’s Bahçeşehir University and will act as a pilot destination for the scheme. Crytek and the program’s affiliate hope to ensure every VR First lab facilitates users to play a key part in shaping the future of VR.

For more information on VR First, and details of how to become an affiliate or academic partner, please visit

GameDev News

18. January 2016


I just published this up to Youtube, but figured I would share it here as well.  I have long held that C++ isn’t a great choice as a first programming language.  This video is an attempt to illustrate why, including the same simple task in three different languages, C++, C# and Lua/Love.

Again, I don't think learning C++ is a bad idea, it's a very good idea. It's just starting with C++ that I believe is a mistake. If you are completely new to programming and want to know why I personally recommend against starting with C++, I recommend you watch this. Of course, you can start with C++... it's not going to harm you and it very much can work. I just think you would be more effecient using another language first.


AppGameKit Studio

See More Tutorials on!

Month List