Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon Join the GFS Discord Server!
17. April 2016


The following is a recap of major events in the world of game development for the week ending April 17th, 2016.  I do a weekly video recapping the news available here with this week’s video embedded below.  This post is a collection of links mentioned in the recap.



The Video

GameDev News

10. April 2016


The following is a recap of major events in the world of game development for the week ending April 3rd, 2016.  I do a weekly video recapping the news available here with this week’s video embedded below.  This post is a collection of links mentioned in the recap.



The Video

GameDev News

11. November 2015


Urho3d, an open source 3D engine we took a closer look at last year, just released version 1.5. 

link to



From the release notes:

  • Database subsystem with either SQLite or ODBC support.
  • Localization subsystem.
  • Improved the navigation / crowd navigation API and examples.
  • SSE and animation performance optimizations.
  • Enable BT_USE_SSE on Linux and MinGW platforms, enable BT_USE_NEON on Android and Raspberry-Pi platforms.
  • Urho3D macros such as OBJECT, EVENT, HANDLER renamed to have URHO3D_ prefix to prevent ambiguity with other libraries.
  • Double support to Variant, Deserializer, Serializer & JSONValue. Store Lua object attributes accurately as doubles.
  • Support for moving nodes & components between scenes, or creating components “sceneless” and moving into a scene later.
  • Cubemap loading from DDS files.
  • Refactored the object class registration mechanism to store the object’s base class for “Is this class derived from this” queries.
  • Optional “raw” Lua file loading through direct filesystem access for easier debugging.
  • Configurable blend mode in renderpath quad commands.
  • UV coordinates added to raycast results.
  • Allow submitting bare function names instead of full signature to Execute() & DelayedExecute() in AngelScript, similar to specifying event handler functions.
  • Allow negative scale for nodes.
  • Culling camera optimization for viewports, to allow rendering multiple viewports with the same culling data set.
  • Refactor Urho2D animation playback. Add optional Spine support (user must supply Spine runtime.)
  • Refactor Urho2D sprite atlas handling.
  • CollisionShape acquires model resource from StaticModel in same node automatically if collision model undefined.
  • Request the high-power GPU on AMD multi-GPU setups.
  • API for programmatic animation track & keyframe creation.
  • Added AnimationController IsAtEnd() function.
  • Added “remove on completion” mechanism to AnimationController.
  • Added function to remove all components of type to Node.
  • Added GetParentComponent() function to Node.
  • Added resource memory usage stats to DebugHud.
  • Support for ScanDir() on Android.
  • Improve Variant / VariantMap bindings on Lua.
  • Improve internal mechanisms for Lua bindings, e.g. store Urho3D context inside Lua state global table.
  • Improve API for kNet connection stats.
  • Improve AngelScript GetChildrenWithClassName() to return also derived classes.
  • Improve UI tab behavior
  • Improved navigation debug geometry
  • Improve ConvexCast by taking into account CollisionShape’s offset position & rotation.
  • Spline class cleanup & improvements, including linear interpolation mode, and looping Catmull-Rom mode.
  • Refactored JSONValue class to be more JSON-like.
  • Material render order support within a pass.
  • MM_FREE mouse mode, which disassociates cursor visibility from being confined inside the window.
  • Allow doubleclick event in UI over emptiness
  • Make Octree::Raycast() threadsafe.
  • GetGLContext() added to GraphicsImpl on OpenGL to allow the application to perform manual context switching.
  • Fixes for vertex texture fetch on D3D11.
  • Allow optional forced creation of CPU-only vertex & index buffers also in non-headless operation.
  • Unified texture upload behavior: half-float formats need to be provided as such on both D3D & OpenGL. Added float/half-float conversion functions.
  • Automatic generation of intermediate directories in FileSystem::CreateDir().
  • Warn if attempting infinite distance physics raycast. Remove erroneous infinity default value from AngelScript physics raycast bindings.
  • Allow non-strict numeric type to be returned from Variant, e.g. GetFloat() succeeds for an int.
  • Allow to disable PhysicsWorld or PhysicsWorld2D automatic simulation stepping during scene update. When disabled, the physics world can still be stepped manually.
  • Support for manual advancing of value animations.
  • globalVars VariantMap for AngelScript to allow easy cross-ScriptFile parameter passing.
  • Improve ConvexCast() to return distance using the hit fraction.
  • Ensure normalized vertex weights in AssetImporter, and clamp to 4 weights maximum instead of error, by dropping the smallest weights.
  • Configurable layer count in DynamicNavigationMesh to control memory usage.
  • Emscripten ETC1 & PVRTC extension support detection.
  • Emscripten hardware instancing support.
  • emscripten_get_now() for better timer precision and less CPU use.
  • Disable frame limiter Sleep() on Emscripten.
  • Disable audio output in C++ samples where it isn’t necessary.
  • Remove redundant glEnable() / glDisable() calls related to OpenGL texture types.
  • Removed defined_ member variable from BoundingBox, Sphere & Rect in favor of determining the definedness from the bounds being valid.
  • Invalid order checking for Lua binding overloads.
  • Dangerous math class constructors marked explicit.
  • Properly enabled multithreading in GCC/Clang builds.
  • Emscripten toolchain & build related fixes and improvements.
  • Clang tools support in the build.
  • Annotator & script binding extractor skeleton tools in preparation for generated script bindings.
  • Build improvements for CLion IDE.
  • Support Android NDK r10e.
  • Support non-PCH build.
  • Support spaces in path for build.
  • Install d3dcompiler DLL to bin directory for Windows / D3D builds.
  • Improved Urho3D DLL installation logic.
  • More user-friendly operation for missing HTML help compiler or dot.
  • Symlink assets to the build binary directory.
  • Allow installed sample executables to run out-of-the-box on Windows.
  • Reformatting of source code to get rid of indents on empty lines.
  • Script subdirectory in the engine source renamed to AngelScript.
  • Option to build Urho3D without threading (URHO3D_THREADING). Normally disabled on Emscripten but can be enabled for experimental development on browsers with included support.
  • Improved documentation on contributing and 3rd party library policy.
  • Update AngelScript to 2.30.2.
  • Update Assimp to September 2015 revision.
  • Update Bullet to 2.83.6.
  • Editor: setting for new node position preference.
  • Editor: particle editor improvements.
  • Editor: function to assign child nodes into a spline path.
  • Editor: center camera on object with HOME key.
  • Editor: selectable MMB functionality.
  • Editor: language selector and localizations.
  • Editor: Blender hotkeys mode.
  • Editor: HSV color wheel.
  • Editor: event handling refactoring.
  • Editor: 3D debug icons.
  • Editor: make showing IDs optional.
  • Editor: cubemap generation support.
  • Editor: export scene to .obj.
  • Editor: accelerator keys for reset pos/rot/scale.
  • Editor: quickmenu select topmost option with Enter key.
  • Editor: local offset added to spawn editor.
  • Fix missing bindings in navigation / crowd navigation script API.
  • Fix missing Lua bindings for Component class.
  • Fix SplinePath AngelScript bindings.
  • Fix failure to add / remove obstacles due to DetourTileCache queue being full.
  • Fix UI element debug draw.
  • Fix quantized AABB bug with large collision meshes.
  • Fix incorrect viewport size when rendering to both backbuffer & textures.
  • Fix flashing of 2D sprite animations due to misreported animation length.
  • Fix AssetImporter single keyframe animations.
  • Fix GetData() from rendertarget textures on D3D9.
  • Fix handling of lightmap textures in AssetImporter.
  • Fix debug geometry rendering if backbuffer resolve was used.
  • Fix blend mode of Urho2D material getting overwritten.
  • Fix terrain shader quality on mobile devices.
  • Fix partial rendertarget clear on D3D11.
  • Fix URHO3D_PACKAGING build option on Windows shared lib build.
  • Fix PackageFile::GetEntryNames() to return filenames with original case.
  • Fix FXAA3 shader on OpenGL.
  • Fix Depth shader on D3D11.
  • Fix Blur shader.
  • Fix shader code which attempts to use 3D textures on GLES.
  • Fix objects getting removed from physics simulation due to zero Node scale on some axis.
  • Fix line height of included SDF fonts. Fix corrupt rendering if Text3D changes font from SDF to non-SDF or vice versa.
  • Fix inaccurate terrain occlusion.
  • Fix ValueAnimation resource not loading properly.
  • Fix RigidBody2D body type enum.
  • Fix RigidBody2D & CollisionShape2D to be resilient of the add order.
  • Fix Drawable2D’s not using viewmask in rendering & raycast.
  • Fix Quaternion::FromLookRotation() zero cross product case.
  • Fix RigidBody2D custom mass handling.
  • Fix multiple value children created into XMLElement.
  • Fix TmxFile2D loading according to the updated Tiled spec.
  • Fix integer overflow in Random() functions.
  • Fix potentially unreleased Lua function references.
  • Fix UIElement functions that may crash at UI deletion time.
  • Fix mistaken commenting out of GLSL source code.
  • Fix animation “freezing” due to model being invisible while the animation finishes.
  • Fix Graphics::ResolveToTexture() on D3D11, especially for less-than-fullscreen viewports.
  • Fix potential crash or error during animation event processing, if animations are added/removed.
  • Fix potential null pointer access at navmesh destruction time.
  • Fix not allowing collision geometry from multiple CustomGeometries in the same node.
  • Fix space glyph not getting loaded in some fonts.
  • Fix missing resource dependencies tracking when resource autoloading is switched on during runtime.
  • Fix crash on MinGW build with SSE optimizations.
  • Fix windowed / fullscreen switching on Emscripten.
  • Fix missing URHO3D_API specifiers from some classes / structs.
  • Fix improper rounding during TrueType loading, which would displace some glyphs.
  • Fix incorrect bounding box of StaticSprite2D.
  • Fix lost font texture (OpenGL only) not being handled for Text3D.
  • Fix crash with CollisionChain2D with not enough vertices. Allow to create CollisionChain2D in the editor.
  • Fix crash caused by querying HashMap or HashSet while it’s being cleared.
  • Fix erroneous hardware keyboard input on Android.
  • Fix Android MIPS build.
  • Fix UI element layouting changing the user-defined minimum size.
  • Fix crash in 64bit build when opening the console window.
  • Fix potential edge artifacts in dynamically created spritesheets.
  • Fix Spine animation playback thread safety.
  • Fix mouse button release while cursor hidden not releasing drag elements.
  • Fix too heavy-handed skybox shader Z adjustment on GLES, which caused objects to be obscured by the skybox.
  • Fix protected AngelScript class variables showing up as serializable/editable.
  • Fix ResourceRefList serialization bug caused by String::Split() not returning empty strings.

GameDev News

10. November 2015


One thing I have greatly enjoyed about running over the years was getting emails like “Thank you for introducing me to _____ game engine”.  GFS is actually a pretty large community at this point and the indie gaming community would be nothing without the awesome tools, frameworks and game engines available today.  One of my major goals is to increase awareness of these great tools.  Up until now I have done fairly piecemeal reporting on indie game development news but now I am going to be a bit more active.


So what exactly does this mean?  Well it means I am going to do a great deal more smaller posts on GameFromScratch about new game development product releases to help generally raise awareness in the community.  I am also going to be implementing a new tagging system here so the people that want to filter it out can!  Don’t worry, GameFromScratch is going to continue with much the same content it has today, just with more news thrown in.


Of course, to report on news I need to be aware of it!  This is going to be solved in a two fold manner.  First I have set up a new account specifically for engine and tool developers to contact me with their game development related news.  If you’ve created or updated a product, library, framework, book or engine that you think is newsworthy for indie game developers, please email [email protected] and I will do my best to report it in the timeliest manner possible assuming it is relevant.  GFS gets a quarter million views or more a month composed entirely of full and prospective game developers, so it should be a great place to get the word out. There is of course a fine line between news and spam, which is why I will be keeping this a manual process.


Second, I am going to be setting up a list of resources to monitor and will periodically ( hourly, daily, weekly? all depends how resource intensive this becomes ) check for updates and report them accordingly.  Of course if you run such a project and want the news out, sending it directly to [email protected] is going to have a much faster turn around, especially as the list grows larger and larger!


In the next day or two I will make the first draft of the initial projects I am going to monitor for news.  Of course the coverage that matter is ultimately driven by you, so if there are projects ( some example, Tiled, LibGDX, SFML, Box2D, Lime, Unity, Substance, Maya, Blender, etc ) you want monitored for new releases, be sure to let me know!  Of course too, if there are subjects you absolutely don’t want covered, let me know that too.  Remember I am also going to implement a set of tags such as NEWS_POST and NOT_NEWS_POST, so you can easily filter all of this out if you have no interest at all in being updated on goings on in the gamedev world.


Any and all feedback is appreciated.  I’m working on the initial list as we speak so expect it in the next day or two.  If you are a game tool/engine developer and want to make sure your product is covered or you have news to report, be certain to email me.  If you think this entire idea is barmy and that I’m completely insane, also let me know!


23. October 2015


In a past life in which I sat in a cubicle and someone actually gave me a pay check every week I was a huge fan of Xamarin products.  They do very a good job of enabling .NET developers to leverage their skill across many platforms.  In fact, they are the technology that Unity is built on top off.  That said, I became increasingly less of a fan when the checks stopped and expenses came out of my own pocket!


There are many people out there that view making money from software as somehow evil.  I am certainly not one of those people.  In that corporate environment, where developers are paid salaries, rent is paid for office space, taxes are paid, etc…  the price of a software tool like Xamarin is trivial to justify.  In the world of indie game development though, this is often simply not the case.


Thing is, Xamarin has become a necessary evil for so many C# based game engines ( MonoGame, WaveEngine, Duality, Paradox, etc ) if you want to port to iOS or Android.  Many of these developers will never see a dime from their efforts, while a select few will become massively rich and a certain middle ground will eek out a living doing what they love.  It’s the later two groups that keep companies like Unity and Unreal afloat, and those two groups don’t come into being without the former group.


The challenge with Xamarin has always been their license structure has always been pretty awful for amateur developers.  How many people have chosenn not to work in C# simply because their is a price tag attached?  After years of awaiting a newer friendlier license structure (or Microsoft buyout), hope is on the horizon.


Today, in response to Xamarin’s recent acquisition of RoboVM, I ended up in this Twitter conversation with Nat Friedman, CEO of Xamarin:


First, in regard to the acquisition of RoboVM and how long the free for LibGDX developers offer will be extended:



Then more on the indie friendly nature of Xamarin, or lack thereof:


(Portion excerpted, Twitter message threading is bizarre)




This is news I am certain many C# game developers and tool providers are going to be delighted to hear.  Hopefully something happens fairly soon, as I’ve been waiting about 6 years and counting at this point! ;)

Programming News

AppGameKit Studio

See More Tutorials on!

Month List