Quantcast
Channel: Game From Scratch - GameDev News
Viewing all 1352 articles
Browse latest View live

Defold Engine 1.2.84 Released

$
0
0

 

There is a new release of the Defold Game Engine, version 1.2.84.  WebView is now available on mobile platforms with certain limitations.  This release also includes improved sound on mobile devices with better call and battery management.  Among the other fixes are:

Engine

  • DEF-1674 - Added: WebView support on iOS and Android
  • DEF-1691 - Added: sound.is_phone_call_active() available on mobile devices
  • DEF-1857 - Changed: render.predicate now accepts hashes as well as strings
  • DEF-1914 - Fixed: Support for setting HTTPS URIs as resource.uri
  • DEF-1709 - Fixed: IAP callback did not run after opening a minimized app via the home screen on Android
  • DEF-1940 - Fixed: Some purchases using test accounts on Android resulted in error
  • DEF-1918 - Fixed: Stack problem on Android devices < 4.3
  • DEF-1920 - Fixed: Bundle dialogs for iOS and Android now remember the field entry data
  • DEF-1924 - Fixed: Android IAP dialog was shown multiple times if changing device orientation
  • DEF-1937 - Fixed: dmloader.js would sometimes try to load the same archive files multiple times
  • DEF-1825 - Fixed: Crash when on_message functions tried to return data
  • DEF-1278 - Fixed: Android implementation of sound.is_music_playing() now works correctly

Service

  • Updates of access token management. It is now possible to revoke access tokens.

Web

  • API documentation for render has been updated
  • An "Examples project" is now available
  • Return values has been clarified in API docs
  • API documentation has been added for WebView

If you are interested in learning more about the Defold Engine be sure to watch this video.  We also have a tutorial series in development here on GameFromScratch.com.


New Corona SDK Release

$
0
0

 

Corona is a popular Lua powered mobile focused game engine, which just saw a new major release.  Major features of this release include Spine animation support and support for high DPI screens on both Windows and Mac.  There are several other new features however including:

Core and cross-platform features
Corona Simulator
  • High resolution screen support for macOS (retina) and Windows screens (DPI Awareness).
  • Console improvements.
  • Updates to file handling for opening projects, including opening directories and dragging files to the Corona Simulator icon to open projects.
  • native.showAlert() improvements on Windows.
  • The Corona Simulator now warns you if a plugin is required and needs configuration within build.settings.
  • You now get warnings in the Corona Simulator when there is a file name mismatch due to case sensitivity.
Android
  • Multi-Dex support.
  • Improvements to Android 6.x permission handling.
  • Support for Android Studio builds for Enterprise.
  • Videos can now be loaded from all Corona-defined directories.
  • Updated libpng to version 1.2.56.
  • Fixed an issue involving Java-based plugins and applications exiting.
  • Improvements around licensing support.
iOS
  • In-app purchase API store.purchase() can now take a table of item strings or a single item string, just like the similar API for other purchasing platforms.
  • New lines handled correctly in display.newText().
  • Improved rendering of large text objects.
  • Camera fill can now be invalidated more than once per frame.
macOS
  • Added support for system.setIdleTimer().
  • Improved handling of full screen apps.
  • Improved handling of native objects when resizing desktop builds.
  • Improved rendering of large text objects.
  • native.newTextBox() objects now support the “began” phase.
  • You can now control the window’s title bar for desktop builds.
  • Support for high resolution retina displays.
  • Added the ability to show and hide the mouse using native.setProperty().
tvOS
  • Support for On-Demand Resources.
  • Remote handling improvements including “relativeTouch”.
  • Improved rendering of large text objects.
Windows Phone 8 / Windows 10 Mobile
  • Added Visual Studio 2015 and .NET 4.6 support to CoronaCards for Windows Phone.
Windows Desktop
  • Easier to run Corona from the command line.
  • Added support for surround sound audio (5.1 and 7.1).
  • Support for high resolution screens with “DPI awareness”.
  • Added the ability to show and hide the mouse using native.setProperty().
  • Computers with touch screens will now show a virtual keyboard when you interact with native.newTextField() and native.newTextBox().
  • Better formatting for Corona Simulator error messages.

This release is available for download here.

Lumberyard 1.3 Released

$
0
0

 

Lumberyard is Amazon’s new game engine based on a forked version of CryEngine.  I did a short hands-on video of Lumberyard shortly after it was released if you want more information.  Earlier this month Amazon announced the upcoming release of Lumberyard 1.3, announcing that it would have VR support among other features.  Well that release date is now here, at least in Beta form.  This release brings with it over 130 features, improvements and fixes including some serious graphicalvolumetric_fog enhancements.  The two major features of this release are HDR support and the aforementioned VR support (currently Oculus Rift and HTC Vive).  There were several other graphical updates to the engine, including:

  • Volumetric Fog: We increased the temporal stability of volumetric fog, reduced the presence of flickering artifacts, and improved fog’s overall performance.
  • Motion Blur: To give a higher degree of control over the motion blur effect, we added a weighting algorithm to improve the visual quality of silhouettes and added a shutter speed control like those you find in a real-world camera.
  • Height Mapped Ambient Occlusion: This new feature generates ambient occlusion per pixel from a terrain height map, which brings out subtle details and depth cues in terrain that would have been previously unseen.
  • Depth of Field: We implemented a new depth of field technique that reduces edge-bleeding artifacts and utilizes fewer GPU resources.
  • Emittance: We have replaced glow with a physical-based model of emittance. This allows you to model glowing objects as proper citizens of a physically accurate world of lighting and materials. We have changed lighting calculations to properly account for emittance, and we provided a way to automatically convert older content to use the new emittance property.

On the mobile graphics side, we have improved iOS rendering performance by an average of 15%, which is a significant jump considering our mobile renderer is already leveraging Metal and GMEM to maximize performance. We also added adaptive and scalable texture compression (ATSC), which is useful for managing bandwidth, memory footprint, and power, all of which are important for low-power, mobile devices.

Finally, if you are a graphics programmer like me, then you are just as concerned about profiling and performance as pretty pixels. So one last thing I want to highlight is the integrated graphics profiler. You can now display all sorts of mission-critical performance stats in real-time, including detailed CPU and GPU timings per frame, per pipeline stage, per sub-system. You will also find many useful graphics counters like to draw call counts, shader counts, triangle, and vertices count. These run-time stats nicely complement capture-based analysis tools like RenderDoc and Lumberyard’s Driller logging system.

You can read the announcement blog here while the more detailed release notes are available here.

Unity Release Patch 5.3.5P6

$
0
0

 

Another week another Unity patch, this one version 5.3.5P6.  In addition to the usual spate of bug fixes, this patch includes several improvements to audio functionality, a bump to Oculus 1.5 and has been updated to work with XCode 8 for iOS builds.

The full release details:

Improvements
  • Audio: Added ability to transition AudioMixer snapshots by scaled and unscaled time.
  • Audio: Added virtualization of audio effects. For audio sources that are virtual because they have been culled due to low audibility or priority, attached effect components or spatializers are now also bypassed in order to save CPU use. The new behaviour is on by default, but can be turned off in the audio project settings.
  • Audio: Audio clip waveform preview now displays the actual format used for compression when the default format isn’t available on a certain platform.
  • Audio: Audio clips with the "Streaming" load type are no longer preloaded. This is done to reduce the number of open file handles in scenes referencing a large number of streamed clips. The behaviour is not affected except for a slight increase in playback delay of this type of audio clips.
  • Audio: Fixed audio clip waveform preview rendering sync issues after import, and improved the way the waveforms are being rendered to be more dynamic and reveal more detail.
  • Audio: Moved Preload Audio Data to the platform-specific settings section. The previous location was confusing as it was shown grayed-out in the inspector with a checkmark that depended on all overrides.
  • Audio: SystemInfo now includes supportsAudio info.
  • iOS: Update Build and Run to work with Xcode 8
  • VR: Updated to Oculus Version 1.5.
Fixes
  • (786827) - Animation: Fixed rotation values set in inspector restricted to [0,360] degrees when recording animation.
  • (800268) - Animation: Fixed animation event firing twice when controller is set by a script and an instantaneous transition is trigger in the same frame.
  • (778887) - Animation: Fixed crash when changing playable controller in animator in game mode.
  • (740603) - Audio: "Failed to initialize spatializer" warning message no longer appears when Spatializer Plugin is set to "None".
  • (758064) - Audio: Audio Profiler no longer shows "wrong" information when using Spatialization.
  • (632169) - Audio: AudioMixer.GetFloat() and SetFloat() now work without needing to restart Unity.
  • (782248) - Audio: AudioSource: Fixed issue whereby Doppler Level didn't work when used with custom spatializer plugins.
  • (772946) - Audio: Fixed case of component effect appearing disabled on play and becoming enabled again after pressing pause and then play.
  • (763036) - Audio: Fixed case of Unity crashing when the Disable Audio option was selected in Project Settings.
  • (784887) - Audio: Fixed crash when disabling component which uses OnAudioFilterRead.
  • (none) - Audio: Fixed handling of default DSP buffer size. Previously, once the buffer size was changed to something other than Default latency, changing it back to Default latency had no effect.
  • (781566) - Audio: Fixed issue where AudioListener with two custom scripts crashed when reinitializing the sound system.
  • (775328) - Audio: Fixed issue where the Audio Lowpass Frequency curve moved in the wrong direction in the AudioSource curve view.
  • (771825) - Audio: Fixed issue whereby adding an effect in the mixer with bypass effects enabled didn't rechain the component effect back properly.
  • (none) - Audio: Fixed issue whereby the memory profiler did not report AudioClip memory correctly. The memory allocated by AudioClips was wrongly accumulated under AudioManager.
  • (760985) - Audio: Fixed mixer reverb effects getting cut off early in standalone builds.
  • (718344) - Audio: Fixed random mixup between internal direct and reverb signal connections which could cause AudioSources to interfere and become silent under certain conditions.
  • (731177) - Audio: Large numbers of streaming audio clips no longer cause crashes in batch mode.
  • (732854) - Audio: Low Pass Filter now works on Audio Listener.
  • (715257) - Audio: Microphone.IsRecording(null) no longer returning true even when no devices were available.
  • (none) - Audio: Native audio plugin SDK: Fixed dspbuffersize having a value of 0 when default buffer size settings are selected.
  • (none) - Audio: Preloaded sounds now allow calling GetData in Start().
  • (none) - Audio: Project browser now updates after a change has been applied in the AudioImporterInspector.
  • (none) - Audio: Sounds marked as Play On Awake are now shown in Audio profiler.
  • (806648) - Editor: Fixed activate license failure if user switch user before activation.
  • (804864) - Editor: Fixed an issue causing unnecessary script compilation, and improved compilation error handling
  • (804139) - Editor: fixed an issue where custom windows could be removed when encountering errors in user editor scripts.
  • (802014) - IL2CPP: Fixed a crash that can occur during XML serialization with the .NET 2.0 profile.
  • (800496) - IL2CPP: Fixed a crash which can occur during the iteration of enum values cast as a list of System.Object values.
  • (804767) - IL2CPP: Corrected the packing for some C# struct definitions with explicit layout.
  • (805846) - IL2CPP: Fixed try/catch handling when filter type includes generic parameters.
  • (794660, 790555, 737693) OpenGLES: Fixed crash and reflection probes corruption on A9 chipsets (OpenGLES2.0).
  • (799560) - Windows Store: Fixed a crash which happened when serializing objects which have the first field be an array or a list on .NET scripting backend.
  • (805830) - Windows Store: Fixed a memory leak which leaked ~5 KB of memory per frame.
  • (804163) - Windows Store: Fixed an issue which sometimes caused "The referenced script on this Behaviour is missing!" after unloading unused assets while maintaining indirect references on the MonoBehaviours on .NET scripting backend.
  • (775624) - Windows Store: Fixed manifest generation for StoreLogo, when only scale-100 image is available.
  • (767548) - Windows Store: Load first scene after Unity splash screen is over.
  • (786277) - Windows Store: NetworkTransport.ConnectEndPoint will work correctly on UWP (required by secure sockets), note this function will not work on older Windows Store SDKs.

The patch is available for download here.

Gideros 2016.6 Released

$
0
0

 

There is a new release of Gideros, a cross platform Lua powered mobile focused open source game engine.  Release 2016.6 ( I like this naming convention by the way ) bringstumblr_static_gideros-mobile-small several new features and improvements including:

New features

  • Introduce a threading system allowing to launch tasks in background
  • New Pixel sprite, a simple and fast rectangular coloured sprite 
  • New Particles sprite (alpha), which allows to draw several identical dots or bitmaps with varying colour and orientation
  • Releases now include offline docs
  • New examples
  • Lua 5.1 ‘universal’ bytecode
  • UTF8 string library

Improvements

  • Matrix object promoted to full 4x4 (3D) matrix
  • Matrix has sprite transform functions as well as direct scale/rotate/translate/multiply
  • Pixels can be retrieved from a render target through RenderTarget:getPixels()
  • Win32 target general improvements (fixed autorotation issue and UrlLoader now supported)
  • Shaders constants can now be set on a sprite by sprite basis
  • Viewport can now be used to render 3D scenes with different perspectives
  • Switched to QT 5.6 (fix multi monitor issues with gideros studio)
  • Updated luasockets to 3.0rc1 (for IPv6 access)

Fixes

  • Allow to remove a shader from a Sprite through Sprite:setShader(nil)
  • Fixed concurrency issue in UrlLoader on Android, causing random crashes
  • Fixed Render target clear/clipping
  • Android fixed orientation issue on screen suspend
  • Fixed export complete dialog appears only after export is finished
  • Logical scale now applies to Z axis too
  • HTML5 fix mouse buttons reporting
  • Fixed blur shader example to be GL ES compliant

 

Gideros is available for download here.  You can read the release announcement here.

NeoAxis 3.5 Released

$
0
0

 

NeoAxis, a .NET powered 3D game engine with full editor, just released version 3.5.  The key features of this release are:terrain_editor

 

  • Graphic user interface of the tools has been updated.
  • A tool to easily import 3D models from a file has been added.
  • Example maps have been updated.
  • Freeze Objects Manager has been added. The object is indended to optimize maps with big amount of objects on them. With this object the developer can make some objects on the map freeze to save resources.
  • Streaming terrain has been improved. Better management of load/unload mechanism.
  • The ability to skip mip maps during loading textures.
  • Bug fix: Broken rendering with enabled SoftParticles parameter of the material.
  • Bug fix: Broken decals on terrain.
  • Bug fix: Broken export of 3D models from Map Editor to DAE.

 

You can read more about the release here.

Xenko Engine 1.7 Released

$
0
0

 

Xenko Engine, formerly Paradox 3D, just released version 1.7.  I previously featured this engine as part of the Closer Look series if you are interested in learning more.  Majordragdrop_propertyview features of this release are:

 

  • Practical Clustered Shading ( forward + rendering ) added (Video here)
  • Re-written lighting code for improved performance
  • Vulkan support experimental on Linux and Windows
  • Simplified asset creation, import assets directly from file
  • Improved camera preview
  • Drag and Drop assets and scripts to the properties panel
  • Linux Platform support as target (Ubuntu)
  • Rewritten audio engine
  • Misc bug fixes and improvements

 

You can read the full release notes here.

This Week In GameDev–July 4th/2016

$
0
0

The following is a recap of major events in the world of game development for the week ending July 4th, 2016.  I do a weekly video recapping the news available here with this week’s video embedded below.  This post is a collection of links mentioned in the recap.

 

The Video


Microsoft Officially Reject XNA 5

$
0
0

 

While not exactly earth shattering news, Microsoft today slammed the door on the idea of XNA 5. 

 

The following request was posted to the Visual Studio feedback system

Please continue to work on XNA. It's a great way for indie game developers like myself to make games and give them to the world. XNA gave us the ability to put our games, easily, on the most popular platforms, and to just dump XNA would be therefor heartbreaking... I implore you to keep working on XNA so we C# developers can still make amazing games!

 

Now XNA has been dead and buried for a long time but I think a fair number of people held out hope that XNA would come back at some point.  Given their answer, there is no question of hope now:

Back in 2013, we announced that XNA 4.0 would be the last release of the XNA framework. We thank all of you who used XNA in your games, and we’re humbled by the number of you who want an XNA 5.0! However,XNA 5.0 is not something we’ll be developing.

We know that many of you want to use cross-platform engines to build your games and deploy them in all the places that gamers care about – Xbox, Windows, Sony PlayStation, Nintendo Wii, iOS, Android and more. Now, there is an amazing ecosystem of game frameworks and engines that support building games on Windows and across all platforms.

If you are looking to port your existing XNA game to Windows 10 UWP, please explore the MonoGame framework, which is an open-source, cross-platform implementation of XNA, supporting Windows 10 UWP and a variety of other platforms. If you are looking to build a cross-platform game using C#, .NET and Visual Studio, you can explore Unity, a powerful 3D and 2D game creation tool and ecosystem. Unreal Engine 4 and Cocos2d are also great options for building cross-platforms games using Visual Studio.

In addition, if your game was built with XNA and previously worked on Windows or Windows Phone, it will continue to work.

 

I have to admit this is somewhat depressing as I was always a fan of XNA.  Not surprising, but depressing.

Defold Engine Tutorial Series: Application Basics

$
0
0

 

In the previous tutorial we covered installing the Defold Engine and creating your first project.  Today we are going to be looking at the overall structure of a Defold game, as it varies slightly from previous game engines.  I assume at this point you’ve followed the previous tutorial, created an empty project and have it open in the Defold editor.

 

There is an HD video of this tutorial available here.

 

The default project should look something like:

image

 

The built-ins folder is exactly that.  It contains several resources and scripts usable in your game, but we will talk about that later.  The more important thing to be aware of here is the main folder and it’s contents.

Inside this folder we find main.collection, logo.atlas and a folder containing an image.  A collection is a very important concept in Defold.  In this particular usage, you can think of a collection as a level.  If we double click main.collection for example it will open up a scene editor, like so:

image

 

A collection isn’t simply a level however...  what it is is a container for game objects or other collections.  We will look at game objects in a second.  So yes, Collections can be used to compose game levels, but they have other purposes.  The also perform the role of “prefabs” in other engines.  For example you might have a prefab for an enemy, that contained the scripts controlling it, the graphics you used to draw it, the sounds it plays, etc.  This collection can then be used to “instance” a version of your prefab one or more times.

 

A moment ago I mentioned Game Objects.  This is another cornerstone to understanding Defold.  With main.collection open in the editor, you should see in the Outliner, the following:

image

 

You can see here that our collection (main.collection) contains a single Game Object named go, which in turn contains a single component sprite.  You’ll notice with sprite selected that the Properties show our sprite comes from /main/logo.atlas and uses the animation or image named logo and renders using the built in material sprite.material. 

If you’ve worked with a component based game engine, such as Unity or Unreal, should be immediately comfortable with this concept.  Basically Game Objects are the entities or items that make up your game.  You will notice with a game object selected, it has very few properties:

image

Basically a Game Object contains positioning information (location, rotation and scale) and an Id, which we will use later.

What makes a Game Object useful is it’s a container for Components.  If you right click a Game Object in the Outliner, you can Add Component (or press I)

image

 

You can then chose a component from the following list:

image

This is how you can attach a Sprite, Collision Object, Sound effect, etc... to your Game Object.

 

So in a nutshell, a Collection is just that, a collection of things.  Generally Game Objects and other Collections.  A Game Object is an entity within your game world.  It has a position and ID and is a container for several components.  Components are the things that make up your game object, sprites, sounds, etc.  Got it?

 

So then... what about code?

 

Well every game engine has a game loop somewhere.  A game loop is a pretty simple concept, it’s a loop that runs over and over again and looks something like this primitive psuedo code:

 

while(gameRunning()){updateWorld()updatePhysics()getInput()render()}

 

The exact contents of the game loop change from engine to engine but if you look at enough engines you will notice they are all very similar in the end.  It’s a loop that runs, checks for input, updates the game world, updates the physics engine if one exists then renders the results.  The actual game loop itself is often hidden away in a game engine and Defold is no exception.  So how then do you program your game?

Well first off you create a script.  A script is just another type of asset that can be added to your project.  To do so, right click the folder you want the asset to be created in (main), then select New->Script File.

image

 

Next you want to name your script.  In Defold scripts have the .script extension. 

image

 

This will create a new script file.  Double click it to bring it up in the editor:

functioninit(self)-- Add initialization code here-- Remove this function if not neededprint("Game Created")endfunctionfinal(self)-- Add finalization code here-- Remove this function if not neededendfunctionupdate(self, dt)-- Add update code here-- Remove this function if not neededendfunctionon_message(self, message_id, message, sender)-- Add message-handling code here-- Remove this function if not neededendfunctionon_input(self, action_id, action)-- Add input-handling code here-- Remove this function if not neededendfunctionon_reload(self)-- Add reload-handling code here-- Remove this function if not neededend

 

I added a simple print() function call in the init() method.  Remember what I was saying about game loops earlier?  Well in Defold, during it’s game loop it makes various callback function calls at different points in the loop.  In this case init() is called when the script is first created, final() is called when it is done.  All the other methods are called each pass through the loop. We will look at each of these methods in detail in the future.

 

So now that we have a script, we actually have to attach it to something to get it to run.  Thankfully we already have a game object in main.collection named go.  Let’s attach the script to it.  Make sure main.collection is being edited, then in the outliner, locate go, right click it and select Add Component From File.

image

 

Select main.script then click OK:

image

 

Now that script will be attached to that game object.

 

This leaves one last question... how does the Defold engine know to create our main.collection to start all of this off in the first place?  Well that’s where game.project comes in.  This file contains several global configuration settings for your game.

image

 

In this particular case however, it’s the bootstrap that we are interested in.

image

 

You can think of main_collection as the entry point of your game.

 

That’s it for this tutorial.  Now that we have a good understanding of what the pieces that go together to make a game, next we will jump in and start getting our fingers dirty.  This tutorial is not going to be covering Lua programming.  If you are new to the Lua language, be sure to check out this tutorial series and you will learn everything you need to know to get up to speed.

 

The Video

Tiled 0.16.2 Released

$
0
0

 

Tiled, a popular open source 2D map editor, just released version 0.16.2.  If you are interested in learning more about Tiled we have a complete tutorial series here on GameFromScratch.

 

The 0.16.2 is composed entirely of fixes, including:

  • JSON plugin: Fixed loading of custom properties on terrains
  • Lua plugin: Fixed missing export of object layer drawing order (#1289)
  • Fixed tile index adjustment when tileset image changes width (#1242)
  • Fixed --export-map [format] option (#1307)
  • Fixed shortcuts for some tools when language is set to Dutch (#1280)
  • Fixed a painting related bug affecting the top edge after AutoMapping (#1308)
  • Fixed issues when compiling against Qt 5.6 on OS X and Windows (#1309)
  • Fixed crash on maximizing with Maps view open on Windows (#1153, #1268, Qt 5.6.1)
  • Fixed focus issue while typing predefined object types (#1244, Qt 5.6)
  • Fixed silent fail when saving to restricted location on Windows (#965, Qt 5.6)

 

You can read the entire notes release here.

Continuous–C# and F# Development on iOS

$
0
0

 

Released just a few days ago on the App Store is Continuous, a complete C# and F# development environment that runs directly on your iPhone or iPad.  It contains a fairly full featured IDE with capable text editor, programming friendly on screen keyboard and more.  In addition to the editor it contains everything you need for development, a port of the Roslyn compiler, VM as well as implementations of several key libraries such as Xamarins WinForms implementation.

From the App Store entry:

    • Continuous is always building and running your code so you can see changes as you type. Writing interactive apps in Continuous is a pleasure compared to the traditional code-build-run cycle. It frees you to make lots of small changes and see their effects immediately - no more waiting for builds or deployments and no more clicking around trying to get to the screen you're trying to code.
      Continuous looks and works in many of the same ways as traditional .NET IDEs so you'll feel right at home, but it also strives to advance the state of the art in IDEs with these features:
    • Full C# 6 and F# 4 compilers so you can use the latest tech
    • Automatic compiling and running so you can focus on the code and the results
    • Fancy text editor with tabs, semantic highlighting, inline error bubbles, and inline values that are updated as you type
    • Watch window enables you to view graphical objects in your app (UI and images), inspect live objects as your app runs, create instances of new objects, and call methods
    • Code completion with inline type info and documentation makes learning new APIs fun
    • Uses standard .NET file and project formats so you can share code with other IDEs
    • Includes Xamarin.Forms and UIKit to build apps and SpriteKit and SceneKit to build games
    • Split screen support so you can keep documentation by your side
    • Execution powered by a new IL interpreter

 

If you are interested in learning more I already did a hands-on video available here or embedded below.  After some more experience I may follow up with a full blown review.  If you are a C# developer and are interested on developing directly on your device, check out Continuous.  It’s a pretty amazing piece of software.

 

Cocos2d-x 3.12 Released

$
0
0

 

Cocos2d-x is a popular open source C++ based cross platform game development library.  If you are interested in learning more about Cocos2d-x, we have a complete tutorial series available here.  The Cocos2d-x team just announced the release of Cocos2d-x 3.12.  Version 3.12 adds support for the Tizen platform, experimental support for VR, fixed some Android performance issues, add obb Android support and WebGL improvements. 

In addition to these features, there are dozens of new features and bug fixes, including:

[HIGHLIGHT] add VR support

[HIGHLIGHT] add Tizen support

[HIGHLIGHT] fix Android performance issue

[HIGHLIGHT] Web engine performance improved in WebGL mode

[HIGHLIGHT] support obb extension on Android

[NEW] Core: add `utils::findChild()`

[NEW] Core: add CSV format support to tile maps

[NEW] Core: add `FileUtils::getContents()`

[NEW] Core: cocos2d::Value supports unsigned

[NEW] Particle: add feature to pause/resume particle emitter

[NEW] Platform: support Windows 10 UWP x64

[NEW] UI: add clamp and shrunk feature for system fonts, currently only support iOS, Android and Mac

[NEW] UI: make ListView select item programmatically

[NEW] UI: add `EditBox::InputFlag::LOWERCASE_ALL_CHARACTERS` to lowercase characters

[NEW] UI: add `setBounce()` to WebView

[NEW] Web: refactor TMXLayer renderers

[NEW] Web: can force orientation in mobile browser

[NEW] Web: support high resolution TTF Label on retina display

[REFINE] Android: use clang instead of gcc to compile codes

[REFINE] Android: hide virtual button by default

[REFINE] Android: set music volume control as default

[REFINE] Android: usage clang insteand of gcc to compile codes

[REFINE] Audio: catch `IllegalStateException` exception to avoid crash when playing background music with SimpleAudioEngine on Android

[REFINE] Core: fix many warnings

[REFINE] Core: move StringUtils functions from deprecated header file to ccUTF8.h

[REFINE] Core: FontFNT will ignore chars that exceeds 65535 and print a warning information

[REFINE] Core: `Node::ignoreAnchorPointForPosition()` is deprecated and add `Node::setIgnoreAnchorPointForPosition()`

[REFINE] Core: allow inherit from platform FileUitils

[REFINE] Core: add optional alpha parameter to Color4B and Color4F

[REFINE] Core: Follow action can accept horizontal and vertical offset

[REFINE] Core: TMXXMLParse parse `id` element

[REFINE] Lua: rename all member functions named `end()` to `endLua()`

[REFINE] JSB: make selectedSprite opitional in MenuItemSprite

[REFINE] JSB: return null if read failed in `js_cocos2dx_CCFileUtils_getDataFromFile()`

[REFINE] Template: iOS tempalte is refined to make cocos2d-x game scene work better with other UIView

[REFINE] Template: remove `build_native.sh`

[REFINE] Template: ARC support on iOS and Mac OS

[REFINE] UI: TTF and BMFont label wrap mode will automanytically changed to char wrap mode when label's width is less than word's boundary

[REFINE] UI: UIWidget adds missing properties for clone

[REFINE] UI: UIScrollBar caches the texture created with base64 encoded images

[REFINE] UI: EditBox now prints lowercase letters by default

[REFINE] UI: enable WebView's local storage on Android

[REFINE] UI: improve EditBox implementation on WinRT

[REFINE] UI: make PageView indicator more tunable

[REFINE] UI: make PageView page turning event time tweak configurable

[REFINE] UI: RichText is improved: add effect of outline, shadow and glow; catch the event of open url; ability to extend tags; add anchor of image tag

[REFINE] 3D: skeleton animation is more efficient when two animations switch frequently

[REFINE] 3rd party: update webp to 0.5.0

[REFINE] Web: improve basic types to reduce memory usage

[REFINE] Web: Show line number in console statements

[REFINE] Web: Cache base64 image of PageViewIndicator and ScrollViewBar

[REFINE] Web: Pass error in cc.AsyncPool in onEnd callback

[REFINE] Web: Separate ccui.ListView event callback from ccui.ScrollView for its own events

[FIX] Android: fix compiling error if using NDK r11+

[FIX] Android: package name is `libcocos2dx` instead of application name if building with Android Studio

[FIX] Audio: AudioEngine can not work if the file path contains not ascii code on iOS

[FIX] Audio: SimpleAudioEngine::playEffect() doesn't work correctly on Linux

[FIX] AssetsManager: can not work

[FIX] AssetsManagerEx: use manifestUrl from remote version

[FIX] Core: `FileUtils::writeValueMap()` will crash on iOS if it contains `Value::Type::None` type element

[FIX] Core: `ClippgNode::setStencil()` may cause assert error if it is invoked before

[FIX] Core: `TextureCache::addImageAsync()` doesn't set pixel format corretly

[FIX] Core: `GL::SetBlending()` doesn't set dst correctly

[FIX] Core: vertex z can not work correctly if window size changed on desktop platforms

[FIX] Core: use `std::isnan()` instead of `isnan()` to fix compiling errors on some Linux platforms

[FIX] Core: crash on windows when using PolygonInfo

[FIX] Core: fix `libpng error: CgBI: unhandled critical chunk` error with Xcode 7.3

[FIX] Core: EXC_BAD_ACCESS random crash caused by reallocation of shared indices memory

[FIX] Core: memory leak of `utils::captureScreen()` on iOS and Mac OS

[FIX] Core: assert error if remove an event listener twice at the same time

[FIX] Core: FileUtils::getValueMapFromFile() returns wrong value if it is a number with scientific notation on Android

[FIX] Core: UIGrayScale shader is not reloaded when reloading shaders

[FIX] Core: `SpriteFrame::clone()` doesn't clone polygonInfo

[FIX] Core: `FileUtils::createDirectory()` fails on Mac OS with sandbox

[FIX] Core: `cocos2d::Value` operator overloading of comparison `==` returns wrong value in case Type::VECTOR

[FIX] Core: wrong content size if minisize

[FIX] Core: can not have a class named `Game` on Windows

[FIX] Core: crash if load bad image on Windows

[FIX] Core: custom shader uniforms and attributes do not have effect in DrawNode

[FIX] Core: blend mode doesn't work with animated sprite

[FIX] Core: `FileUtils::removeDirectory()` can not work correctly when the path is not end of `/` on iOS and Mac

[FIX] JSB: fix some bugs related with JSB debegger

[FIX] JSB: scheduler callback target lost

[FIX] JSB: missing scroll widgets constants

[FIX] JSB: if obj is undefined or null then attempt to access obj.__nativeObj leads to incorrect behavior

[FIX] JSB: use `require()` to require the same script twice may crash

[FIX] Lua: lua function is not invoked when error happens in websocket

[FIX] Network: HttpClient Content-type limitation on iOS

[FIX] Network: downloader crash when storage path contains spaces

[FIX] Network: SocketIO crash on reconnect

[FIX] Physics: PhysicsBody damping doesn't wrok

[FIX] UI: EditBox may cause `java.lang.IndexOutOfBoundsException` exception on Android

[FIX] UI: TextFieldTTF doesn't show password correctly

[FIX] UI: RichText crash on Windows

[FIX] UI: EditBox can not use custom font on Android

[FIX] UI: can not use TTF font on Android

[FIX] RenderTexture: `setOpacity()` has not effect

[FIX] 3D: `Sprite3D::createNode()` may not work correctly with particular model data

[FIX] Web: `getParentToNodeTransform` doesn't return result

[FIX] Web: remote image without extension in url can't be loaded as image

[FIX] Web: nested clipping nodes rendering issue in WebGL render mode

[FIX] Web: IMEDispatcher can't work in mobile Chrome

 

Cocos2d-x is available here.

Mesa 12.0.0 Released

$
0
0

 

Mesa is a key component of OpenGL support on open source platforms and just announced release 12.0.0.  Major features of this release are Vulkan drivers for Intel chipsets, OpenGL 4.3 support on modern GPUs, OpenGL ES 3.1 support and more.

The 12.0.0 announcement from the Mesa developer mailing list:

It's a real honour to announce Mesa 12.0.0.

This release has massive amount of features, but without a doubt the biggest
ones are:
 - Vulkan driver for Intel hardware from Ivy Bridge onward.
 - OpenGL 4.3 for nvc0, radeonsi and i965 (Gen8+)
 - OpenGL ES 3.1 on nvc0 and radeonsi
 - GLVND support for GLX, OpenGL
 - New gallium software driver - SWR.
 - DRI3 enablement for VDPAU, OMX and VAAPI

Note:
 - Gallium radeon drivers (r300, r600 and radeonsi) now require kernel 3.2 and
LLVM 3.6 or later.
 - Building SWR requires python2, since some of the generated files cannot be
distributed as part of the release tarball.

nVidia Release GameWorks Vulkan And OpenGL Samples 3.0

$
0
0

 

nVidia just released version 3 of their Gameworks OpenGL/Vulkan samples.  The GameWorks samples is described as:

The NVIDIA GameWorks™ Graphics samples are a comprehensive set of OpenGL, OpenGL ES and Vulkan samples that programmers of all levels can use to bettervulkan2 understand modern 3D graphics techniques and enhance games, simulations and other 3D projects.

 

New to the 3.0 release are:

  • Vulkan support on Windows, Android, Linux for desktop x86_64 and Linux for Tegra available NOW!
  • Full source code and assets to the popular Vulkan "Fish!" demo
  • Threaded rendering in Vulkan and OpenGL (using AZDO) with matching versions of the Fish demo
  • Additional Vulkan Samples
  • Single-pass Cubemap Rendering Sample
  • Metaball Rendering Sample
  • MSAA with Deferred Shading Sample
  • OpenGL Command Lists Sample

The homepage for the samples is available here.  The source code of the samples is available on Github while the documentation is available here.


This Week In GameDev–July 11th/2016

Godot 2.0.4 Released

$
0
0

 

Godot is a popular open source 2D/3D game engine.  If you are interested in learning more I did a closer look review as well as a complete tutorial series.  They just released Godot 2.0.4 in advance of the soon to be released 2.1.

 

From the 2.0.4 release notes:

Enhancements:

  • Many new classes documented! Thanks to all those that got involved after our call for contributors! Feel free to join us as there's still a lot to do, but the progress is heart-warming!
  • Updated libraries: GLEW 1.13.0, libogg 1.3.2, libvorbis 1.3.5, libtheora 1.1.1, libpng 1.5.27
  • Ability to rotate controls using tool
  • Added classes' short descriptions as tooltips in the create dialog
  • Added 'fat' option for bits param on scons for osx, produces a binary containing both 32 bits and 64 bits binaries
  • Added InputMap.get_actions()
  • Change low processor usage mode to cap to 60 FPS rather than 40 FPS
  • Change the default comment color to #676767
  • Debugger: show error message if description is not available
  • Dynamic property list for control margins allowing floating point properties to be used with ratio anchors
  • iOS: added "arch" parameter, made iphone use it to build isim
  • OSX: Key modifiers (Ctrl, Alt, Meta and Shift) may be used as Input keys now
  • OSX export: Default to fat format, make it an enum
  • Prettier str() for arrays
  • Rename CanvasItem.edit_get() to edit_get_state()
  • The create dialog starts collapsed now. The original behavior can be reactivated in the editor settings
  • Various enhancements to the script editor, such as member variables highlighting, breakpoint markers, caret blinking, etc.

Bug fixes:

  • Avoid crash if setting modifiers fails
  • Avoid mirroring to go negative to fix crash
  • Change invalid characters when get user data dir on Windows & Unix
  • Correctly parse utf8 from zip_io open, also fixes issues when exporting or opening android apk files
  • Editor: Fix base dir when going back to project manager
  • Fix a inherited transform bug with Camera2D preview drawing
  • Fix bug in String==StrRange comparison
  • Fix CanvasItem.get_global_transform() andCanvasItem.get_local_transform()
  • Fix crashes in code completion and SamplePlayer
  • Fix error storing path for children of instanced nodes in .tscn
  • Fix errors while exporting to Android
  • Fix File.get_as_text() to return the whole file
  • Fix OpenSSL connections on 64-bit Windows
  • Fix own world option of Viewport
  • Fix parsing of floats in scientific notation
  • Fix several bugs related to node duplication and signals
  • Fix Theora video playback without a Vorbis stream
  • Fix unsaved modifications in scripts being overwritten on filesystem changes
  • Fix visual server error when minimizing the window
  • Fixed ancient bug that prevented proper theme editing
  • Fixed bug using DirAccess in Android Marshmallow due to data dir being a symlink
  • Fixed various bugs with inner classes
  • LineEdit: Fix and improve selection behaviour
  • Make Input Actions config not affect the editor
  • Properly deliver localized coordinates when passing gui events through parents
  • Resolve numerical error when comparing instancing an inheritance to avoid wrongly saving unchanged properties
  • Windows: prevent freeze while moving or resizing the game window.
  • And many other nice changes that we can't possibly list here without boring you to the end of times!

Godot is available for download here.  Stay tuned for the 2.1 release which should arrive any day now.

OpenFL 4 Released

$
0
0

 

OpenFL, a Haxe library previously known as NME, just released version 4.  OpenFL is a media framework often used for creating games that is designed to give Flash developers a transitional path to Haxe development.  A major component of the OpenFL 4 release is to be more consistent with Flash APIs as well as a commitment to support the Stage3D API.  If you are interested in learning more I wrote a multipart tutorial series on using Haxe and NME before it was rebranded OpenFL.

 

From the release notes:

New OpenGL Renderer

We went to the drawing board to make a lightweight, clean, easy-to-understand OpenGL renderer in the core of OpenFL. This has resulted in a number of great benefits, not only for maintenance and development, but also this has enabled support for WebGL by default in our HTML5 builds. We have working ShaderFilter support in Bitmap, TextField,DisplayObject and Tilemap, and plan to add support to Sprite in the future.

WebGL builds will fallback to 2D canvas automatically if WebGL is not supported by a user's browser, but if you would prefer to force the use of 2D canvas when targeting HTML5, use -Dcanvas when compiling.

Greater Consistency with Flash APIs

There are many subtle little differences we are changing in order to better support the behavior you expect when using an open-source Flash library. These will not hurt ordinary projects, but can make all the difference when you port an existing ActionScript project over to use OpenFL. We are on the road to continue to remove the tiny differences that unnecessarily make some porting projects complicated.

Commitment to the Stage3D API

In the past, the Stage3D compatibility layer was developed by our friends on the Away3D project, and maintained by generous contributors through pull requests. As an API, this was not supported by the core OpenFL team, but with our new OpenGL renderer, and continuing commitment to providing the functionality you expect, we have begun the process of improving our Stage3D APIs to conform more closely with the original API. We are partnering with the developers of the Haxe Starling port to continue to make improvements to our core Stage3D implementation so that we can grow to support modern ActionScript projects using Stage3D with as little headache as possible.

Continued Graphics Improvements

OpenFL continues to improve in its support for the shape.graphics APIs, with minor edits to improve accuracy, as well as changes to our renderer to support scaled graphics and full fidelity. For projects that are designed for set pixel dimensions, OpenFL 4 is now able to automatically upscale and letterbox projects, bringing full quality graphics to projects that may have been designed only for a lower-resolution screen.

 

Along with this release there was also an update to Lime, the underlying technology on which OpenFL is built.

Cocos Creator 1.1.2 Released

$
0
0

 

Cocos Creator is a game engine and editor built over top of Cocos2d-x for building mobile games using JavaScript.  I created a hands-on review of an earlier version of Cocos Creator if you want to learn more information.

 

This release brings several small changes and fixes.  From the release notes:

Editor
  • [Editor] Build to Web platform will merge asset JSON files now. The requests to download asset will drop by 50% in general. Currently an asset shared among multiple scenes will be merged additively. (If assetA and assetB both referenced by sceneC and sceneD, assetA and assetB will be merged into one JSON)
  • [Editor] Disable 'Preview' button when there're compilation error for user script. Once all errors are resolved the error log will be cleared in console.
  • [Editor] Removed Squirrel.Windows installer framework, with the new installer you can specify installation location and configure check update frequency.
  • [Editor] Fixed spriteFrame atlas replacement tool can cause reference error when replacing spriteFrame in multiple scenes.
  • [Scene] Fixed multi-select some nodes and press arrow keys to move them may get the distance wrong issue.
  • [Component] The Add component menu in Properties panel now sorted alphabetically.
  • [Importer] When import Cocos Studio or Cocos Builder project, buttons without text will not create Label nodes.
  • [Importer] Fixed import Cocos Studio older version may cause animation data lost issue.
  • [Importer] Fixed imported Cocos Studio / Cocos Builder project wrong value of lineHeight for Bitmap Font component issue.
  • [Build] Fixed build native failed may cause process to freeze issue.
  • [Build] Fixed preview with Chrome browser may cause Failed to parse SourceMap error issue.
  • [Build] Fixed building an empty project will cause: Build Failed: Error: TypeError: next is not a function issue.
  • [Prefab] Add a main menu item Node Presets-> Convert to Ordinary Node to break break the link of a node to prefab asset.
  • [Prefab] Fixed in prefab editing mode click 'save' button may not work issue.
  • [Animation] Fixed setting node opacity at the last frame event callback of an animation may fail issue.
  • [Animation] Fixed deleting animation event may fail issue.
  • [Assets] Fixed atlas and TTF assets may get reimported when open project issue.
  • [Assets] Fixed sprite not rendered correctly when referenced spriteFrame asset moved issue.
  • [Assets] Fixed texture asset thumbnail not updated when texture content changed issue.
  • [Assets] Fixed an error that can cause editor to freeze when importing 10000+ assets for new project issue.
  • [Assets] Fixed assets may not be imported correctly when moved assets after close editor issue.
  • [Assets] Add a warning dialog when user moved assets without updating the corresponding meta files.
  • [Assets] Add a replace asset confirmation dialog when dragging assets with the same names from file system to editor's Assets panel.
Engine
  • [Render] Fixed an issue that when setting parent node's opacity to 0 while setting child node's active to false may cause child node to not render when reactivated.
  • [Engine] Fixed simulator cannot send http request on macOS 10.11 issue.
  • [Engine] Fixed VS Code debug native fail on Mac issue.
  • [Engine] Fixed cc.follow action result in wrong coordinates issue.
  • [Engine] Add an error message when assign a boolean type value to cc.Label.string.
  • [Engine] Fixed cc.game.addPersistRootNode API may not work correctly in native platforms issue.
  • [Engine] Fixed screen flicker when switching scenes.
  • [Engine] Fixed script initialization may fail issue when re-enter a scene.
  • [Engine] Fixed when loading a Prefab asset in scene may cause infinite asset request issue.
  • [Engine] If game is running on Android OS with virtual buttons, the virtual button will be hidden when game launches.
  • [Engine] Fixed cc.repeat action will count wrongly when repeat times is above 6.
  • [JSB] Fixed cc.follow may cause error in JSB native platforms.
  • [JSB] Fixed scheduler.isScheduled() not implemented in JSB issue.
  • [JSB] Fixed _errorHandler wasn't found error reported in console with no valid reason issue.
  • [JSB] Fixed setMargin API not implemented in JSB for LabelOutline issue.
  • [Audio] Fixed audio asset takes very long to load on iOS browser issue.
  • [Audio] Fixed rewind API not working for AudioSource component issue.
Component
  • [Label] Fixed when overflow set to Shrink font size and label text flow not calculated correctly issue.
  • [Label] For BitmapFont label, When total character width smaller than Label node's width, character wrap mode will be enabled.
  • [Label] Fixed system font overflow not calculated correctly issue.
  • [ScrollView] Fixed button in ScrollView may stay in hover state issue.
  • [ScrollView] Fixed register touchendtouchcancel event on ScrollView node may not trigger correctly issue.
  • [ScrollView] Disable ScrollView node will stop scrolling now.
  • [EditBox] Add all lowercase format, fixed using TTF font asset on Android system issue.
  • [EditBox] Fixed calling setVisible will pop keyboard issue.
  • [EditBox] Fixed on mobile browser EditBox need to be clicked twice to pop keyboard issue.
  • [EditBox] Fixed EditBox not clickable in ScrollView issue.
  • [Layout] Fixed change child node's active property will not get correct bounding box size in None mode issue.
  • [Layout] Fixed issue when add a child node to Layout and then remove will not remove event listeners correctly.
  • [Button] Fixed switching interactable property for Button will not update normal and disable state spriteFrame issue.
  • [Collider] Fixed disabling collider will not clear debug draw issue.
  • [MotionStreak] Improved MotionStreak compatibility for Android browser.
  • [Tilemap] Fixed TiledMap may render with seams in WebGL platform issue.
  • [Tilemap] Fixed SGTiledLayer has inconsistent API between Web and Native implementation issue.
  • [Tilemap] Fixed issue that when tmx file is not at the same location of texture file the Tilemap may not rendered correctly issue.
  • [Spine] Fixed getCurrent() may cause infinite loop in JSB native platform issue. Please usespine.getCurrent() to fetch current playing track.
  • [Mask] Fixed masked node can still receive touch event issue.
  • [Mask] Fixed disabled Mask component can still block child node from touch event issue.

Downloads:
- Creator for Mac
- Creator for Windows

Torque 3D 3.9 Released. Announce 4.0 Features

$
0
0

 

Today Torque 3D released version 3.9 and in a somewhat odd release blog post they spoke mostly about the plans for the next release.  Torque is an MIT licensed open sourced 3D game engine written in C++.  This release constitutes 515 commits with the major releases being proper roll over to deferred renderer, an initial implementation of entity/component and DirectX 11 integration.

 

As mentioned earlier, the majority of the release blog post covers features intended for the 4.0 release:

So, here's a main features list that we're looking at bringing into Torque for 4.0:

  • Physically-Based Rendering. This is, unsurprisingly a pretty big one. Luckily, it's also most of the way done! The only main piece that needs finishing is reflection probes, and the core features are in. From there it would just be a matter of dialing in the supporting art pipeline and tweaking the math to make it look as good as possible.
  • MacOS support. This was originally slated for 3.9, if you look at the 3.8 release blog, but a lack of machines to test on, and the age-addled old platform code made it impractical to really tackle initially. The good news is, near the end of 3.9's development, with SDL and epoxy to take a LOT of the workload off, huge strides were made and it's actually almost completed. There's still some issues with rendering on some machines and catching errors and warnings that crop up, but it's looking very practical to have MacOS as an official platform for 4.0! You can see Timmy's screenshot in the 3.9 RC thread showing off T3D running on MacOS with his and JeffH's work now.
  • SDL as the main platform layer. Torque3D's supported SDL for quite a while now, and it's naturally the main platform layer for Linux(and MacOS). However, it's been a little bit of a red-headed stepchild to the Win32 platform code. For 4.0, that's changing and SDL will be adopted as the core platform layer with whatever glue needed sitting atop it. This will drastically simplify the platform code and make it easier to maintain. It also offers a good bit of future proofing should any other platforms come into the equation down the line. SDL's stuff is very nearly at parity with the Windows side, it's pretty much just a matter of jumping over the last bits and doing cleanup/bugfixes to make it rock-solid.
  • New Project Manager The old project manager was useful, but was hacked together with QT and php, so maintaining it was a little sketchy and fell by the wayside for the more standard CMake gui. However, there's lots of management things CMake can't do, which is why the Project Manager will be making a comeback, it'll just be a graphical frontend sitting upon the more standard cmake project generation. This new PM will let you manage your updates, and hopefully in the future hook into online repositories for easier grabbing and integration of updates as well as fetching content packages without hassle.
  • New Shadergen As great a job as the current workhorse does of generating shaders for all the many materials you need to make a game, updating and expanding it has proven to be a pretty annoying thing to deal with due to how it's structured. Excellent peice of tech, but a chore to maintain, just like ye olde German tanks in WW2. As such, we'll be looking into restructuring shadergen to not only make it easier to update and expand upon in the backend-sense, but also easier to build materials/shaders for the end user as well, up to, and probably including a node-based approach for engineering your fancy shaders for your fancy materials.
  • Graphics API refinements DirectX 9 has proven to be a monstrous workhorse of the graphical APIs, reliably serving well beyond what anyone though it would. However, while it has proven to be a rock-solid API, the time has come to retire the poor girl and send her off to the glue facto-eeeer, the farm. Yes. As such, DirectX 11 will be taking over as the main Dx rendering API, and will continue to see refinements to bring it up to speed now that Dx9 isn't hampering it or OpenGL. Timmy's been poking at this and has noted improved performance in Dx11 by quite a lot, and some gains in OpenGL as well.
  • Threads. Threads for days One major blocker to rendering performance that even dropping Dx9 won't help is that we curretly don't thread or do much to optimize out the render calls themselves. That'll change in 4.0. We've been brainstorming the optimal approach for a few months now and have a pretty solid plan of attack that will see the render calls threaded out, and also proper batching of rendered geometry where appropriate. So fewer, faster drawcalls for the same workload. We'll also be looking at threads for handling resource loading and spawning of objects to cut out all those hitches when the map starts or stuff is created.
  • Hardware Skinning Another thing that's been pretty much complete outside a few oddball behaviors we'll be getting in there is Hardware Skinning. When it's behaving, the current implementation already notes a huge improvement in performance for animated meshes, so getting it polished up and in should be a huge, immediate performance boon.
  • Physics API T3D's had a physics abstraction layer for a long time now, and it's been pretty useful in letting the end user decide if they wanted PhysX or Bullet. However, Torque's stock physics has still served a useful niche in being network-reliable, or lightweight for basic physics mechanics, and some people find it to be a pretty workable thing. As such, the Torque physics will be converted over into a Physics plugin, so all physics and collisions will go through the Physics API and standardize all the behavior for that across the engine, cleaning up quite a lot and making it easier to maintain.
  • Entities, Components, and Assets This is the big one from non-rendering side. 3.9 already has the initial implementation of the entity/component stuff, as well as the Assets/Modules systems, but they're not yet fully utilized. That'll change in 4.0. If you've been checking out my work blog with the recent updates, I've been covering work I've been doing on the improved asset pipeline, as well as continued work with the Entity/Component stuff. For 4.0, this will become the standard, and all existing gameplay classes(Vehicle, Player, Item, Shapebase) will be replaced with GameObjects built of entities and components to do the same work. The idea is to give users a similar base to what is in Torque now in terms of starting objects, but remove all the bulky, hardcoded functionality. It should be a standard point, not an anchor, after all. Tying to that, we also will have:
  • Assimp support This was actually mostly done back in the day, just some issues with animation stuffs and a few other minor problems. I'd poked at this with some R&D time a while back, so it shouldn't take much tweaking to get it polished up and hooked into the assets system, which will allow quite a few new 3d model formats, including FBX.
  • A new base template This is also basically complete. This will be a much more streamlined starting template intended to easily drop in modules, assets and the like into to build up your game project, as opposed to having to spend time stripping out the stuff you don't need. Numerous ancillary improvements also help load times, easier to read and comprehend code and the like. This will replace the empty and full templates, cutting down on the effort needed to maintain(no need to duplicate changes).
  • Vive support This comes from our own Mango's efforts. It's pretty much done, but didn't quite squeak in for 3.9. It will be going into 4.0 for sure.
Viewing all 1352 articles
Browse latest View live