Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
15. February 2015


LÖVE, a Lua based game engine I covered wayyyyy back in Battle of the Lua Game Engines and also featured in the game development for kids article, just announced release 0.9.2 just in time for Valentines day.  The announcement follows:


Here are a few big changes and highlights, and the full changelog, as well as download links can of course be found below, and on the wiki and front page respectively.

The full changelog is listed here:
  * Added Lua 5.3's UTF-8 module (via utf8 = require("utf8")).
  * Added Shader:getExternVariable.
  * Added several new canvas texture formats.
  * Added
  * Added
  * Added ParticleSystem:setQuads.
  * Added ParticleSystem:setLinearDamping.
  * Added SpriteBatch:flush.
  * Added
  * Added "mirroredrepeat" wrap mode.
  * Added and
  * Added optional duration argument to Joystick:setVibration.
  * Added love.joystick.loadGamepadMappings and love.joystick.saveGamepadMappings.
  * Added Joint:setUserData and Joint:getUserData.
  * Added Joint:getBodies.
  * Added GearJoint:getJoints.
  * Added Contact:getFixtures and Body:getContactList.
  * Added Body:getWorld.
  * Added Body:getJointList.
  * Added Body/Contact/Fixture/Joint/World:isDestroyed.
  * Added love.mousemoved event callback.
  * Added love.mouse.setRelativeMode and love.mouse.getRelativeMode.
  * Added Scancode enums, love.keyboard.getKeyFromScancode, and love.keyboard.getScancodeFromKey.
  * Added love.window.getDisplayName.
  * Added love.window.minimize.
  * Added love.window.maximize.
  * Added love.window.showMessageBox.
  * Added 'refreshrate' field to the table returned by love.window.getMode.
  * Added love.window.toPixels and love.window.fromPixels.
  * Added love.window.setPosition and love.window.getPosition, and 'x' and 'y' fields to love.window.setMode and t.window in love.conf.
  * Added love.filesystem.isSymlink, love.filesystem.setSymlinksEnabled, and love.filesystem.areSymlinksEnabled.
  * Added love.filesystem.getRealDirectory.
  * Deprecated SpriteBatch:bind and SpriteBatch:unbind.
  * Deprecated all uses of the name 'FSAA' in favor of 'MSAA'.
  * Deprecated the 'hdrcanvas' graphics feature enum in favor of getCanvasFormats.
  * Deprecated the 'dxt' and 'bc5' graphics feature enums in favor of getCompressedImageFormats.
  * Fixed crashes when love objects are used in multiple threads.
  * Fixed love.filesystem.setIdentity breaking in some situations when called multiple times.
  * Fixed the default love.filesystem identity when in Fused mode in Windows.
  * Fixed love.system.openURL sometimes blocking indefinitely on Linux.
  * Fixed love.joystick.setGamepadMapping.
  * Fixed the order of vertices in ChainShapes.
  * Fixed love.mouse.getPosition returning outdated values if love.mouse.setPosition is used in the same frame.
  * Fixed to error when given an invalid size argument.
  * Fixed the filename and backtrace given when errors.
  * Fixed a small memory leak if errors.
  * Fixed shader:getWarnings returning unnecessary information.
  * Fixed some cases of noncompliant shader code not properly erroring on some nvidia drivers.
  * Fixed a potential crash when Shader objects are garbage collected.
  * Fixed a potential small memory leak triggered when errors.
  * Fixed, ...) causing the Mesh to do instanced rendering.
  * Fixed Mesh:getVertexMap.
  * Fixed Image:refresh generating mipmaps multiple times if mipmap filtering is enabled.
  * Fixed Image:setMipmapFilter to not keep bad state around if it errors.
  * Fixed Mesh:setDrawRange when the Mesh has a vertex map set.
  * Fixed internal detection of the 'position' and 'effect' shader functions.
  * Fixed Texture memory leak when Meshes are garbage collected.
  * Fixed the default line join mode to be 'miter' instead of an undefined value.
  * Fixed the default error handler text size when highdpi mode is enabled on a Retina monitor.
  * Fixed the default error handler background color when sRGB mode is enabled for the window.
  * Fixed love.window.setMode to fall back to the largest available mode if a width or height greater than the largest supported is specified and fullscreen is used.
  * Fixed the state of wireframe mode when love.window.setMode is called.
  * Fixed Canvas:getPixel to error if the coordinates are not within the Canvas' size.
  * Fixed detection of compressed textures to work regardless of the file's extension.
  * Renamed all cases of FSAA to MSAA. The FSAA names still exist for backward-compatibility.
  * Updated the Windows executable to automatically prefer the higher performance GPU on nvidia Optimus systems.
  * Updated the --console command-line argument in Windows to open the console before conf.lua is loaded.
  * Updated t.console and the --console command-line argument in Windows to use the existing Console window,if love was launched from one.
  * Updated the love executable to verify that the love library's version matches.
  * Updated the Lua wrapper code for modules to avoid crashes when the module's instance is created, deleted, and recreated.
  * Updated internal code for handling garbage collection of love objects to be more efficient.
  * Updated love's initialization code to trigger a Lua error if love.conf has an error in it.
  * Updated the paths returned by love.filesystem.getSaveDirectory and friends to strip double-slashes from the string.
  * Updated the error message when love.filesystem.write or File:open fails because the directory doesn'texist.
  * Updated the error message when love.math.setRandomseed(0) is attempted.
  * Updated the error message when invalid UTF-8 strings are used in love functions that expect UTF-8.
  * Updated love.physics.newPolygonShape and love.physics.newChainShape to accept a table of vertices.
  * Updated love.physics.newChainShape to error if the number of arguments is invalid.
  * Updated love.thread.newThread to accept a literal string of code directly.
  * Updated love-created threads to use names visible in external debuggers.
  * Updated SpriteBatch:unbind to use less VRAM if the SpriteBatch has the static usage hint.
  * Updated, love.image.newImageData, etc. to leave less Lua-owned memory around.
  * Updated to accept different stack types to push. Current types are "transform" and "all".
  * Updated love shaders to accept GLSL ES precision qualifiers on variables, although they do nothing.
  * Updated the error message for to be less cryptic if an invalid filename is given.
  * Updated compressed texture loading code to allow BC6 and BC7 compressed textures (if the graphics driver supports them.)

And our downloads, also available on the home page are here:


The entire announcement is available on their forums here.  Perhaps most exciting is the 0.10 release, which adds official Android and iOS support.  Features I know many people have been waiting for.  For the record, there are unofficial Android and iOS ports already available.  This move will just make them part of the main distro.  Still a huge development when it happens.


13. February 2015


Nvidia just released version 4.5 of their NSight Visual Studio Edition graphics programming toolkit that I mentioned in the OpenGL resource roundup.


The follow are the major points of this new release:

New NVIDIA® Nsight™ Visual Studio Edition 4.5 Features:

Graphics Debugging and Profiling

  • Expanded OpenGL API support to include the 4.3 core profile features.

  • Added the capability for OpenGL applications to generate source code to replay captured frames outside of the original application. Allows users to compile and rerun the captured frame and share and modify generated code. 

  • Improved performance in Frame Debugger and Analysis Tracing modes by reduction of interception overhead, resulting in better interactivity and improved accuracy of data measurement.

  • Added a new Frame Statistics View that includes call counts for draw calls, dispatches, clears, etc.

  • Added a histogram control to the Resources View to visualize color channels and perform range remapping for visualization.

  • The Memory View can now export data to CSV or binary files.

Compute Debugging and Profiling

  • CUDA 7.0 RC

  • Several bug fixes




NVida Insight is completely free and can be downloaded here.  Obviously Visual Studio is required, but as it is now free that shouldn’t be a big problem.


7. January 2015


It’s most a maintenance release, so the list of new features is fairly sparse:


New Features
  • Phaser.Loader now supports BLOB urls for audio files (thanks @aressler38 #1462)
  • Line.reflect will calculate the reflected, or outgoing angle of two lines. This can be used for Body vs. Line collision responses and rebounds.
  • Line.normalAngle gets the angle of the line normal in radians.
  • Line.normalX and Line.normalY contain the x and y components of the left-hand normal of the line.
  • Line.fromAngle will sets this line to start at the given x and y coordinates and for the segment to extend at angle for the given length.
  • BitmapData.drawGroup draws the immediate children of a Phaser.Group to a BitmapData. Children are only drawn if they have their exists property set to true. The children will be drawn at their x and y world space coordinates. When drawing it will take into account the child's rotation, scale and alpha values. No iteration takes place. Groups nested inside other Groups will not be iterated through.


You can read the complete release notes here.


The release 2.3 milestones are available here.


They also made this announcement regarding version 3:

We're hard at work on Phaser 3. Development on the brand new renderer began in earnest last year and we're already seeing exceptional results from it. You can follow our development in the forum and public repo. Even though we're working on taking Phaser 3 into ES6 and the next generation of web browsers, we haven't stopped with the 2.x branch.


If Phaser sounds interesting to you, of course, Gamefromscratch has an extensive tutorial series available here.

Programming News

23. December 2014


As usual Steam is having a holiday sale, but this year it’s absolutely loaded with game dev tools.



Complete list (as of today) below:

*Note, some asset and packs are not included in the list.  


Graphics Applications and Engines
Leadwerks Game Engine 40% Link
3D Coat 25% Link
Axis Game Factory 75% Link
Substance Bitmap2Material 33% Link
FPS Weapons Pack 33% Link
AGK2 app game kit 2 33% Link
Silo 2 60% Link
Clickteam Fusion 2.5 66% Link
Fuse 66% Link
Indie Graphics Bundle 40% Link
Substance Painter 40% Link
facerig 33% Link
Fuse Clothing Substances Expansion 66% Link
Substance Indie Pack 25% Link
Spriter 50% Link
MangaMaker 60% Link
MindTex 33% Link
RaySupreme 3D 50% Link
GameMaker: Studio Pro 60% Link
RPG Maker VX Ace 60% Link
World Creator 15% Link
Shader Tool 15% Link
Audio and Video Applications
Action! Gameplay Recording and Streaming 40% Link
Z3TA+2 50% Link
Liquid Rhythm 50% Link
Play Claw Game Video Recorder 30% Link
Audio & Music Lab 45% Link
G8 Dynamic Gate 50% Link
Music Creator 6 50% Link
MAGIX Music Maker 2015 Premium 40% Link
Virtual DJ 66% Link
Illustration and Design
openCanvas 20% Link
Black ink 55% Link
Substance Designer 4 40% Link
Art Rage 4 40% Link
articy: draft 2 SE 60% Link
LogoMaker 4 50% Link
You Need a Budget 25% Link
AutoTileGen 50% Link
Wingware Python IDE 30% Link
Movie Writer Pro 40% Link


16. December 2014


Sorry… absolutely can’t resist that pun, no matter how obvious it is.  Anyways… the Godot Game Engine has been on my radar since they announced they were going open source at the beginning of the year.  Today they finally announced their 1.0 release today.godot



Never heard of Godot?  It’s a Unity-esque game engine, except powered by C++ and scripted using a Python-like scripting language.  It includes a surprising number of tools and most importantly, a complete game editor (pictured right).


Godot works in both 2D and 3D, with 2D being a first class citizen, not just 3D minus a D.  Godot runs on Windows, OSX and Linux.  Godot is able to target iOS, Android, Desktops, Googles’ NaCL, PlayStation3 and Vita, as well as HTML5 and Windows Phone coming soon.


You can read the complete feature list here.


You can browse available documentation here.


Godot is an open source project hosted on GitHub.


What do you think… are you interested in Godot, would you be interested in seeing GameFromScratch do some more in-depth coverage now that it’s reached such a milestone release?


GFS On YouTube

See More Tutorials on!

Month List