Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

7. December 2016

 

Following fast on the release of Unity 5.5, Unity 5.5.0P1 was just released.  As always the patch is available for download here.  As should be expected after a new major release, there are a number of fixes and improvements in this patch.

 

Improvements
  • Graphics: An assert message is now shown in the console for platforms that don't support linear rendering with OpenGL ES API.
  • macOS/iOS/tvOS: Enhancement to allow developers to use Xcode's manual signing paradigm by specifying a provisioning profile in Player Settings.
  • Metal: Improved handling of transparent rendering after post-opaque image effects when using MSAA.
  • Shaders: Optimized in-editor import, load time and memory usage for shaders with massive amounts of potential variants.
  • Unity Ads: Updated native binaries to version 2.0.6.
Changes
  • (855550) - Test Runner: Removed script templates for test runner (as it is not released).
Fixes
  • (833396) - AI: Fix for "!InCrowdSystem" and "!handle.IsValid()" errors seen in console when calling Warp and enabling a disabled NavMeshAgent.
  • (854739) - Android: Fixed auto-rotation on Android 4.1 and older.
  • (845646) - Android: Input.backButtonLeavesApp = true now exits gracefully.
  • (824462) - Android: The platform setting for Android plugins now defaults to "Android" instead of "Any Platform".
  • (793711) - Asset Import: Fixed an issue where deleting asset labels manually from .meta files would not be picked up by the editor.
  • (668043, 837519) - Asset Pipeline: Fixed an issue where asset and timestamp maps could get out of sync.
  • (741525) - AssetBundles: Fixed redundant asset bundles rebuild when external dll changes.
  • (853618) - Build Pipeline: VR Splash Screen texture will no longer be included when building a project for a non-VR platform.
  • (836131) - Collab: Fixed case of sign-in window getting stuck when launched from the toolbar menu.
  • (791434) - Core: Fixed hangs in the job system when running on certain platforms with a low number of cores e.g. older Windows Phones, UWP dual core machines.
  • (849022) - Editor: Fixed case of some properties being set to a single value when entering multi select mode for Trails and Lines.
  • (849138) - Editor: Fixed disappearing tab when closing 3 or more of them successively.
  • (857037) - Editor: Fixed NullReferenceException when undocking preview window.
  • (833866) - Editor: Tweaked the output of the generated Visual Studio solution file to better match Visual Studio standard format, in order to fix problems opening Unity generated projects with Rider GUI.
  • (805221, 605171) - Graphics: Disabled GPU skinning on GL and GLES based graphics APIs for desktop & mobiles.
  • (821298) - Graphics: Fix to ensure that ETC1 alpha split option only shows for ETC1 4bit format in texture importer.
  • (846989) - Graphics: Fixed a crash during shutdown when using the DX9 graphics API.
  • (829120) - Graphics: Fixed a problem where the Windows standalone would appear on a different display from that selected in the game launcher.
  • (840897) - Graphics: Fixed a problem with objects not rendering after resolution changes or entering/exiting fullscreen when using DX9 graphics API.
  • Graphics: Fixed case of the Windows player build being disabled when using linear rendering and OpenGL ES graphics API in the editor.
  • (849671) - Graphics: Fixed lightmap decoding in the editor when the target platform is mobile.
  • (823371) - Graphics: Fixed the GPU Profiler to work in the MacOS Editor using the GLcore graphics API. Can only profile a single game window whilst it is in play mode.
  • (825046, 824894) - Graphics: Fixed warped lens flare and halo effects when not in stereo.
  • (850383) - IL2CPP: A more useful error message is now returned from IL2CPP when trying to build a WebGL project with the Facebook SDK.
  • (852445) - IL2CPP: Added proper support for a class that is marshalled as a field of another class or struct, including the proper return value for a call to Marshal.Sizeof in this case.
  • (846956) - IL2CPP: Added support for managed stack traces on Android.
  • (849701) - IL2CPP: Corrected a crash that can occur in the player when a virtual method is called on a value type and that value type implements an interface which has an overload of that virtual method.
  • (845666) - IL2CPP: Corrected managed stack traces when Xcode 8 is used to build on iOS with link-time optimization enabled.
  • (847838) - IL2CPP: Fix to prevent a compiler error in generated C++ code when calling Interlocked.CompareExchange from some managed code.
  • (845174) - IL2CPP: Fix to prevent a stack overflow exception in the player at run time when an infinitely nested generic method is used.
  • (853468) - IL2CPP: Fixed an issue with attribute classes that have overridden properties.
  • (849072) - IL2CPP: Implemented the array SetValue method for arrays of nullable types.
  • (851098) - IL2CPP/Android: Fixed issue where the error output from the compiler/linker was not captured.
  • (820587) - Lighting: Fixed a problem with reflection probes updating during runtime even when "Refresh Mode" was set to "Via Scripting".
  • (812479) - Multiplayer: Fixed InvalidOperationException when selecting NeworkManager in Hierarchy for the first time.
  • (719672) - Networking: Fix to prevent using a packet size greater than defined in global config.
  • (837602) - Particles: Added animation support for simulation speed property.
  • (849084) - Particles: Fixed occasional crash when using external forces module.
  • (835334) - Physics: Continuously setting Rigidbody2D 'bodyType' or 'IsKinematic' to the same value should not cause contact recalculations; this can cause instabilities.
  • (850059) - Physics: Fixed an accuracy issue where a capsule would jitter and bounce erratically after being placed on top of a scaled mesh at specific locations when the PCM collision mode was enabled.
  • (853163) - Physics: Scaling a CapsuleCollider2D using a Transform component scale in X or Y of zero in the inspector no longer causes a warning in the console.
  • (801761) - Prefabs : Fixed an issue where a prefab instance could be incorrectly marked inactive when first loading a scene.
  • (836589) - Profiler: Fixed isse where taking a detailed memory snapshot did not work in some circumstances.
  • (759338) - Scripting: Fixed case of WaitForSeconds waiting forever when receiving NaN as the parameter.
  • (850350) - Scripting: Fixed MonoDevelop build errors when building UnityScript and Boo projects.
  • (825418) - Shaders: Automatically upgrade any shaders using unity_SpecCube1. This fixes unity_SpecCube1 related shader compile errors after a project upgrade.
  • Shaders: Fixed a problem when compiling shaders using windows style directory separator ("\") in #include paths and compiling on MacOS.
  • (814063, 812479) - Shaders: Fixed a rare problem on DX11 with NaNs happening during the depth pass of forward rendering mode, resulting in shadow artefacts.
  • (844355) - Shaders: Fixed a shader compiler crash for shaders which had extra "}" tokens in them.
  • (825408) - Shaders: Fixed crash when compiling very complex surface shaders. Optimised the memory usage during surface shader compilation.
  • (829162) - Substance: Fixed case of ProceduralTexture inspector preview sometimes showing invalid size and format.
  • (840177) - Substance: Fixed case of SubstanceArchive inspector unselecting ProceduralMaterials after being renamed.
  • (842999) - Substance: Fixed crash when loading a substance with corrupted data,
  • (840181) - Substance: Fixed issue where the emission shader parameter was not properly set on import when emission global illumination was set to realtime.
  • (819300) - UI: Fixed jittery movement when scrolling ScrollRect.
  • (826626) - UnityWebRequest: Fixed case of incorrect Content-Type request header for multipart form data in POST requests.
  • (851921) - UnityWebRequest: Fixed case of POST requests not working with empty data.
  • (850018) - UnityWebRequest: Fixed issue where escaped characters in URL would get unescaped.
  • (657131) - VCS: Fixed null reference exception that could occur after resolving an asset (e.g. prefab) whilst the asset is selected and displaying in the inspector.
  • (824508) - VR: Fixed a memory leak when using a canvas and VRFocus is lost.
  • (851967) - VR: Fixed an issue where only the shadows from the first light would render in both eyes when using single pass instancing.
  • (851891) - VR: Fixed case of error shader rendering in one eye only when using single pass instancing.
  • (845179) - VR: Fixed crash when checking for Stereo VR Device during build.
  • (822480) - Windows Store: Fixed duplicate assembly warning when building Universal 8.1.
  • (820871) - Windows: Fixed issue where Application.systemLanguage would return the region language rather than the UI language.

Correct me if I am wrong here, but didn’t Unity just blow their naming convention.  Should the patch version not be 5.5.1p1?  As in, it’s the first patch on the way to the 5.5.1 release?

GameDev News

6. December 2016

 

The HTML5 powered Babylon.js 3D game engine just released version 2.5 today.  BabylonJS is open source (Apache License) and one of the best available native HTML5 3D game engines available.  I previously featured it in the Closer Look game engine series if you want more details on the engine.  We are also currently producing an in-depth BabylonJS tutorial series if you want to learn how to use this powerful engine.

 

The 2.5 release is packed full of new features, updates and fixes from the release notes:

Major updates
  • New StandardRenderingPipeline effect to support screen space lens flare and depth of field. Demo - (Julien Moreau-Mathis)
  • New HighlightLayer object to enable highlights rendering. Demo - (sebavan)
  • Babylon.js now supports right handed system with scene.useRightHandedSystem = true (deltakosh)
  • Babylon.js is now compiled with optimize-js to get faster initial load (deltakosh)
  • Canvas2D moved to a separate folder in main repo. Now you need to also include babylon.cavans2d.js to get Canvas@D feature (deltakosh)
  • New BoneIKController Demo (abow)
  • New BoneLookController Demo (abow)
  • You can now build your own version of babylon.js with gulp build-custom Doc - (deltakosh)
Updates
  • Added node.doNotSerialize to prevent specific nodes to be serialized by SceneSerializer(deltakosh)
  • Added scene.multiPick and scene.multiPickWithRay to return an array of pickedMesh objects (deltakosh)
  • Added Effect.GetVertexShaderSource() and Effect.GetFragmentShaderSource() (deltakosh)
  • New Texture.LoadFromDataString() to help loading base64 encoded textures (deltakosh)
  • Added Engine detection of the compresed texture formats supported by Hw / browser. You can specify those formats you have files for using Engine.setTextureFormatToUse(), and an appropriate one will be chosen. (Palmer-JC)
  • Added Ray.intersectsMesh, Ray.show, Ray.hide (abow)
  • Added AbstractMesh.setPivotPoint, AbstractMesh.getPivotPoint, AbstractMesh.getAbsolutePivotPoint (abow)
  • Added Debug.AxesViewer and Debug.BoneAxesViewer (abow)
  • Added Bone.getAbsolutePositionFromLocal and getLocalPositionFromAbsolute (abow)
  • Added Bone.setRotation, Bone.getRotation, Bone.setRotationQuaternion, Bone.getRotationQuaternion (abow)
  • Added Bone.getAbsolutePosition and Bone.getAbsolutePositionToRef (abow)
  • Added Bone.translate, Bone.setPosition, Bone.setAbsolutePosition (abow)
  • Added Bone.setYawPitchRoll, Bone.setRotationMatrix, Bone.setScale, Bone.setAxisAngle (abow)
  • Added Bone.rotate (abow)
  • Added Bone.scale (abow)
  • Added Camera.getDirection, AbstractMesh.getDirection, Bone.getDirection (abow)
  • Added subdivisionsX, subdivisionsY option to GroundMesh (abow)
  • New Tools.CreateScreenshot function will capture all canvas data. Previous implementation is now called CreateScreenshotUsingRenderTarget (deltakosh)
  • Cube textures are now cached by texture cache (deltakosh)
  • Added onAnimationEnd callback for sprite.playAnimation (deltakosh)
  • Added support for non square textures for sprites (deltakosh)
  • Added support for texture arrays (deltakosh)
  • Added camera.isInFrustum and camera.isCompletelyInFrustum. Can be used with meshes, submeshes and boundingInfo (deltakosh)
  • Several memory allocation reduction (benaadams)
  • Several GPU state change reduction (benaadams)
  • MapTexture: add supersample mode to double font quality. (nockawa)
  • New SPS feature : solid particle intersection with other solid particle or with any mesh particle.intersectsMesh() (jerome)
  • New invertUV parameter an all ribbon based shapes : ribbon, tube, lathe, basic and custom extrusion (jerome)
  • Text2D: new fontSuperSample setting to use high quality font (nockawa)
  • PerfCounter class added to monitor time/counter and expose min/max/average/lastSecondAverage/current metrics. Updated engine/scene current counter to use this class, exposing new properties as well to access the PerfCounter object (nockawa)
  • Better keyboard event handling which is now done at canvas level and not at window level (deltakosh)
  • New scene.hoverCursor property to define a custom cursor when moving mouse over meshes (deltakosh)
  • Canvas2D: (nockawa)
    • Performance metrics added
    • Text2D super sampling to enhance quality in World Space Canvas
    • World Space Canvas is now rendering in an adaptive way for its resolution to fit the on screen projected one to achieve a good rendering quality
    • Transparent Primitives are now drawn with Instanced Array when supported
    • New property in Canvas2D (instances) that contains all instances of canvas2d Temechon
  • WebVR Camera was updated to be conform with the current specs. (RaananW)
  • New "CubeTextureTask" function will allow you to load a CubeTexture in the assetsManager. (agallouin)
  • Scene.stopAnimation has now an optional second parameter, the name of the animation to kill. Usefull if a mesh has multiple animations. (agallouin)
Bug fixes
  • Fixed issue with SkeletonViewer not displaying correctly with meshes that have a PoseMatrix (abow)
  • Fixed issue with Quaternion.toEulerAnglesToRef (abow)
  • Fixed issue with Animatable.goToFrame (abow)
  • Fixed issue with instancse and viewports (deltakosh)
  • Fixed issue with FreeCamera not working in fullscreen or when pointer locked (abow)
  • MapTexture: Font Characters are now correctly aligned on Chrome (nockawa)
  • Fixed some missing parameter default values in MeshBuilder.CreateGroundFromHeightMap() and MeshBuilder.CreateTiledGround() (jerome)
  • Fixed cross vector calculation in _computeHeightQuads() that affected all the GroundMesh.getHeightAtCoordinates() and GroundMesh.getNormalAtCoordinates() methods (jerome)
  • Fixed Mesh.CreateDashedLines() missing instance parameter on update (jerome)
  • Added BBox update on each ribbon based shape (ribbon, tube, extrusion, etc) on dynamic updates (jerome)
  • Fixed model shape initial red vertex color set to zero not formerly being taken in account in the SolidParticleSystem (jerome)
  • Fixed billboard when the SPS mesh is parented in the SolidParticleSystem (jerome)
  • Fixed RenderTargetTexture meshes selection (deltakosh)
  • Fixed camera speed computation (deltakosh)
  • Fixed bug with instances, LOD and edgesRendering (deltakosh)
  • Canvas2D: (nockawa)
    • WorldSpaceCanvas2D:
      • Intersection/interaction now works on non squared canvas
    • Primitive:
      • ZOrder fixed in Primitives created inline
      • Z-Order is now correctly distributed along the whole canvas object graph
    • Sprite2D:
      • texture size is now set by default as expected
      • can have no id set
    • Text2D:
      • Fix bad rendering quality on Chrome
      • Rendering above transparent surface is now blending correctly
Breaking changes
  • FollowCamera.target was renamed to FollowCamera.lockedTarget to avoid conflicts (deltakosh)
  • Removed legacy shaders support (deltakosh)
  • Canvas2D: (nockawa)
    • WorldSpaceCanvas2D:
      • WorldSpaceRenderScale is no longer supported (deprecated because of adaptive feature added).

GameDev News

6. December 2016

 

The Atomic Game Engine just released a new version available for download here.   This is the first formal binary release in a long time, but there has been constant work on this engine since I featured it in the Closer Look game engine series.  Perhaps the biggest change was the move to open source under the very liberal MIT license but the changes certainly don’t stop there.  The next biggest new feature on the listatomic is probably the fact Atomic now supports the C# language, along side JavaScript and TypeScript (and of course, native C++).

 

New to this particular release are:


• Support for Atomic C# scripting on Windows, macOS, Linux, Android, and iOS

Visual Studio and Xamarin Studio integration (with VSCode support coming soon!)

• Updated to TypeScript 2.0

• Physically Based Rendering (PBR) - Thanks to @dragonCASTjosh

• New examples and project templates

• Revamped build targeting JavaScript, TypeScript, C#, and native C++

• Updated to Urho3D 1.6 and SDL 2.0.4 with a great number of platform improvements

• Updated to to Monaco VSCode editor 0.6

• Bug fixes, improvements, and optimization

Thunderbeast Games LLC have put together a demo reel of the major new features added to engine in 2016 viewable below.

 

The Atomic Game Engine is available here while the source is available on Github.

GameDev News

6. December 2016

 

A couple years ago I did a detailed text tutorial on how to use a debugger which oddly is a massively important skill that simply isn’t taught.  Given that this article is still popular two years later I’ve decided to follow it up with a video version.  This video, Debugging 101, walks through the basic tasks involved in debugging.  It used Visual Studio 2017 and C++ but should be applicable in most languages and IDEs.  The video shows how breakpoints and conditional break points work, how to step into, over and out of your code, how to use the local and watch window, call stacks, how to do memory debugging and more.  Basically the video shows you how to get started using a debugger.

 

The following is the code used in this example.  There is nothing special to this code, it’s extremely contrived, but it enabled me to show the various features available in most debuggers.

#include <iostream>

// These two functions are used to illustrate how the call stack works
// As well as how step into and step out of behave.
int innerFunction(int input) {
	int meaninglessCounter = 0;
	for (int i = input; i > 0; i--) {
		// First show stepping through the loop
		// Set a conditional breakpoint that breaks when i is a certain value.
		meaninglessCounter++;
	}
	return input;
}

int outerFunction() {
	int i = 42;
	return innerFunction(i);
}


class Demo {
	std::string stringValue;
	int intValue;
	bool booleanValue;

	public: 
		Demo(std::string a, int b, bool c) : stringValue(a), intValue(b), booleanValue(
		c) {};
};

int main(int argc, char ** argv) {
	// Callstack demo, jump into, jump over example
	int someVal = 0;
	someVal = outerFunction();

	// Data example -- simply create a char buffer, fill it with 'a' then null 
	terminate it so 
	// it can be treated like a string.
	char * data = new char[1000];
	for (int i = 0; i < 1000; i++)
		data[i] = 'a';
	data[999] = 0;
	std::cout << data << std::endl;

	//set a watch on d.  Demonstrates watches and drilling into complex object
	Demo d("Hello", 42, true);
	
	std::cout << "End of demo" << std::endl;
	delete[] data;
	// delete[] data;  Calling delete again will trigger an exception
}

Programming , , ,

5. December 2016

 

The mobile focused cross platform Lua powered game engine Defold just released version 1.2.94.  The release includes several bug fixes but more importantly contains some rather cool new features.  A big one, and something that was glaringly missing, is (initial) skeletal animation support for 3D models.  While a 2D engine, being able to mix in 3D models enables you to do some pretty powerful things, like texture swapped characters or dynamic inventory systems.  Particle system support for flipbook animation powered particles was also added in this release.

Full new feature list:

  • DEF-2308 - Added: Automatic particle resizing from flipbook animation
  • DEF-2161 - Added: Skeleton animations for 3D models
  • DEF-2295 - Added: Cursor and playback control for model animations
  • DEF-2304 - Added: Max GUI scene count per collection is now configurable in game.project
  • DEF-2202 - Fixed: Up-axis for Collada models are now taken into account
  • DEF-2202 - Fixed: Correct UV/texture coordinates for Collada models
  • DEF-2303 - Fixed: Label with dynamically set text remained after go.delete
  • DEF-2308 - Fixed: Automatic sprite resizing from flipbook animation
  • DEF-1972 - Fixed: Disable animating node during complete callback didn't update property fragments
  • DEF-2274 - Fixed: Spine nodes with animated alpha now works as expected
  • DEF-2145 - Fixed: Libraries/dependencies loading performance

 

You can read more, especially on the use and limitations of the new 3D animation system, in the release notes available here.  If you are interested in learning to use the Defold Engine we have a complete tutorial series available here.  If you just want to learn more be sure to check out our hands on video.

GameDev News

Month List

Popular Comments