Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
29. February 2016


HaxeDevelop, an IDE specifically for Haxe development has been released.



HaxeDevelop is sadly a Windows only IDE, and there is a good reason for this.  HaxeDevelop is ultimately a fork of the popular FlashDevelop IDE, which has long been the best IDE for Haxe development.  This fork obviously focuses heavily on Haxe related functionality.  Like FlashDevelop, HaxeDevelop is free and open source.


Some noteworthy features:

Project Managment

HaxeDevelop has built-in support for many workflows.
Of course all Haxe target platforms are integrated. You can also start using frameworks like OpenFL, Lime, Flambe, Kha, HaxeFlixel, Adobe Flash and Adobe AIR with the build-in project templates. You can create, customize and share your own project templates.

HaxeDevelop projects

Navigate in your code

The Outline panel gives you an overview of your code.
Click in the tree to jump in the code or open imported classes. Note that anywhere in your code you can also press F4 to jump to the declaration of the element at cursor position. To jump back, press Shift+F4 (also works after using a code generator).

HaxeDevelop class outline

Compiler integration

The rich type system of the Haxe Compiler in HaxeDevelop.
HaxeDevelop magically combines the Haxe Compiler Completion with the build-in completion service for lightning fast completion. See Haxe compiler errors in the Results panel - double-click on errors to jump to the reported error location.

HaxeDevelop errors and warnings

Organized settings

Tools > Program Settings

Many aspect of HaxeDevelop are configurable.
All program specific settings and the plugins settings are stored in a friendly searchable panel.

HaxeDevelop program settings

Task Panel

View > Task List

Keep track of your project state.
The Tasks panel help you track your project state: see what you have TODO or the BUGs to fix. If these are not enough; you can even add your own custom keywords.

HaxeDevelop task panel

GameDev News

28. February 2016


Released in candidate form a couple weeks back, the Spring RTS engine just released version 101.  Spring is a real-time strategy game for Windows, Mac and Linux that is focused open source game engine.


Release 101 brings:

Lua Feature & Map shaders
It is now possible to set custom shaders for features and map drawing from lua.
Line of Sight refactor
Line of sight calculation performance was greatly improved allowing it to be smoothly updated every simulation frame.
Transports refactor
The hard-coded transport behaviour was tweaked to allow the attachment of any unit to any other unit from lua.
Internal pr-downloader support
An essential step towards in-game lobby, it already allows rapid tags to be used in game dependencies and in start scripts.

Or you can view the new features in action in this video:


More information about Spring is available here.  The C++ source code is available on Sourceforge.

GameDev News

26. February 2016


Marmalade SDK, a popular C++ and Lua based mobile focused game engine, just released version 8.2.1.  Apple platforms certainly were the focus of this release with 3D touch and Watchkit support being the major new features.  For details on the new 3D Touch support, check out this recently released tutorial.


From the release notes:


  • Support for 3D Touch on iOS. See 'Detecting touch pressure' here
  • Support for WatchKit extensions on iOS.
  • Fixed App Store codesigning on PC.
  • Added the ability to control the inclusion of extensions that contain IDFA. This is required by apps that were rejected from the App Store for inadvertently using IDFA. For more details see 'Preparing for binary upload' in the iOS Platform Guide

Changed since 8.2

Marmalade Hub
  • MSDK-2294 Fixed a bug where after cancelling the 'Create Deployment' dialog, a blank deployment page was shown.
  • HUB-236 The Builds list and 'Last Build' were not updated correctly.
  • MSDK-2311 Added ability to view/edit MKB from Hub.
  • HUB-309 Fixed a bug where the log was not visible if something went wrong when opening a project.
  • HUB-314 Could not create a deployment.mkf file with empty mkb.
  • HUB-310 Provide a way to reset deployment settings of a project.
  • HUB-125 Add ability to create multiple builds in the 'Builds' page.
  • HUB-285 Fixed the Hub UI becoming unresponsive when building on Mac OS.
  • HUB-302 Fixed the Configurations tab hanging after cancelling a save operation.
  • MSDK-2317 Company name and publisher entries were not being set.
  • MSDK-2361 Changes to the project's readme file weren't saved.
Marmalade Quick
  • MSDK-2254 Fix issue where removeNode() could not be called multiple times for a given object.
  • MSDK-2265 If createSprite is called using a table, allow xScale and yScale to be defined if relativeScaleX/relativeScaleY are not given.
  • MSDK-2276 Fix OSDateCallParam lunary test on OS X.
  • MSDK-2280 Fix issue where QNode:setParent() was not setting the object in question as a child of the target.
  • MSDK-2265 Fix Lunary test code to pass on PC.
Platform Abstraction
  • s3ePointer (MSDK-2208) Implemented support for reporting touch pressure using s3ePointer events. Currently supported on selected iOS devices with 3D Touch technology (iPhone 6S/6S Plus) and iPad Pro with Apple Pencil. See Detecting inputs for more information on detecting touch pressure.
  • IwAnalytics (MSDK-2302) Deprecate IW_ANALYTICS_EXCLUDE_IDFA_SUPPORT - use new DISABLE macro S3E_EXT_IOSIDENTIFIERS_DISABLE_ON_IPHONE instead. (Remove need to recompile the iwanalytics module to switch behaviour).
  • HUB-311 Implemented support for 3D Touch App Shortcut actions (currently supported on iPhone 6S and iPhone 6S Plus) through news3eIOSAppShortcut extension.
  • MSDK-2309 Re-implementation of fix for issue in iOS Native Debug with space in the project name.
  • MSDK-2264 Fix for "invalid signature" error during App Store submissions when building on PC.
  • MSDK-2330 Updated WKWebView interface in s3eWebView to reflect standard ARC changes in UIWebView.

  • MSDK-2338 Fixed a regression with stack sizing issues which caused crashes on secondary threads due to stack overflow. The crux is that the default for the deployment option SysStackSizePlatform had changed from 0 to 128k. It has been changed back to 0 to get the system default stack size. One manifestation was that s3eAudioPlayFromBuffer crashed on different thread on Android.

  • MSDK-2355 Removed spurious warning: "The target name is different across different builds of the project" when building a middleware module or extension with Visual Studio 2015 in Android Native mode.
  • MSDK-2286 Minor fix to prevent potential crash in s3eAndroidGooglePlayBilling extension on some devices.
Windows Desktop
  • MSDK-2176 Fixed issue with Alt-F4 being ignored as a quit request when in fullscreen mode.
  • MSDK-2334 Fixed regression in snprintf (and friends) in vc11 and vc12 builds where passing 0 for size would cause stack corruption or a crash
  • s3eIOSWatch (MSDK-1255) Introduced s3eIOSWatch extension for data exchange between Marmalade apps and WatchKit 1.0 style app extensions (Apple Watch apps). See iOS specific functionality and tips for more information.
  • s3eFacebook (MSDK-2210) iOS extension can now provide app activation analytics data to Facebook if EnableAppEvents ICF option is enabled.
  • s3eGameCenter (MSDK-2209) Introduced a function to list multiple GameCenter achievements at the same time. Enabled control of achievement completion banner from updated s3eGameCenter example.
  • MKB System (MSDK-2289) Fixed a bug where an empty file group [] or [""] in a 'files' block in an mkb file would cause an invalid Xcode project to be emitted.
  • EDK (MSDK-2307) Support DISABLE macros on a subset of extensions in the SDK - those used by prebuilt Quick engine and those that use IDFA on iOS.

GameDev News

25. February 2016


Another week, another Unity patch.  This one is actually pretty meaty in the fix category, about twice as many fixes as usual, which I have to assume is a good sign.

From the release notes:

  • Metal: Add -force-metal switch to force Metal rendering on OSX/iOS.
  • Editor: Added warning dialog if there is any version difference between editor started and last project save.
  • Unity Ads: Updated to 1.5.6.
  • (756851) - Animation: Fixed an error where the enabled property could not be animated on lights using the Animation component.
  • (765367) - AssetBundles: Removed sync load from AssetBundleRequest. Improves load times when doing multiple consecutive async loads from asset bundles.
  • (759869) - Code Stripping: Problems with use of UnityWebRequest when "Strip Engine Code" player setting is disabled has been fixed.
  • (none) - Editor: Changed the "Module Manager" button to "Open Download Page", in Build Settings, for missing playback engines.
  • (753114) - Editor: Fixed "TLS Allocator ALLOC_TEMP_THREAD ..." messages in console when saving a scene.
  • (755096) - Editor: Fixed being unable to drag and drop components we are not expandable (such as the 'audio listener').
  • (759058) - Editor: Fixed missing foldout arrows in Lighting Window.
  • (763306) - Editor: Now show detail alert information to user when their account get locked out.
  • (743678) - ETC1: Fixed ETC1/Alpha split not working with the default sprites shader.
  • (768086) - iOS/Video: Fixed an issue with videoplayer crashing on iOS 7 when exiting playback.
  • (759894) - iOS: Added a functionality to filter out emoji characters from the virtual keyboard.
  • (760747) - iOS: Fixed a crash triggered by deactivating an input while app is going into background.
  • (759480) - iOS: Fix for WWWConnection deadlock.
  • (765578) - iOS: Move callback methods to another thread as to not block main thread when streaming assets.
  • (761361) - iOS: Notify Transport that we finished receiving data so we can mark the buffer as complete when we get an error.
  • (759529) - JsonUtility: Fixed a crash when serializing very large arrays/lists.
  • (769065) - Mono: Fixed an issue with a game hanging when calling Socket.Accept() (Windows).
  • (767741) - Mono: Fixed a socket communication issue with IPv6 networks.
  • (none) - OpenGL: Fixed a crash on compute shader linking failure.
  • (712948) - OSX: Fixed an issue where text was pasted twice in input fields in the Standalone Player.
  • (716264) - Physics: Fixed HingeJoint setup issue when changing isKinematic property on attached Rigidbody.
  • (753846) - Physics: Prevent Collider recreation when setting isKinematic; therefore, OnTriggerExit/Enter are not triggered unnecessarily.
  • (770926) - Scripting: Fixed issues with Scriptable objects added as sub assets with AssetDatabase.AddObjectToAsset.
  • (none) - Scripting: Fixed registration of Shuriken icalls under Mono AOT.
  • (766349) - Serialization: Fixed crash in JsonUtility when deserializing arrays of classes or structs on .NET scripting backend.
  • (none) - Shaders: Fixed a potential editor crash if shader compiler failed to disassemble a shader.
  • (752250) - Shaders: Fixed an editor crash on shutdown if the shader compiler had previously crashed.
  • (770272) - tvOS/Video: Clicking menu button while on video playback could cause view to exit but Unity player to remain paused.
  • (733936) - UI: All struct value types now use iEquatable to prevent memory allocations.
  • (734023) - UI: Fixed an issue where setting canvas scaler to zero would cause a out of memory exception.
  • (739405) - UI: Fixed an issue where text glyphs would be truncated if any texture filtering occurred.
  • (740297) - UI: Fixed an issue where UnityEvent wouldn't allow the removal of events after reload.
  • (733760), (727436) - UI: Fixed an issue with Masking when enabling and disabling graphics.
  • (736717) - UI: If the mask is disabled we should use the baseMaterial instead of the masking material.
  • (none) - UI: If the UI shader is not found the default "pink" shader will be used.
  • (704782) - UI: Make sure FontUpdateTracker get called for tracking fonts changed in the inspector.
  • (711719) - UI: Make sure InputEvents are sent when IME composition strings are updated in Windows Standalone.
  • (745015) - UI: Removed special case ascent calculation for non-dynamic fonts.
  • (727512) - UI: The UI batching grid size is not deterministic based on canvas/ element size.
  • (none) - UI: Use GetRayIntersectionAll in Physics2DRaycaster to get more accurate results.
  • (738986) - UI: When updating rectTransform data make sure comparisons are against old value not the set value.
  • (none) - VR: Fixed Camera tracking poses being different for each camera in the scene during the same frame.
  • (none) - VR: Fixed eye buffer masking even when the Camera's targetEye is none. (Oculus SDK 1.0+).
  • (734549) - VR: Fixed stereoMirrorMode Judder in the right eye.
  • (none) - Windows Store: Fixed graphics driver crashing on Adreno 225, 305 and 330 GPUs when shadows are enabled with Universal 10 SDK. Shadows are now forcefully disabled by unity when running on devices with these GPUs as it has been the case with previous Windows Store SDKs already.
  • (none) - Windows Store: Fixed plugins that are marked are only UWP compatible to be only included in UWP builds
  • (none) - Windows Store: fixed texture sampling on Adreno 225 GPU when texture height is 1 pixel.

GameDev News

24. February 2016


I love C#, probably my favourite general purpose programming language at the end of the day.  In the early days however, C# was heavily tied to Microsoft’s ecosystem.  Then a little company named Ximian created a Mono, an open source implementation of C#.  At first the relationship between Microsoft and Ximian (and Microsoft and Open source in general… ) was not… great.


Since then, a ton has happened…  Microsoft became more open source friendly.  Ximian was acquired by Novell, then eventually spun off as an independent known as Xamarin and Mono has gone on to become the technology powering basically every single C# powered non-Microsoft title, including being the runtime behind the popular Unity game engine.  For years I’ve assumed Microsoft would buy Xamarin, especially as their relationships became cosier and cosier.  Heck I last mentioned an MSFT buyout when Xamarin bought RoboVM.  It just made so much sense to happen…


And it finally did!  From Scott Gu’s blog announcement:

As the role of mobile devices in people's lives expands even further, mobile app developers have become a driving force for software innovation. At Microsoft, we are working to enable even greater developer innovation by providing the best experiences to all developers, on any device, with powerful tools, an open platform and a global cloud.

As part of this commitment I am pleased to announce today that Microsoft has signed an agreement to acquire Xamarin, a leading platform provider for mobile app development.

In conjunction with Visual Studio, Xamarin provides a rich mobile development offering that enables developers to build mobile apps using C# and deliver fully native mobile app experiences to all major devices – including iOS, Android, and Windows. Xamarin’s approach enables developers to take advantage of the productivity and power of .NET to build mobile apps, and to use C# to write to the full set of native APIs and mobile capabilities provided by each device platform. This enables developers to easily share common app code across their iOS, Android and Windows apps while still delivering fully native experiences for each of the platforms. Xamarin’s unique solution has fueled amazing growth for more than four years.

Xamarin has more than 15,000 customers in 120 countries, including more than one hundred Fortune 500 companies - and more than 1.3 million unique developers have taken advantage of their offering. Top enterprises such as Alaska Airlines, Coca-Cola Bottling, Thermo Fisher, Honeywell and JetBlue use Xamarin, as do gaming companies like SuperGiant Games and Gummy Drop. Through Xamarin Test Cloud, all types of mobile developers—C#, Objective-C, Java and hybrid app builders —can also test and improve the quality of apps using thousands of cloud-hosted phones and devices. Xamarin was recently named one of the top startups that help run the Internet.

Microsoft has had a longstanding partnership with Xamarin, and have jointly built Xamarin integration into Visual Studio, Microsoft Azure, Office 365 and our Enterprise Mobility Suite to provide developers with an end-to-end workflow for native, secure apps across platforms. We have also worked closely together to offer the training, tools, services and workflows developers need to succeed.

With today’s acquisition announcement we will be taking this work much further to make our world class developer tools and services even better with deeper integration and enable seamless mobile app dev experiences. The combination of Xamarin, Visual Studio, Visual Studio Team Services, and Azure delivers a complete mobile app dev solution that provides everything a developer needs to develop, test, deliver and instrument mobile apps for every device. We are really excited to see what you build with it.

We are looking forward to providing more information about our plans in the near future – starting at the Microsoft //Build conference coming up in a few weeks, followed by Xamarin Evolve in late April. Be sure to watch my Build keynote and get a front row seat at Evolve to learn more!


This announcement is huge.  Expect Xamarin technology to quickly become free and fully integrated in Visual Studio.  Expect Unity to eventually get a version of C# that isn’t from the stone age.  Put simply, expect the usage to C#, especially in the mobile space, to absolutely explode!


I’ve been waiting a decade for this news!  I look forward to seeing exactly how all of this plays out.

GameDev News Programming

GFS On YouTube

See More Tutorials on!

Month List