Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

22. May 2018


The Defold engine just received a new release, 1.2.128.  This release is primarily composed of fixes, however Spine functionality now supports runtime skin as well as the ability to send GUI messages.  If you are new to Defold, be sure to check out our complete tutorial series available here.


Details of the release from the release notes:

Engine

  • DEF-3188 - Added: API to change Spine skin slots dynamically.
  • DEF-3056 - Added: Spine events in GUI scripts.
  • DEF-3279 - Added: Total resource sizes in the resource profiler.
  • DEF-3286 - Fixed: Added fix for null access in rare cases after calling iap.restore() on Android.
  • DEF-3283 - Fixed: WebAudio on HTML5 start on first mouse/touch interaction.
  • DEF-3198 - Fixed: HTML5 bug where clicks were not caught if canvas wasn’t selected.
  • DEF-3281 - Fixed: Sprite can now use 32-bit index buffers (which means each collection can have more than 16k sprites).
  • DEF-3277 - Fixed: Profile port 8002 may fail on certain network conditions.
  • DEF-2191 - Fixed: Memory leak in callbacks for models, particlefx and spine.

Editor 2

  • DEFEDIT-1354 - Fixed: Lost layout overrides after reordering Gui nodes.
  • DEFEDIT-1373 - Fixed: Font resources will now use all available processor cores to generate bitmaps.
  • DEFEDIT-1381 - Fixed: Assets tree refreshes faster in projects with many dependencies on Windows.
  • DEFEDIT-1387 - Fixed: Spine/Model animations sometimes sample outside of timeline data.
  • DEFEDIT-1388 - Fixed: File extensions are no longer case sensitive in the editor.
  • DEFEDIT-1391 - Fixed: The compile phase will now use all available processor cores when building.
  • DEFEDIT-1394 - Fixed: Script errors report line numbers when building.

GameDev News

18. May 2018


It’s not very often a game engine takes me completely by surprise.  Especially a full featured, open source, C++ based, cross platform, heavily documented, feature rich, high performance 3D game engine.  Well that’s exactly what happened with the G3D Innovation Engine.  The primary maintainers are Morgan McGuire (@CasualEffects) who is currently an educator as well as a VR scientist at NVIDIA and previously worked on games such as Skylanders, Titan Quest and the Unity game engine, as well as Michael Mara at Standard University and Oculus Research.

The G3D Engine is self described as:

The G3D Innovation Engine is a commercial-grade C++ 3D engine available as Open Source. ss

G3D supports hardware accelerated real-time rendering, off-line rendering like ray tracing, and general purpose computation on GPUs. Its design emphasizes rapid prototyping and innovation, particularly of rendering and game algorithms.

G3D provides a set of routines and structures so common that they are needed in almost every graphics program. It makes low-level libraries like OpenGL, network sockets, and audio channels easier to use without limiting functionality or performance. G3D is a carefully designed, feature-rich base on which to prototype your 3D application.


Beyond being a capable engine it is also an incredible learning resource.  The engine is bundled with over 6GB of assets to experiment with, as well as over a dozen robust ss2samples with thoroughly documented source code.  One of the samples is even a full blown first person shooter, while another demonstrates a Minecraft-esque voxel based level.  There are also examples that show you how to work at the lowest level directly with OpenGL as well as advanced examples showcasing functionality such as real-time raytracing, lighting effects, procedural geometry and even VR.

Additionally each example can easily embed a suite of tools directly, enabling you to screen shot or video capture, change camera settings on the fly or launch the built in profiler.  There is even a complete scene editor built in, allowing you to place entities directly in your scene via simple drag and drop, turning your application into a minimalistic level editor.


Remember back at the beginning I mentioned that the maintainer was also an educator?  He has also authored a companion called the Graphics Codex which goes hand in hand with the G3D game engine.  For a mere $10 you gain access to an advanced reference that may just be one of the single best ways of learning computer graphics GIF2topics such as ray casting, BSDF, rendering and more.  You can see a full chapter list here.  So if you are trying to learn more advanced graphics programming, G3D is certainly a great resource.  Keep in mind however, this material was used with a 300s level graphics course, so you are going to need a solid foundation in math to follow along.

Purchasing the Graphics Codex is by no means a requirement however.  One thing open source projects often suffer from is poor documentation.  Thankfully this certainly isn’t the case with the G3D engine.   There is an extensive manual available here, as well as a comprehensive set of API references.  As mentioned earlier, the engine is also loaded with well documented samples.

If you are looking for a low level foundation to build your game on, a framework to do some graphical experiments or simply are looking for a way to learn more about modern graphics programming, I can think of little reason not to suggest checking out the G3D Innovation Engine. 


If you are interested in learning more about the G3D Innovation Engine, be sure to check out our hands-on video available here and embedded below.  I am almost certain you will be amazed.

GameDev News, Programming , ,

18. May 2018


The first revision of Unity 2018 has been released.  This update is composed entirely of bug fixes and is considered production ready.


Details from the release notes:

Fixes
  • Editor: Fixed content drawn with OnSceneGUI not looking correct and consistent whether the project color space is Gamma or Linear.(1018625)
  • Player: Fixed imbalanced platform profile markers in user scripts. (1005409)
  • Web: Fixed crash when aborting AssetBundle download using UnityWebRequest. (1017468)
  • Particles: Improved logic for when Automatic Culling can be used with non-randomized emission. (991235)
  • Particles: Fixed particle collision not being detected when Particle System used negative scale. (985049)
  • Particles: Fixed particles occasionally flickering when they have a random start life time and sort mode was set to Youngest or Oldest in front. (988874)
  • Particles: Fixed prefabs with a ParticleSystem creating duplicate entries into its serialization after each modification. (989631)
  • Particles: Fixed particles/alpha blended material inverting colors of other blended objects, when using HDR. (967476)
  • Editor: Fixed PresetLibraries classes not being handled correctly by the Preset UI and will be excluded at the moment. (1020017)
  • Editor: Foxed closing the Create new Preset window logging a Layout error in the console. (1022087)
  • XR: Fixed XR.WSA.WorldManager.OnPositionalLocatorStateChanged() not getting called when state changes back to active.


You can download the release here.

GameDev News

16. May 2018


OpenFL, the cross platform low level media framework library for the Haxe programming language, just released version 8.1.  The biggest feature by far in this release is beta support for the ActionScript 3.0 language.  This is a strangely karmic release as the FL in OpenFL stands for Flash and ActionScript is the ECMAScript derived scripting language used to program in Flash.  OpenFL is the underlying technology used to create a number of games including the popular indie hit Papers Please.


Details of the release from the OpenFL forum:

OpenFL 8.1 is here, and introduces beta support for ActionScript 3.0 as a source language!

We’d love additional feedback on how we can improve the workflow in our samples.

To get started, enter any of the samples, run npm install then npm start.

We expect to continue to work with Apache Royale until we can bring the workflow up to par with our other supported source languages on NPM (Haxe, TypeScript, ES5 JavaScript, ES6 JavaScript).

Thanks for your support, feedback and help!

OpenFL 8.1 is available on both NPM and Haxelib. Though this is primarily an NPM feature-based release, there are some minor fixes for the Haxelib release as well


You can learn more about OpenFL at the OpenFL homepage.

GameDev News

16. May 2018


Since the release of Phaser 3.0 earlier this year, the HTML5 game framework has seen a rapid succession of updates.  Today Phaser 3.8.0 was released, this release focusing heavily on the plugin system, making it easier to acquire and ultimately use them in your game.  This release also enables you to provide your own already created WebGL context when initializing Phaser.  Of course the release is also packed with other smaller fixes, features and improvements.


Further details from the change log:

New Features
  • You can pass in your own canvas and context elements in your Game Config and Phaser will use those to render with instead of creating its own. This also allows you to pass in a WebGL 2 context. Fix #3653 (thanks @tgrajewski)
  • WebGLRenderer.config has a new property maxTextures which is derived from gl.MAX_TEXTURE_IMAGE_UNITS, you can get it via the new method getMaxTextures().
  • WebGLRenderer.config has a new property maxTextureSize which is derived from gl.MAX_TEXTURE_SIZE, you can get it via the new method getMaxTextureSize()
  • WebGLRenderer has a new property compression which holds the browser / devices compressed texture support gl extensions, which is populated during init.
  • When calling generateFrameNames to define an animation from a texture atlas you can now leave out all of the config properties and it will create an animation using every frame found in the atlas. Please understand you've no control over the sequence of these frames if you do this and it's entirely dictated by the json data (thanks @Aram19)
  • The keycodes for 0 to 9 on the numeric keypad have been added. You can now use them in events, i.e. this.input.keyboard.on('keydown_NUMPAD_ZERO') (thanks @Gaushao)
  • All Game Objects have a new method setRandomPosition which will randomly position them anywhere within the defined area, or if no area is given, anywhere within the game size.
Updates
  • Game.step now emits a prestep event, which some of the global systems hook in to, like Sound and Input. You can use it to perform pre-step tasks, ideally from plugins.
  • Game.step now emits a step event. This is emitted once per frame. You can hook into it from plugins or code that exists outside of a Scene.
  • Game.step now emits a poststep event. This is the last chance you get to do things before the render process begins.
  • Optimized TextureTintPipeline.drawBlitter so it skips bobs that have alpha of zero and only calls setTexture2D if the bob sourceIndex has changed, previously it called it for every single bob.
  • Game.context used to be undefined if running in WebGL. It is now set to be the WebGLRenderingContext during WebGLRenderer.init. If you provided your own custom context, it is set to this instead.
  • The Game onStepCallback has been removed. You can now listen for the new step events instead.
  • Phaser.EventEmitter was incorrectly namespaced, it's now only available under Phaser.Events.EventEmitter (thanks Tigran)
Bug Fixes
  • The Script File type in the Loader didn't create itself correctly as it was missing an argument (thanks @TadejZupancic)
  • The Plugin File type in the Loader didn't create itself correctly as it was missing an argument.
  • WebAudioSoundManager.unlock will now check if document.body is available before setting the listeners on it. Fixes old versions of Firefox, apparently. #3649 (thanks @squilibob)
  • Utils.Array.BringToTop failed to move the penultimate item in an array due to an index error. Fix #3658 (thanks @agar3s)
  • The Headless renderer was broken due to an invalid access during TextureSource.init.
  • Animation.yoyo was ignored when calculating the next frame to advance to, breaking the yoyo effect. It now yoyos properly (thanks Tomas)
  • Corrected an error in Container.getBoundsTransformMatrix that called a missing method, causing a getBounds on a nested container to fail. Fix #3624 (thanks @poasher)
  • Calling a creator, such as GraphicsCreator, without passing in a config object, would cause an error to be thrown. All Game Object creators now catch against this.


If you are interested in learning Phaser 3, be sure to check out our Getting Started video, also embedded below:

GameDev News

Month List

Popular Comments