Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

22. July 2017


HaxeFlixel 4.3.0 was just released.  HaxeFlixel is a Haxe port of the popular Flixel 2D game engine.  If you are interested in learning more about HaxeFlixel we have a complete audio and text tutorial series.


Details of the release from the changelog:

New features:
  • FlxTween: added cancelChain() (#1988)
  • FlxMatrix: added transformX() and transformY() (dcc66b3)
  • FlxCamera: added containsPoint() (#1964)
  • FlxSubState: added openCallback (#2023)
  • FlxSpriteGroup:
    • added insert() (#2020)
    • added clipRect support (#2051)
  • FlxSoundGroup: added pause() and resume() (#2043)
  • FlxDebugger interaction tool:
    • added tooltips (#2006)
    • added a selection rectangle (#1995)
  • FlxDebugger console: added an "Entry Type" quick watch entry (d354352)
  • FlxStringUtil: added getHost() (#1996)
  • FlxPoint: added toVector() (#2061)
  • FlxGamepad: added getAnalogAxes() (#2064)
  • FlxMouse: added getters for justPressedTimeInTicks (#2070)
  • FlxEase: added linear / smooth / smoother functions (#2080)
<?XML:NAMESPACE PREFIX = "[default] http://www.w3.org/2000/svg" NS = "http://www.w3.org/2000/svg" />Bugfixes:
  • FlxAnimation: fixed reversed animations (#1998)
  • FlxRandom: fixed getObject() not respecting startIndex (#2009)
  • FlxGroup: fixed remove() with Splice = true not decreasing length (#2010)
  • FlxStringUtil: fixed an issue with decimals in formatMoney() (#2011)
  • FlxMouseEventManager:
    • fixed overlap checks for off-camera sprites (#1964)
    • fixed pixel-perfect overlaps with offset (#1999)
    • fixed reset logic on state switches (#1986)
  • FlxPreloader: fixed missing assets with full DCE (764a5a8)
  • FlxG.cameras: fixed reset() not removing all cameras (#2016)
  • FlxAnimationController: fixed flipX / Y not being copied in copyFrom() (#2027)
  • haxelib run flixel: fixed the working directory not being passed on (61f2c20)
  • FlxDebugger interaction tool:
    • fixed selection of FlxSpriteGroup members (89a4ee2)
    • fixed selection of objects in substates (69042ab)
    • fixed selections being canceled on interaction with debugger UI (897f21f)
  • FlxG.html5: fixed platform detecting iPhone and iPod as "Mac" (#2052)
  • FlxTilemap: fixed a missing bounds check in getTileIndexByCoords() (#2024)
  • FlxAnalog: fixed mouse input without FLX_NO_TOUCH (#2067)
  • flixel.input: fixed Float being used for tick values (#2071)
  • FlxCamera: fixed object visibility for zoom < 1 (#2003)
  • FlxEmitter: fixed issues with lifespan == 0 (#2074)
Changes and improvements:
  • FlxBitmapText: allowed negative lineSpacing values (#1984)
  • FlxStringUtil: made getDomain() more robust (#1993, #1996)
  • FlxG.signals: changed gameResized to be dispatched after camera resize (#2012)
  • FlxAtlasFrames: allowed passing a parsed Description in fromTexturePackerJson() (#2021)
  • FlxG.watch: optimized expression watch entries (#2004)
  • FlxDebugger console:
    • allowed null objects in registerObject() to unregister (f52c73e)
    • registered a reference to the current selection of the interaction tool (1bb7b48)
    • prevented unpause after manual pausing through UI (56854fc)
  • FlxBasePreloader: improved the design of the sitelock failure notice (#1994)
  • FlxFlicker: made stop() public (#2084)
  • FlxAnalog: several fixes and improvements (#2073)

GameDev News

20. July 2017


AppGameKit 2017.07.19 update was just released.  AppGameKit is a beginner/indie focused game engine supporting C++ that can target several different platforms.  We covered AppGameKit 2 a couple years ago as part of the Closer Look At game engine review series if you want more information.  Release 2017.07.19 brings several new features including automatic shadow generation, 3D particles and normal map support.


Further details from the release announcement:

AppGameKit Player Apps

  • The AppGameKit Player on iOS will now display the Wifi IPv4 address over the mobile data one, if available

3D Shadows

  • AppGameKit now supports 3D shadow effects. Shadows are cast automatically from the directional light.


  • There are three different shadow modes you can choose from:
    • Uniform shadow mapping
    • Light Space Perspective shadow mapping
    • Cascade shadow mapping
  • The new shadow commands are;
    • SetShadowMappingMode
    • SetShadowSmoothing
    • SetShadowMapSize
    • SetShadowRange
    • SetShadowBias
    • SetShadowLightStepSize
    • SetObjectCastShadow
    • SetObjectReceiveShadow
  • New tier 1 shadow demo (found in the 3D demo folder)

3D Particles

  • Added 3D particle commands
  • Added a 3D Particle example to demonstrate their usage

3D

  • Added SetObjectNormalMap command to add a normal map to a 3D object that uses the default shaders
  • Added LoadShaderFromString command to specify the shader source code directly as a string
  • Changed the mesh to light distance calculation to prefer closer lights regardless of light range when the number of lights is exceeded
  • If the number of pixel lights affecting a mesh exceeds the limit (currently 4) then the additional pixel lights will be applied to the mesh as vertex lights if possible
  • Added support for tangent and binormal attributes in 3D objects loaded from external files
  • Objects using a normal map that don't have any tangents or binormals will have them generated at runtime


  • Added normal mapping example project
  • Added support for the vertex color attribute for 3D objects using the default shaders

3D Model formats

  • Upgraded to version 3.3 of the Open Asset Import Library for 3D model loading
  • Currently supported 3D model formats are: .x .fbx .dae .3ds .obj .b3d .3d

2D

  • DrawLine on all platforms will now draw the last pixel of a line whereas previously the last pixel was left blank
  • Fixed DrawBox drawing unfilled boxes incorrectly if the virtual resolution didn't match the window size

2D Physics

  • Fixed SetSpritePhysicsOff causing a crash if called inside a contact loop using GetFirstContact and GetNextContact
  • Fixed a crash when setting a physics sprite to a width or height of 0

Raw File Paths

  • Fixed LoadVideo not working with "raw:" file paths on non-Windows platforms
  • Fixed LoadMusic not working with "raw:" file paths on all platforms

iOS

  • Added RequestAppReview for iOS 10.3 to rate the app from within the app itself
  • Changed iOS splash screen to fade to black instead of white before displaying your app
  • Fixed OpenBrowser on iOS not accepting URLs containing spaces

Facebook

  • Added FacebookActivateAppTracking command to send app events to the Facebook app console and record app installs

Text

  • Added ShareImageAndText command to share both an image and text at the same time

Arrays

  • Fixed assigning default values to an array of strings in a function generating an error if the number of values didn't match the array size exactly

Mac

  • Updated Mac projects to use libc++, any Tier 2 projects will need to update their setings accordingly

Multiplayer

  • Fixed spelling mistake in GetSocketListnerConnection command name, this is a breaking change and will need to be corrected in existing apps
  • Fixed network client disconnect not being forwarded to other clients
  • Added SetNetworkAllowClients to restart client listening after calling SetNetworkNoMoreClients
  • Added KickNetworkClient to kick a network client off the network, only the host can do this

Strings

  • Fixed ReplaceString cutting off the end of the string if the replace count limit is met
  • Fixed a memory leak in CountStringTokens and GetStringToken

Ouya

  • Fixed Ouya Tier 2 template failing to compile

Android

  • Fixed Android GameCenter commands crashing if passed an empty string for the leaderboard name
  • Exported Google Android apps should now be compatible with Android TV
  • Fixed ViewFile and ShareImage failing after the first attempt in exported APKs

Virtual Buttons

  • Fixed virtual button commands reporting the wrong button ID in error messages

Tier 2

  • Fixed Android ShowCaptureScreen in Tier 2 causing an exception
  • Removed old Visual Studio projects, AppGameKit now only supports VS2015
  • Support for Visual Studio 2017 has been delayed, we're awaiting a bug fix from Microsoft to continue support
  • Added a 64-bit template project for Windows using VS2015
  • Added a 64-bit version of the Windows interpreter to the Players folder, it will not be used automatically to maintain backwards compatibility

Plug-Ins

  • Added support for 64-bit plugins in the 64-bit Windows interpreter, 32-bit plugins can only be used with the 32-bit interpreter
  • Added Example Plugin source code to the installed files on Windows, Mac, and Linux
  • Fixed a memory leak when calling plugin commands

Debugging

  • Debugging from the AGK IDE will now attempt to use the loopback addres if no other IP addresses could be found

Linux

  • Fixed DrawLine on Linux sometimes being off by one
  • Fixed GetResumed and GetPaused not working on Linux
  • Linux apps should no longer exit when a socket disconnects

GameDev News

19. July 2017


The following tweet, sparked off a bit of an interesting conversation about game development, game engines, game journalism and it’s affect on end users.

image


I understand the perspective Adrian takes and I agree and disagree with him all at once.

First off, the part I agree with.   The end users should not be prejudging, or in this case, outright dismissing games based of the engine they are developed in.  This is like dismissing a film because of the way it was filmed.

However, that same analogy holds true.  Think back to the beginning of the 3D movie craze around the time of Avatar and all the CRAP films that were made because of this focus on 3D.  Dismissing a film because there was a 3D version available was a dumb thing to do... but being wary of it it certainly wasn’t.


This is where I stand on the subject, from a developers perspective.  When it comes to 2D games, I think this is pretty much a moot point.  The game engine is really quite transparent on 2D titles and really it’s the art that sets the tone.  With 3D however, it’s not so simple.  3D game engines certainly put their fingerprint on the games they create and game developers should be very aware of those fingerprints. 

There are two ways a game engine influences the underlying game, design and results.  Let’s quickly talk about both.

Design is when the structure of a game engine influences the structure of the underlying game.  For example Unity by default has a very level oriented work flow, while CryEngine has a very landscape/terrain focused design and both it and Unreal Engine are very 1st/3rd person oriented in their design.  In all cases this can be overcome...  Mortal Kombat is an Unreal Engine game, Cities: SkyLines was made using Unity and Star Citizen was made using CryEngine (now Lumberyard).  In every case though, this took a great deal of effort and wrangling an engine into doing what the engine didn’t want to do.  I remember a great deal of complaints among early Kickstarted CRPG games (like Wastelands 2) about the game engine negatively influencing the end game.

Where it is increasing noticeable though, its in the results (AKA graphics) and this is for a couple of different reasons.  First, when you are dealing with a 3D game, there is a great deal more computation going on behind the scenes than in a 2D title.  You have a 3D renderer, materials system, lighting system, physics system etc.  All of these things are complex and will come with defaults to make a developers life easier.  Thing is, every single time people go with the defaults, it’s a finger print left by the game engine on a game.  You will often see comments like “Unity games are ugly”, where in reality the end user is picking up on the default renderer, lighting, etc.  The other tell tale sign of a game engine is using assets from it’s collective asset store.  An asset store is a potential boon to developers, especially ones with limited resources.  On the other hand, hearing the same jingling, seeing the same model or texture, etc... will rapidly lead users to find the games feeling very “same-y”.  You would be amazed what our subconscious mind picks up, there is a reason we have Deja vu so often, and no... nothing was changed in the Matrix.

Another reason why end users might wish to be aware of what game engines a game was written in comes down to hardware.  Some engines simply run poorly on some hardware or have higher system requirements, etc.  For example, all CryEngine powered games could be customized and tweaked using the same process and could be expected to run similarly.  This is a very valid reason for consumers to be aware of what engine a game was written in.

Finally, some readers, even less technically inclined readers may in fact want a peek behind the curtain.  I certainly know I eat this kind of stuff up.


So, should journalists stop talking about what game engine a certain game is made with?  Certainly not.  Don’t focus on it, or condemn because of engine used, but discuss it?  For sure!

At the same time any gamer that’s dismissing games outright due to the engine they are created with are doing themselves and the games in question a massive disservice.  Finally, I don’t think game developers should be overly concerned which game engine they go with, so long as it fits their need.  They should however be very aware that these game engines do put their fingerprints all over their games if they aren’t careful!

General

17. July 2017


Even with the release of the newly branded Unity 2017 series, the previous 5.6.x branch is still being maintained.  Today Unity released patch 5.6.2p3.  Other than some changes to logos to match new branding, this patch consists entirely of fixes, including:

Changes
  • Editor: Updated Unity logos in About Window and Update Window to match new branding.
Fixes
  • (917931) - 2D: Fixed an issue where adjusting Collider2D's Offset when Using Tiled Draw Mode and Auto Tiling would result in inconsistent behaviour.
  • (918524) - 2D: Fixed an issue where the Editor becomes unresponsive when switching from OpenGL to Metal with a tiled sprite in the scene.
  • (920360) - Android: Buildpipe - correctly split resources between APK and OBB when building with LZ4.
  • (924523) - Android: Gradle - Removed debuggable from Manifest when creating APK.
  • (924519 Android: Gradle - Make sure unity3d and other files from raw/ are uncompressed in the APK.
  • (none) - Android: Gradle - Handle too many errors; filter out warnings and detect too long error list.
  • (924517) - Android: Gradle - don't explicitly set debuggable attribute when building with Gradle to avoid lint security warning.
  • (924516) - Android: Fixed the NamePhonePad flag.
  • (922898) - Android: Moved GoogleVR initialisation to run on UI Thread thus fixing startup crash.
  • (887824) - Android: Gradle - Support custom library build.gradle files.
  • (918606) - Android: Fixed an issue with enabling Split Application Binary flag in Android player settings would affect other platforms.
  • (919308) - Android: Fixed an issue with alpha texture size in ETC1 texture compression with split alpha.
  • (925444) - Animation: Fixed layer root motion broken on standalone.
  • (914365) - Animation: Fixed a crash in PlayableTraverser::RootByType that was triggered when disabling a GameObject by using OnStateMachineExit.
  • (901588) - Editor: Restored SRGB write state after internal override.
  • (915524) - Editor: Fixed the case of "Generate Lighting" drop down menu being hidden when inspector was resized to minimal width.
  • (none) - GI Progressive Lightmapper: Fixed a crash in light probe rendering occurring when changing or removing probes.
  • (912603) - Graphics: Fixed sRGB flag returning false on the LDR target texture from a HDR to LDR image effect in a linear project.
  • (923842) - Graphics: Fixed an issue where overlapping cameras drawing to the same target would not composite correctly
  • (913828) - Graphics: Fixed an issue where a ComputeBuffer applied to a Material Block doesn't take effect when drawing via DrawMesh*Indirect.
  • (918788) - Graphics: Fixed a rare crash/hang which, could happen in very complex scenes, when graphics jobs were enabled.
  • (912723) - Graphics: Fixed a crash triggered by setting the SkinnedMeshRenderer.updateWhenOffscreen flag to true via a script.
  • (923517) - IL2CPP: Fixed an issue with setting enum type fields in .NET 4x with relfection using an integer value.
  • (894273) - iOS: Fixed an issue where iOS screen info was retrieved for every request instead of being cached
  • (880426) - Linux: Added an additional fix for uninitialized screen dimensions(/mouse input) at startup with some window managers.
  • (924516) - UI: For Name content type, use NamePhonePad touch screen keyboard type.

The patch is available for download for Windows and Mac OS here.

GameDev News

13. July 2017


Babylon.JS 3.0 has just been released.  BabylonJS is an open source WebGL powered 3D game engine.  If you are interested in learning more about BabylonJS I reviewed an earlier version available here as well as a more recent tutorial series available here.  The 3.0 release brings a number of new features to the game engine including WebGL 2 support, WebVR 1.1 support, glTF 2.0 support and more.  Perhaps most interestingly, this release also introduces the Babylon.UI extension for creating user interfaces.


Details from Microsoft’s developer blog:

Support for WebGL 2

WebGL 2 is a great step forward for 3D developers as it allows more control over the GPU. The support for WebGL 2 is completely transparent with Babylon.js 3.0. This means that the engine will automatically use WebGL 2 if available, and it will fall back to WebGL 1 if not. Mode details can be found here.

Support for WebVR 1.1

With a single line of code, you can now unleash the power of virtual reality directly in your browser. Babylon.js 3.0 supports all VR devices, including the new Windows Mixed Reality headsets. Babylon.js can also transparently use WebVR 1.0 if your device does not support the latest version of the specification (Gear VR for instance). It also supports using device orientation events to provide virtual reality on mobile.

You can visit the Build 2017 website to watch a complete session about Babylon.js and WebVR.

You can find the Sponza demo here.

Support for glTF 2.0

glTF is a file format for GL APIs. With Babylon.js 3.0, we added complete support for loading glTF 2.0 files (including physically based rendering materials).

This version was ratified recently by Khronos group. glTF will help the 3D ecosystem to enable all new ways to create, share and consume 3D.

Improved physically based rendering (PBR)

The PBRMaterial used to render physically based objects was completely rewritten. It is now more accurate and better aligned with GLTF2.0 specifications. This material can be used to simulate real life lighting and provide photorealistic scenes.

You can find a live demo here.

Introducing Babylon.GUI

The Babylon.js GUI library is an extension you can use to generate interactive user interface. It relies on hardware acceleration to produce a fast and light way to deal with user interaction.

The Babylon.GUI extension can be helpful with VR scenarios when you cannot display HTML elements. It can also be used to project your UI in 3D. In this case, the UI will be textured on a 3D object but will remain functional.

Support for morph targets

Morph targets are a great way to animate objects by using morphing between different targets. This technique is widely used to animate character heads, for instance.

You can find a technical demo here.

Support for live textures using WebCam

You can now create project webcam content to any textures in your world. This could be used to simulate mixed reality experience or apply some fun effects like in this ASCII art demo.


BabylonJS is available here and on Github.

GameDev News

Month List

Popular Comments

Playstation mobile development actually within reach of Indie developers?
Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon


Home > News >

7. March 2012

 

 

Back in November, Sony rather shockingly announced the closed beta of a C# based developer kit for PlayStation™Certified devices, which include their Xperia Play and moresony-playstation-vita importantly, the Playstation Vita and their as of yet unreleased Playstation tablet.  Then nothing… complete silence.  Rumour suggested a 1000$ price tag, which was reasonable in regards to a console development kit ( and downright cheap if you played Game Dev Story! ), but a rather steep price for your average indie developer.

 

 

Well, good news!  Today Sony announced an open beta in April, and more importantly, a 99$ annual price tag.  Here is the official press release:

 

 

Tokyo, March 7, 2012 – Sony Computer Entertainment Inc. (SCE) today announced that it will release the open beta version of PlayStation®Suite SDK*1 to content developers in April 2012 and the official version later this year. Through the introduction of these SDKs, SCE will offer a more streamlined content development environment for content developers — from large game development companies to small, independent shops — and further expand the world of PlayStation® to open operating system based portable devices.

In November 2011, SCE released the closed beta version of PlayStation®Suite SDK to limited content developers in Japan, United States and the United Kingdom. The upcoming open beta version incorporates their feedback and will dramatically enhance convenience and efficiency of the content development environment. The phased rollout of the open beta version will start in April 2012 free of charge and expand target countries beyond Japan, United States and the United Kingdom. Developers will also be able to conduct performance verification of their content developed with the open beta version on PlayStation®Vita.

SCE will also release the official version of PlayStation®Suite SDK at $99 US annually later this year, allowing content developers to have their content distributed through PlayStation®Store*2 on a commercial basis. Through the official version, content developers will also be able to seamlessly continue to develop content which was created with the open beta or the closed beta versions.

Furthermore, SCE will be adding content for PlayStation®Suite in Japan, United States, Canada, United Kingdom, France, Italy, Germany, Spain, and Australia. The phased rollout of the update will start later this year. The phased rollout will include improving the PlayStation®Suite presence on PlayStation®Store for users who want to enjoy a variety of content with ease and convenience on their PlayStation™Certified devices. SCE will also deliver content created through the official version of PlayStation®Suite SDK after the necessary procedure is completed.

As of March 7, 2012, the line-up of PlayStation™Certified devices include Xperia™ arc, Xperia™ acro, Xperia™ PLAY, Xperia™ acro HD, Xperia™ S, Xperia™ ion*3 from Sony Mobile Communications AB, and "Sony Tablet" S and "Sony Tablet" P from Sony Corporation. SCE will continue to further accelerate the expansion of PlayStation™Certified devices.

Through PlayStation®Suite, SCE will deploy various measures to support content developers in their business, and expand the PlayStation® entertainment experience on an open operating system.

※1 Software Development Kit is a set of development tools and software libraries. Developers are able to obtain this SDK by signing a license agreement with SCE.

※2 Users can download vast digital content including games through PlayStation Store for PS3, PSP, PS Vita and PS Certified devices.

※3 Model name may vary by region. Sales area may vary by model.

 

 

This news isn’t just confined to Sony devices.  Back in February HTC announced that they would be releasing Playstation certified mobile phones.  This may in fact be the movement that finally brings gaming to Android.

 

Truly a great time to be a small budget developer!

News

blog comments powered by Disqus

Month List

Popular Comments