Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon Join the GFS Discord Server!
31. December 2017

The Ogre 3D open source renderer just released version 1.10.11, the final version before moving on to 1.11 releases that will allow for changes that breaks the existing API.  Ogre 1.10 received several new features including PBR (Physically Based Rendering), a pre-compiled Android SDK option, improved RTSS (real-time shading system) as well as improved logging.

Full details of the release from the release notes:

  • Main
    • allow creating camera without a RenderSystem
    • allow passing point size & attenuation via AutoParamDataSource
    • VertexPoseKeyFrame: fix typo in iterator that broke exporting
    • Fix OgreBillboardChain element counting (#607)
    • forward useShadowBuffer setting in VertexData::reorganiseBuffers
    • Log - add LML_WARNING and color output if on xterm
    • use new logging facilities for better output
    • reset TextureProjector on destroyShadowTextures
    • SkyBox - avoid index by using triangle strip
    • Unified Program - log if we are delegating to wrong program type
    • HardwareBuffer: _updateFromShadow - use HBL_WRITE_ONLY
    • do not register duplicate resource that supposed to be ignored
    • Use std::unordered_xxx #if OGRE_USE_STD11
    • Since VC++ 10.0 aka 2010 std::hash is made available in tr1 namespace via using-declaration, we can use it directly without ABI breakage
    • Since VC++ 11.0 aka 2012 std::unordered_xxx are made available in tr1 namespace via using-declaration, we can use them directly without ABI breakage
    • deprecate CompositionTargetPass::PassIterator
    • deprecate HardwareBuffer::UploadOptions
    • RenderSystem - deprecate legacy FFP PointSprite API
    • CompositionTechnique: deprecate TargetPass & TextureDefinition
    • KeyFrame - deprecate getPoseReferenceIteratorIterators
    • generate deprecation warning on using Any::isEmpty
  • CMake
    • Add Win10 SDKs to DX11 search script
    • Android Build SampleBrowser library using CMake instead of android makefiles
    • Bugfix: FindDirectX11 would fail to detect old DX SDK June 2010 + MSVC 2008 + Windows 8. Other combinations may also not be working.
    • enable ETC and disable FreeImage by default
    • Do not use the new DX SDKs when building for MSVC 2008.
    • FindDirectX11: Try harder to find DX11 SDK as part of Modern SDK, use version passed by CMake or highest available, search in standard and obtaines from registry location, restored support for ARM and ARM64 library archs.
    • Fix feature summary
    • the debug/ release split is a win32 thing and annoying elsewhere. Remove on other platforms.
  • Bites
    • ApplicationContext - query Cg availability at runtime
    • CameraMan - try to replicate the camera configuration
  • RTSS:
    • add AssignmentAtom for simple "a = b;" statements
    • avoid sorting function atoms by using a map of groups - deprecate obsolete internalOrder parameter
    • decide isProgrammable per pass and not per technique
    • FFPTexturing - implement texturing of point sprites
    • FFPTransform - set the point size in shader
    • GLESProgramWriter - fix call to StringUtil::replaceAll
    • GLSL - directly rename params instead of using a rename map
    • GLSL - factor out writeFunctionDeclaration
    • GLSL - globally forbid assignment to "in" and remove local hacks
    • GLSLProgramWriter - reuse the normal swizzling path
    • GLSLProgramWriter - skip parameter names in forward declarations
    • GLSLProgramWriter - small refactoring of writeMainSourceCode
    • port FFPColour and FFPLighting to addAtomAssign
    • SampleLib_ReflectionMap - drop now obsolete flip for GL
    • ShaderGLSLESProgramWriter - remove unused FunctionVectorIterator
    • ShaderParameter always include decimal point for float values
    • use overloading to create const parameters. Deprecate old way.
    • deprecate FFP_FUNC_ASSIGN
    • derive GLSLES program writer from GLSL writer to share code
    • NormalMapLighting - derive from PerPixelLighting to share code
  • Java: generate Ogre jar
  • GL: remove arbitrary point attenuation factor
  • GL3Plus
    • correctly handle reading from HBU_WRITE_ONLY buffers
    • Hardware*Buffer::copyData - also update ShadowBuffer
    • HardwareBuffer - drop superficial glFlushMappedBufferRange
    • respect useShadowBuffer setting - fixes bboxes with HW skinning
  • GLES2
    • enable RSC_MAPBUFFER for GLES3 at runtime
    • hardware based locking requires EXT_map_buffer_range
    • HardwareBuffer - drop superficial glFlushMappedBufferRange
    • prevent crash on shutdown
    • GLSLESProgram: fix overloaded-virtual
  • GL*
    • simplify reading/ writing to shadow buffers
    • slightly clean up EGL/WIN32
    • update EGL implementation for Win32
  • D3D11: Use DXGI_SWAP_EFFECT_FLIP_DISCARD if all stars are aligned: Win10 SDK && Win10 runtime && useFlipMode = true
  • D3D9:
    • compatibility with USE_STD11 and THREADS=3
    • fix wrong operator precedence in _canAutoGenMipmaps
  • Terrain
    • properly handle loading in synchronous mode
    • Do not remove terrain instance if it's being processed in the background thread. (#587)
  • HLMS
    • correctly set blendFactor & set to replace by default
    • not finding template (parts) is an error
  • XMLConverter: fix errors in the DTD
  • Samples
    • add PBR demo based on the glTF2.0 reference implementation
    • force strip SampleBrowser library on android
    • ShaderSystem - correctly enable reflection map SRS on GL
    • Shadows - fix wrong material name for MAT_DEPTH_FLOAT
    • Shadows - simplify material script and code
    • SkeletalAnimation - make sure vertex buffers are readable
    • Media: upgrade meshes to latest format to silence warning
  • Tests
    • extend MeshSerializer tests to pose animations
    • add DTD validation tool for XMLConverter output and run it on CI
    • convert SceneQuery VTests to unit tests
    • correct case for UniqueModel skeleton in strict mode
    • fix building on old MSVC
    • gtest - silence tr1 deprecation warning for VS2017
    • improve MeshLodTests.LodConfigSerializer test
    • PlayPen_PointSprites - correctly configre pass
    • RootWithoutRenderSystemFixture - HBM must be deleted after Root
    • PlayPen_PointSprites: adapt point size parameter again
    • PlayPen_StencilShadows*: use modulative shadows
    • VTests: allow test to pass if SSIM > 0.999
    • VTests: more tests work on all GL RS by now
    • PlayPen_TransparencyMipMaps - use correct pass for second TU
  • Docs
    • fix duplicate labels and override typo
    • fix parsing of GLSupport/GLSL and GLES2 classes
    • further improve the RTSS tutorial (referencing examples)
    • improve RTSS and HLMS tutorials
    • OgreShadows - use actual code and drop obsolete tex file
    • port "Shadow Mapping in Ogre" to doxygen
    • RTSS - document all currently available material attributes
    • RTSS - reference normal_map_space descriptions
    • Bites: document all keys handled by AdvancedRenderControls

You can learn more about the release here.  Ogre3D is free and open source and can be downloaded here.

GameDev News

21. December 2017

With the release of C# support in Godot people are naturally going to want to use Visual Studio Code for their development.  This guide is going to walk step by step through the process.  It’s important to note that debugging is currently not supported.

Before continuing it is assumed that you are running Godot 3 Beta for Mono (or newer).  Also be sure to have a most recent version of Visual Studio Code installed.

If you haven’t already, be sure to install the C# extension in Visual Studio.


Next in Godot, let’s configured Visual Studio Code as our external editor.  Select Editor –> Editor Settings


Select Mono->Editor, then drop down External Editor and select Visual Studio Code.


Now when you edit a CS file in Godot, it will automatically open in Visual Studio Code.  Assuming you did the C# extension, you should get full intellisene, code completion, etc.

You now have two options, you can simply edit your code save it, then run from within Godot.  Or you can run directly from the terminal within VS Code.  In the terminal ( Ctrl + ‘ ) enter first the path to your Godot executable, as well as the scene you wish to run.  In my case:

D:\dev\Godot_v3.0-beta1_mono_win64\Godot_v3.0-beta1_mono_win64.exe Node.tscn

This should then execute your scene.

Of course, doing this over and over is going to get old quick, so why don’t we define it instead as a Task.  In Visual Studio Code select Tasks->Configure Task:


Next select Open tasks.json file


Now enter the following:

    // See
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
            "label": "run Godot",
            "type": "shell",
            "command": "D:\\dev\\Godot_v3.0-beta1_mono_win64\\Godot_v3.0-beta1_mono_win64.exe Node.tscn",
            "problemMatcher": []

Be sure of course to set the path to your directory in the command setting.  Also notice the slashes are escaped using double slashes \\.  You can now run this via the palette.  Ctrl + Shift + P then enter Run Task


You should now have your newly created task available:


Again, doing this over and over again also gets old, so lets define a hotkey.  Choose File->Preferences->Keyboard Short Cuts.  Click the keybindings.json link:


Now enter

// Place your key bindings in this file to overwrite the defaults
		"key": "ctrl+G",
		"command": "workbench.action.tasks.runTask",
		"args": "run Godot"

This will cause your scene to run when you hit the Ctrl + G hotkey.


20. December 2017

Apple recently required all developers on the App Store submit their apps in 64-bit or be subject to removal.  Google have just announced similar, but less draconian measure for their own Google Play store.  Details of the new requirements from the Android Developer Blog:

  • In the second half of 2018, Play will require that new apps and app updates target a recent Android API level. This will be required for new apps in August 2018, and for updates to existing apps in November 2018. This is to ensure apps are built on the latest APIs optimized for security and performance.
  • In August 2019, Play will require that new apps and app updates with native libraries provide 64-bit versions in addition to their 32-bit versions.
  • Additionally, in early 2018, Play will start adding a small amount of security metadata on top of each APK to further verify app authenticity. You do not need to take any action for this change.

We discuss the change in this video in more detail.

GameDev News

20. December 2017

Yesterday a new public release of the Lua powered cross platform Corona game engine was released, version 2017.3184. New features of the Corona engine include:

  • native builds now supported on Windows using Android Studio
  • iOS 11.2 now the default SDK for iOS builds
  • iPhone X support and several new iOS functions
  • new welcome window with recent projects and quick launch commands
  • Windows live server now supports Bonjour 2 and 3
  • gradient paint in arbitrary directions
  • re-written Windows text renderer
  • now supports the latest Java, updated to use 64 bit Java
  • Android support plugins updated

You can download the newest version of Corona here.

19. December 2017

The next major release of the Unity game engine is here, 2017.3.  New features of this release include 360 degree videoUnity20173 skybox support, new code organization functionally via assembly definition, transform gizmo improvements, XBox One X support, many graphics improvements and more.

New features in this release include:

  • 360 video
  • Cloth improvements
  • Cinemachine Improvements
  • New Transform Tool
  • Particle System improvements
  • Standard Particle Shaders
  • Assembly Definition Files
  • 32 bit Mesh Index Buffers
  • GPU Instancing improvements
  • Dynamic Resolution
  • Async Compute Runtime
  • Crunch Compression Library Update
  • Xbox One X Support
  • Recorder
  • Standard Events
  • Progressive Lightmapper improvements (Preview)

You can learn more about the release here, view the full release notes here and Unity can be downloaded here.

GameDev News

AppGameKit Studio

See More Tutorials on!

Month List