Unreal Engine 4.2 has shipped

5. June 2014

 

The following email just landed in my inbox.

 

Unreal Engine 4.2 is Here!

 

In this update we’re shipping 269 new additions, 163 changes and 107 fixes. That's 539 updates in 6 weeks. Here are a few ways you can do more with Unreal Engine 4 for only $19 per month. If you haven’t signed up yet, please do!

Vehicle Template

Get our feature-rich vehicle support! 4.2 ships with a vehicle template in C++ and Blueprint form, plus our vehicle sample game to help you ramp up.

Read More

 

 

 

 

 

 

Tappy Chicken Demo

Explore Tappy Chicken, recently released for iOS, Android and HTML5, to learn how to make a small, simple app that deploys over the air in less than 30MB. Mobile enhancements include leaderboards, achievements and ad support.

Read More

 

 

 

 

 

Unreal Tournament

Join our new Unreal Tournament open development project for PC, Mac and Linux.

Read More

 

 

 

 

 

 

New Features for 4.2 Release

Get new features like camera animation system, Blueprint cut/copy/paste, and more!

Read More

 

 

 

 

Metal API, iOS 8 and UE4 Developers!

 

Zen Gardens

This week we were a part of Apple’s WWDC keynote revealing Zen Garden, a beautiful environment built in Unreal Engine 4 to demonstrate the kinds of vibrant dynamic scenes and enormous vistas made possible by the new Metal API for iOS 8. We’re bringing the latest technology to UE4 developers.

Read More

 

 

 

 

Download all the free, pretty content on Marketplace!

Here are just two recent additions.

SciFi-Hallway

Quixel’s stunning Sci-Fi Hallway

Read More

stylized Demo

Epic's Stylized Demo

Read More

 

 

We’re just getting started! Check out the UE4 Roadmap and vote for features you want to see in future releases.

If you have any questions or feedback you’d like to share, please visit the forums or join our live broadcasts at Twitch.tv every Thursday at 2pm ET, which you can always go back and view at YouTube.com.

Thank you for being a part of this adventure. As you can see at unrealengine.com, there are many exciting efforts in progress at Epic and throughout the Unreal ecosystem.

We hope to see you around.

 

 

I am downloading the update now.  It appears the download weighs in at 2.6GB.  Unreal continue to bring new features at a pretty good pace.

News ,




Phaser 2.0.5 HTML5 gaming library released… and speaking of which

21. May 2014

 

Yesterday saw the release of 2.0.5 of the Phaser game library.  Phaser is one of those libraries I am hearing about more and more recently.  It’s a JavaScript/Typescript game library featuring most of the things you would expect in a modern game engine, including:

  • WebGL and Canvas ( Pixi.js ) renderers
  • Physics
  • Sprites
  • Animation
  • Grouping
  • Input
  • Sound
  • Tilemaps
  • Caching
  • Plugins

 

Release 2.0.5 adds:


Updates
  • TypeScript definitions fixes and updates (thanks @luispedrofonseca @clark-stevenson @Anahkiasen @adamholdenyall @luispedrofonseca @WillHuxtable)
  • Input.getPointerFromIdentifier docs update to reflect where the identifier comes from. Pointer properties now set to give it fixed defaults (thanks @JirkaDellOro, #793)
  • Pointer.pointerId added which is set by the DOM event (if present in the browser). Note that browsers can and do recycle pointer IDs.
  • Pointer.type and Pointer.exists properties added.
  • QuadTree.retrieve can now accept either a Sprite with a physics body or a Phaser.Rectangle as its parameter.
  • PluginManager.add now accepts additional parameters and if given a function it will pass them all to the Plugin constructor.
  • Tilemap.getTile has a new nonNull parameter. If true it won't return null for empty tiles, but will return the actual Tile in that location.
  • Math.interpolateAngles and Math.nearestAngleBetween have been removed for the time being. They threw run-time errors previously.
  • PIXI.InteractionManager is no longer over-written if the object already exists (thanks @georgiee, #818)
  • Key.justPressed and justReleased incorrectly set the delay value to 2500ms. Now defaults to 50ms (thanks @draklaw, fix #797)
  • Stage.backgroundColor can now accept short-code hex values: #222, #334, etc.
  • Pointer.withinGame is now accurate based on game scale and updated as the Pointer moves.
  • Stage.bounds is now updated if the game canvas offset changes position. Note that it contains the un-scaled game dimensions.
 
New Features
  • New force parameter added to Group.set, setAll, setAllChildren, setProperty which controls if a property is created even if it doesn't exist.
  • Group.hasProperty will check a child for the given property and return true if it exists, otherwise false.
  • Phaser.Tween.from allows you to set tween properties that will end up where the current object is (thanks @codevinsky, #792)
  • Input.getPointerFromId will return a pointer with a matching pointerId value, if any. pointerId is a value set by the browser in the DOM event.
  • ArcadePhysics.getObjectsUnderPointer will return all children from a Group that overlap with the given Pointer.
  • InputManager.minPriorityID lets you set the minimum priority level an object needs to be to be checked by a Pointer. Useful for UI layer stacking.
  • New consts: Phaser.Tilemap.NORTH, SOUTH, EAST and WEST to use with plugins and generally just handy to have.
  • BitmapData.processPixelRGB added undefined check (thanks @muclemente, fix #808)
  • Phaser.Utils.transposeArray will transpose the given array and return it.
  • Phaser.Utils.rotateArray will rotate the given array by 90 or 180 degrees in either direction and return it.
  • BitmapData.rect provides a quick way to draw a Rectangle to a BitmapData.
  • Button.onOverMouseOnly is a boolean that causes onOver events to fire only if the pointer was a mouse (i.e. stops onOver sounds triggering on touch)
  • Tilemap.setCollision has a new boolean parameter 'recalculate' which lets you control recalculation of collision faces (thanks @max-m, #819)
  • Tilemap.setCollisionBetween has a new boolean parameter 'recalculate' which lets you control recalculation of collision faces (thanks @max-m, #819)
  • Tilemap.setCollisionByExclusion has a new boolean parameter 'recalculate' which lets you control recalculation of collision faces (thanks @max-m, #819)
  • Tilemap.setCollisionByIndex has a new boolean parameter 'recalculate' which lets you control recalculation of collision faces (thanks @max-m, #819)
  • Graphics.drawTriangles will draw an array of vertices to the Graphics object (thanks @codevinsky, #795)
  • Polygon.area will calculate the area of the Polygon (thanks @codevinsky, #795)
  • The Tiled JSON parser will now include Tiled polygons, ellipse and rectangle geometry objects in the resulting map data (thanks @tigermonkey, #791)
  • Input.addMoveCallback allows you to bind as many callbacks as you like to the DOM move events (Input.setMoveCallback is now flagged as deprecated)
  • Input.deleteMoveCallback will remove a previously set movement event callback.
  • Mouse will now check if it's over the game canvas or not and set Pointer.withinGame accordingly.
  • Mouse.mouseOutCallback callback added for when the mouse is no longer over the game canvas.
  • Mouse.stopOnGameOut boolean controls if Pointer.stop will be called if the mouse leaves the game canvas (defaults to false)
  • Tilemap.searchTileIndex allows you to search for the first tile matching the given index, with optional skip and reverse parameters.
  • Tilemap.layer is a getter/setter to the current layer object (which can be changed with Tilemap.setLayer)
  • Cache.checkKey added - allows you to pass in a Cache type and a key and return a boolean.
  • Cache.checkCanvasKey(key) - Check if a Canvas key exists in the cache (thanks to @delta11 for the proposal)
  • Cache.checkTextureKey(key) - Check if a Texture key exists in the cache (thanks to @delta11 for the proposal)
  • Cache.checkSoundKey(key) - Check if a Sound key exists in the cache (thanks to @delta11 for the proposal)
  • Cache.checkTextKey(key) - Check if a Text key exists in the cache (thanks to @delta11 for the proposal)
  • Cache.checkPhysicsKey(key) - Check if a Physics key exists in the cache (thanks to @delta11 for the proposal)
  • Cache.checkTilemapKey(key) - Check if a Tilemap key exists in the cache (thanks to @delta11 for the proposal)
  • Cache.checkBinaryKey(key) - Check if a Binary key exists in the cache (thanks to @delta11 for the proposal)
  • Cache.checkBitmapDataKey(key) - Check if a BitmapData key exists in the cache (thanks to @delta11 for the proposal)
  • Cache.checkBitmapFontKey(key) - Check if a BitmapFont key exists in the cache (thanks to @delta11 for the proposal)
  • Cache.checkJSONKey(key) - Check if a JSON key exists in the cache (thanks to @delta11 for the proposal)
  • New movement data added for a Pointer Locked mouse (Pointer.movementX/Y) (thanks @woutercommandeur, #831)
  • ScaleManager.bounds is a Rectangle object that holds the exact size of the game canvas, taking DOM offset and game scale into account.
 
Plugins

The Plugins have now all moved to their own repository

Bug Fixes
  • Line.pointOnLine corrected algorithm (thanks @woutercommandeur, fix #784)
  • Line segment collision fails under certain cicumstances (thanks @woutercommandeur, fix #760)
  • The P2 DistanceConstraint method signature has changed. Updated Phaser so maxForce is now passed as object (fix #788)
  • Moved the this._reversed flag outside of the property loop in Tween (as per tween.js issue 115)
  • Emitter.makeParticles updated to use Array.isArray() check on the key/frame values, so non-string objects can be passed in (thanks @AnderbergE, fix #786)
  • Tilemap.createFromObjects will now force the creation of the property again even if it doesn't exist (regression fix from 2.0.4)
  • Phaser.Line.intersectsPoints fixed by properly checking the boundaries (thanks @woutercommandeur, fix #790)
  • Group.set and setAll were changed in 2.0.4 to not create the property unless it existed. This broke backwards compatibility, so has been fixed.
  • Sound.play now returns the Sound object (thanks @AnderbergE, fix #802)
  • Device Silk UA test updated to avoid Safari conflict (thanks @jflowers45, fix #810)
  • Sound.stop on Samsung S4 would randomly throw a DOM error. Wrapped the audio stop in a try/catch (thanks FSDaniel)
  • RandomDataGenerator.integerInRange would return a non-integer value if you passed in a float.
  • Timer class updated so that code-resumed pauses don't mess up the internal _pausedTotal value (thanks @joelrobichaud, fix #814)
  • Timer class when paused by code after a game-level pause wouldn't set the codepaused flag (thanks @joelrobichaud, fix #814)
  • Stage.backgroundColor now properly accepts hex #RRGGBB and color values 0xRRGGBB again (fix #785)
  • Color.getRGB would return incorrect color components if a color value without alpha was given, now works with both 0xRRGGBB and 0xAARRGGBB.
  • Color.getWebRGB now works regardless if you give an 0xRRGGBB or 0xAARRGGBB color value.
  • If an object was drag enabled with bringToTop, the onDragStop event wouldn't fire until the mouse was next moved (thanks @alpera, fix #813)
  • RetroFont.text would throw WebGL errors due to an issue with Pixi.RenderTexture. Fixed in Phaser and submitted code to Pixi.
  • RenderTexture.resize would throw WebGL errors due to an issue with Pixi.RenderTexture. Fixed in Phaser and submitted code to Pixi.
  • Group.hasProperty fixed to not use hasOwnProperty, but a series of in checks (thanks @mgiuffrida for the idea, #829)
  • Tilemap.removeTile sets tiles to null but should set to index of -1 (thanks @draklaw, fix #835)

 

Plugins being moved to their own respository should make contributing to Phaser easier.  The repository is available here.

 

 

Personally I’ve been meaning to look closer at Typescript for a quite a while now and I’ve decided to do it with Phaser.  Of course I am going to document the process as I go, so if you are interested in Phaser or Typescript, stay tuned.  It’s not going to be a proper tutorial; as I have zero experience as of right now.  It should however still be useful to someone looking to get started with Phaser.

News, Programming ,




Unreal Engine 4.2 announcement

16. May 2014

 

Unreal just announced the contents of the upcoming 4.2 update.  I’m not sure when exactly it is going to be dropping ( I am downloading a 1.3GB update as we speak, but I don’t think it’s 4.2 ).  Regardless there is a stupid (good) amount of content in this update:

 

NEW: SAMPLE VEHICLE GAME

Vehicles are now fully supported in Unreal Engine! To celebrate we’ll be releasing a really cool sample game that demonstrates a fun off-road racing experience!  This will be available for free on the Marketplace with 4.2.

New Sample Vehicle Game

  • Out of the box support for 4WD, FWD, and RWD drive trains.
  • The default drive train simulation assumes 4 wheels; however it will work with any number of wheels.
  • As many gears you desire.
  • Automatic and semi-manual transmissions.
  • And it is all completely exposed to Blueprints!

Mechanical Setup for Vehicle Game

  • Full documentation on setting up a vehicle will be available on the release of 4.2
NEW: STYLIZED RENDERING SAMPLE

The Stylized Rendering sample will be available on the Marketplace for free! This sample showcases the rendering flexibly of Unreal Engine 4.

Stylized Rendering Sample

NEW: CAMERA ANIMATION SYSTEM!

Support for CameraAnims has now been added into Unreal Engine 4! These are very similar to CameraAnims from Unreal Engine 3, but now expanded with Blueprint support.

  • Conceptually, a CameraAnim is simply an animation that can be layered onto the in-game camera.  You can animate the camera position and rotation, FOV, and post process settings.
  • They can be created in the Content Browser, you can convert a track in Matinee to one, or you can import keyframes from external tools like Maya

CameraAnim System

  • To edit a CameraAnim, simply double click the asset in the Content Browser like you would any other asset. The CameraAnim editor is slightly customized version of Matinee. 
  • Multiple CameraAnimInsts (up to 8 currently) can be active at once, all blending and contributing to the final camera settings.
NEW: USER-DEFINED STRUCTURES FOR BLUEPRINTS

User Defined Structures are a brand new asset that is now available for use from within the editor!

A User Defined Structure can be created in the Content Browser.

User-Define Structures in Blueprints

They can be edited in the standalone editor by double clicking them in the Content Browser. Once you are done editing them, you can create a variable of a type of your newUser Defined Structure in your Blueprints.

Content Browser Blueprints

Like vectors, rotators, and other structures, your User Defined Structure will have Makeand Break nodes. User Defined Structures should behave like native structures: USTRUCT(BlueprintType).

NEW: BLUEPRINT FUNCTION LIBRARY

Users can now create a blueprint function library asset!  This allows you to create a nice library of Blueprint functions that can be used throughout your project!

Blueprint Library

Unlike the Blueprint Macro Library, Blueprint Function Libraries don’t require a Parent Class, and are able to be called by all Blueprints in the current project.

NEW: FABRIK INVERSE KINEMATICS SOLVER

FABRIK stands for Forward And Backward Reaching Inverse Kinematic.  It’s an IK solver that works on a chain of bones of any arbitrary length!

Fabrik Inverse Kinematics Solver

  • End Effector settings are the same as our TwoBone_IK node. It can be an absolute Transform, or a relative one (based on another bone from the same Skeleton).
  • In the Solver section, you define the chain of bones to use, from the ‘Root’ to the ‘Tip’. The ‘Tip’ will try to reach the end effector location.
  • End Effector Rotation Source allows you to control the rotation (maintain component space, local space, match end effector target rotation).
  • Precision is how close it needs to get. The lower, the more precise it gets to the End Effector Target, but the more expensive. (Although from tests it does a really nice job, and much quicker than the CCD_IK node).
  • MaxIterations is there to control performance, and make sure edge cases will not take frame rate down.

Thanks to GitHub community member Stephen Whittle for this feature!

NEW: CANVAS RENDER TARGETS

You can now draw Canvas UI straight to a texture, and then map that texture to objects in your scene!

  • This is fully supported by both C++ and Blueprint workflows. 
  • A special thanks to community member James Tan for submitting this.
NEW: VEHICLE TEMPLATE

We have a new project template that gives a simple automobile to start your new vehicle-based project with.  Both Blueprint and C++ versions of this template will be included with 4.2!

Vehicle Template

NEW: ANIMATION BLUEPRINT ASSET OVERRIDE EDITOR

Persona now has the ability to override the assets used in Play and Evaluate nodes in parent animation blueprints from a child blueprint.

The editor for this can be found in the Window menu in Persona:

Asset OVerride

The editor collects all of the nodes that can have their animation asset overridden. New assets can be picked from the pickers on the right of the panel. This works with longer inheritance chains too and shows the most appropriate defaults for that blueprint based upon the blueprints further up in the hierarchy. Finally, the “eye” button will link you to the AnimGraph node you are overriding:

AnimGraph

NEW: IMPROVED ANIM NOTIFY EDITOR

Multi-select support for Anim Notifies has been added into Persona! Shift + click adds to selection, and Ctrl + click toggles a notify selection.

You can drag the selection around and it will remain within the notify panel while obeying snaps:

Image Notifier

Copy/Paste works with groups too with a number of options:

You can paste them at the absolute, relative, or original time, in relation from where they were copied.

NEW: BLUEPRINT CUT AND PASTE FOR COMPONENTS

Cut/Copy/Paste commands have now been added to Components mode!

Blueprints Cute/Paste

  • Select individual components and either right-click or use keyboard Cut/Paste commands to copy or move components around!.
  • You can cut/copy components from one Blueprint and paste them right into another Blueprint!

If the selection includes a hierarchy, it will be preserved in the pasted copy!

NEW: EXPERIMENTAL MATH EXPRESSION NODE FOR BLUEPRINTS

There is a new experimental plugin available for the Math Expression Node for Blueprints. This node enables you to simply type in an expression and it will make the input pins, output pins, and a collapsed graph that contains your math expression.

Experimental Math Expression Node

  • To use this node, simply activate the Math Expression plugin in the plugin manager. It will then appear in the right click context menu of the Blueprint Graph Editor
  • Once created, type in your expression. If you make a mistake, you can edit the expression by renaming the node.
NEW: UV PARALLAX FOR SPLINETHICKEN MATERIAL FUNCTION

You can now add UV parallax to materials using the SplineThicken Material Function.  This makes it look like your object is round!

SlineThicken Example

  • The normals part of the function has been re-touched and they are now transforming correctly for all object rotations. This gives accurate lighting and specular!

New inputs:

  • UVs for Thickness (V2): This lets you specify a different UV channel for storing the thickness (tip to base) gradient. Useful to have this on UV1 or 2 for trees where there might be an overall tree length included not just a single pipe or branch etc.
  • UVs for Texturing (V2): This is the UVs for any textures you want applied to the pipe. You need to include and scale math here so it knows how much to parallax by. This is only needed if you want the 3D parallax correction results.
  • DeriveNormalZ (Bool): When checked, the shader will use DeriveNormalZ to compute the height of the normal. Gives much nicer ‘round’ shape. When false, 0.62 is assumed which is the average height of half a sphere centered at 0. If you want to use CustomUVs to solve the normal, you either need DeriveNormalZ to be false, or you need a row of vertices in the center of the spline mesh. If you do not have the added verts and use CustomUVs, it will say the normal has 0 height across the entire mesh.
  • AngleCorrectedNormals (Bool): Whether to use angle corrected normals when applying the additional normal texture. More accurate but more expensive.
  • AdditionalNormal (V3): Lets you specify an additional normalmap that will piggyback onto the vertexnormal transformation.

New output:

  • UVs with Parallax: This gives the UVs to use for any textures you want to have the 3d parallax.

Currently the function only handles 1 texture coordinate, so if you want multiple textures to have the correction, they all need to use the same scale.

NEW: ANIMATION DEBUG FEATURES

There are a number of new Animation Debug commands at your disposal. First there is in game rendering of a skeletal mesh’s bones:

Animation Debug Features

This is enabled using the ShowDebug Bones console command. As seen above the bones are represented by individual white lines.

  • An alternative look, matching the bones displayed in Persona, can be enabled via theShowDebugToggleSubCategory 3DBones console command.
  • Next is the animation debug output, which can be enabled using the ShowDebug Animation console command.
  • This is split up into 5 sections, each of which can be toggled on and off using theShowDebugToggleSubCategory command followed by the category name listed below e.g. ShowDebugToggleSubCategory SyncsGroups
    • SyncGroups: Displays the animation assets currently contributing to the final pose, organised by their sync group (or Ungrouped if they don’t belong to a group). By default Blendspaces listed in this section show all their contributing animations / weights. To reduce screen space used by the output this can be toggled off with ShowDebugToggleSubCategory FullBlendspaceDisplay.
    • Montages: Lists the montages currently being used by the character. The active montage is highlighted in green.
    • Curves: List the curve values (in Name: Value pairs) that have been activated by the playing animation(s).
    • Notifies: Display any notify states that are currently in effect.
    • Graph: Displays the active pose graph. The display starts with the last node (the root node) which represents the final pose and goes on to list all the nodes that go into making that final pose. Nodes are represented in such a way as to keep their hierarchy, allowing the user to see which nodes are connected to what without having to refer to the original blueprint asset. Active nodes are coloured green and (if they have been toggled to display usingShowDebugToggleSubCategory FullGraph ) inactive nodes are coloured grey.
NEW: LEVEL VIEWPORT STATS

Many useful engine stats can be visualized over the viewport.  You can now access these using the new “Stat” section under the viewport “Show” menu.

Level Viewport Stats

  • You can also toggle most of these stats by typing “Stat <name>” into a debug console prompt. 
  • By default the stats aren’t remembered between sessions, but you can turn that on by enabling “Save Engine Stats” in the editor’s Viewport preferences section.
NEW: OBJ MESH FILE FORMAT SUPPORT

You can now import .obj files for static meshes!

The file format is very simple so keep in mind that it does not support the following features:

  • Vertex color importing.
  • Collision importing.
  • Tangent and binormal importing.
  • Transforms.
    • The model will be rotated if not modeled with Z up because with OBJ importing we have no way of getting the source coordinate system.
NEW: UPGRADED FBX TO 2014

The FBX importer as now been upgraded to the 2014 version from Autodesk.

  • This allows Tangent and binormals on mirrored meshes to be imported correctly
  • You can still use the earlier FBX plugins found in any Maya/Max version before 2014, but you may get a warning on import when using a very old file.
NEW: WINDOWS XP SUPPORT (PREVIEW)

Developers working out of GitHub now have the ability to deploy your project to Windows XP.

  • To enable this, set WindowsPlatform.SupportWindowsXP to true in UnrealBuildTool, and edit your project’s settings to enable OpenGL shader support.
  • When running on Windows XP, OpenGL is automatically used instead of DirectX 11 for rendering
  • This feature is early in development and will be improved over time.
NEW: IMPROVED BLUEPRINT SUPPORT FOR ACTOR DESTRUCTION
  • In Blueprints, the new EndPlay function replaces the Destroyed function.  Existing usages of Destroyed will automatically update to the new function.
  • EndPlay will not just fire when an Actor is explicitly destroyed, but will also execute anytime an Actor ceases to be in the World.  This includes a level transition, a streaming level being unloaded, a PIE session ending, or Destroy being called for an Actor
  • In C++, the AActor::Destroyed virtual function remains, however it is primarily intended for editor transaction purposes.
  • The C++ AActor::EndPlay virtual function takes an enumeration parameter indicating the reason the Actor has been removed from the World.
  • The AActor::OnRemoveFromWorld virtual function, previously called for each Actor when the streaming level they belong to was unloaded, has been removed and its functionality included in AActor::EndPlay.
IMPROVEMENTS AND BUG FIXES

Editor

  • New: Vertex painting now works with Blueprints.
  • New: When attaching actors, you can now use an actor picker to choose which actor to attachto.
  • New: Added check for "Game View" when drawing geometry features in the editor.
  • New: You can now use Alt + [ or ] to adjust the size of the transform gizmo.
  • New: Collections now store and display a custom colour based on the local user settings.
  • New: Added option for Flat Bottomed collision to character components.
  • New: You now have the option to remove content downloaded from marketplace.
  • New: Creating multiple actors using drag and drop from the content browser now undo's as a single transaction.
  • New: Added the ability to refresh the project browser list.
  • New: You can now chooe where to place a class added via the New Class Wizard.
  • New: You can now provide a function to get the objects you want to show in the details view when creating an FSimpleAssetEditor.
  • Moved Source Code Access functionality to a plugin.
    • Source code access is now performed on the main thread.
  • Changed Static Meshes to check Screen Size rather than Distance to calculate which LOD to use.
  • Changed renaming an actor so it now ignores leading or trailing space when validating the name.
  • Fixed static lighting to now be disabled for Instanced Static Mesh Components.
  • Fixed project template names and descriptions to now fall back to English if a valid translation cannot be found for the current language.
  • Fixed the Submit Files Dialog to now follow the same style as the rest of the engine.
  • Fixed the Cascade ToggleRealtime tooltip to match the other Editor Viewports.
  • Fixed Particle System Components to now toggle visibility correctly.
  • Removed viewport-position menu items from the scene outliner menu.
  • Disabled Ctrl-select when using vertex paint.
  • Content Browser
    • New: Enter and Space Bar keys can now be remapped for the Content Browser.
  • Material Editor
    • New: Release Stats and Build In Stats toolbar buttons now have icons.
    • New: Added Find Results tab to Material Editor.
    • New: Added shortcut for component mask on Shift+C.
  • Texture Editor
    • Changed the Use Specified Mip Level property (bUseSpecifiedMipLevel) to now default to false, and the number of cinematic mips is ignored by the UI when it's true.
  • Persona
    • Changed the default and details inspectors so they are now disabled when editing a read only graph.
    • Fixed the erroneously set flag CPF_DisableEditOnTemplate by adding code to clear it.
  • Source Control
    • New: Added ability to sync directories from source control in the Editor.
  • New: Added P4 API 2014.2 with OpenSSL 1.0.1g.
  • BSP
    • New: A BSP actor is now deselected when none of its surfaces are selected.
    • Fixed the Slate Property Editor Combo element (SPropertyEditorCombo) to update the selection before opening itself.
  • UI
    • Fixed restoring from full screen to now set the window position on the native window.
  • Viewports
    • New: In-game Slate UI is now visible in editor viewports when in immersive mode.
  • Scene Outliner
    • New: Added filter that hides actors that aren’t in the current level.
    • New: There is now a menu option for scene outliner folders to select all the actors within that folder.
    • New: Duplicate now functions with hidden actors.
    • Changed the 'eye' visibility icon to acts on the current selection, if the row is selected.
    • Removed viewport-position menu items from the scene outliner menu.
  • Landscape
    • New: Implemented navigation geometry export for instanced static meshes.
    • New: Added support for landscape splines to FBX export.
    • Removed sculpting-only options from flatten tool when in paint mode.
  • Audio
    • New: Integrated Omni Radius from Unreal Engine 3.
  • Animation
    • New: Native Anim Notifies and states are now supported.

iOS, Android, and HTML5

  • Lots of iOS, Android, and HTML5 improvements – full details will be in the final release notes.

Blueprints

  • Fixed duplicate move calls occurring on Blueprint Graph nodes.

Rendering

  • New: The build scale is now taken into account when calculating a Static Meshes streaming texture factors.
  • New: Particle parameter distributions can now be used in conjunction with Color Over Life for GPU sprites.
  • New: Mesh Modifies Material Position now uses the result of the material translator.
  • New: Particle Lights now work with camera offset (per-view).
  • New: Added commandlet which lists all Static Mesh assets that were imported fromSpeedtrees.

 

 

An impressive amount of new feature in this update. The biggest have to be the ability to render UI components to in game objects as well as the new vehicle support.  The new camera animation system is also an impressive addition.  On of the smaller, but probably most important to many indie developers, is the addition of OBJ support for static mesh creation.  This opens up Unreal Engine to a whole realm of 3D creation tools that have no ( or poor ) FBX support, as the > $4,000 price tag on various Autodesk applications can make for a bitter pill.

 

I have to say, I continue to be amazed at how fast they are updating Unreal Engine.  Hopefully this update drops very soon.

News , ,




An “Unreal” week for game developers

10. May 2014

 

First off, sorry for the horrible pun… I wont do it again… at least not today.

 

That said, Unreal may have just flipped the industry on it’s head… or may have just dropped a cleaver marketing gimmick.  By now you have probably heard that Unreal Tournament development will be done in the open.  At least for Unreal Engine subscribers it will be.  Basically if you subscribe to Unreal Engine for 19$ a month, you get Unreal Tournament for free.  The biggest part of the announcement is you get access to a Github repository, so you can watch the game develop, or perhaps even get involved!

 

In Unreal’s own words:

 

HERE’S THE PLAN:
  • We’ve created a small team of UT veterans that are beginning work on the project starting today.
  • From the very first line of code, the very first art created and design decision made, development will happen in the open, as a collaboration between Epic, UT fans and UE4 developers. We’ll be using forums for discussion, and Twitch streams for regular updates.
  • If you are a fan and you want to participate, create a free account and join the forum discussion.
  • All code and content will be available live to UE4 developers on GitHub.
  • The game will be true to its roots as a competitive FPS.
  • Development will be focused on Windows, Mac and Linux.

 

SO WHAT’S THE CATCH?
  • It will take many months until the game is playable by gamers. This is real development from scratch.
  • When the game is playable, it will be free. Not free to play, just free.
  • We’ll eventually create a marketplace where developers, modders, artists and gamers can give away, buy and sell mods and content. Earnings from the marketplace will be split between the mod/content developer, and Epic.  That’s how we plan to pay for the game.

 

So why do I find this move so impressive?  There are a couple reasons…

 

First I was wondering if I would maintain my subscription.  If I am not actively developing in Unreal Engine, was there any point in paying 19$ a month?  I, and many others, wondered if Unreal would keep a stream of content coming that would keep developers paying.  To actively open up a potentially AAA game’s development process is certainly a good hook to keep me watching.  ( Plus, they’ve done a pretty good job keeping the content coming… more on that in a second ).

 

Second, quasi-open sourcing a game could be a brilliant strategy.  Indie developers get to contribute to a large project, probably beyond the scope of what they would otherwise be able to participate in.  Unreal of course gets a ton of free development effort, but retains dictatorial control that large scope games need.  Of course they will have to be selective about what they commit to their main trunk and may bruise some egos, so this could be a bit of a balancing act and will require additional resources on their end, but the trade-offs are probably worth it.  I would generally think this would be mostly a read only process, basically just Unreal developing a game and the community watching.  However they have recently accepted a number of community fixes into the Unreal engine base, so I don’t think this is just marketing.  If nothing else, many indie game developers get the opportunity to eavesdrop on a AAA game’s development, including developer discussions and twitch streams, for a price tag of 19$ a month.

 

The Unreal Tournament github repository is now online:

image

Of course, this is a from scratch project, so have very little expectations for now!

 

 

Finally and perhaps most disruptively “create a marketplace where developers, modders, artists and gamers can give away, buy and sell mods and content. Earnings from the marketplace will be split between the mod/content developer, and Epic”.  This point is MASSIVE.  Basically Unreal are releasing a F2P title where the microtransactions come from the community.  This is a powerful concept, enabling artists and coders to actually get paid for their work, using the exact same tools and process as the parent.  Just as artists and programmers can make a living providing assets to the Unity store, in the future, they will potentially make a living contributing to a game.  A game they potentially helped create.

 

 

Oh, remember earlier where I said Unreal would have to keep a pretty steady stream of updates to keep people subscribed?  Well, impressively enough, they have been.  Since the 1.1 patch ( adding XBox One and PS4 support ) there have been a half dozen new tutorials added, covering topics such as Localization, skeletal meshes and Blueprint complexity management.  Additionally they added a SciFi hallways level:

SciFi Screenshot 1

 

The marketplace is quickly being populated with professional quality examples to work from.  You can read more about the design process here.

 

I have to say Unreal are impressing the hell out of me.  They are taking bold risks and truly are throwing their resources at this, it’s not some half assed indie release like CryEngine or prior UDK releases… this is a slick well supported product and most importantly a thriving community.  Unreal are willing to try some very disruptive strategies and we should applaud them for it.

 

I for one will be keeping my 19$ a month subscription going.

 

Oh yeah, and on that topic, they’ve also laid out a blueprint ( ugh, bad accidental pun! ) for future Unreal development.  You can check it out here on Trello.  This transparency is certainly a good thing.  You can also vote and comment on features that are most important to you, a nice feedback loop with subscribers.

News, Programming ,




Version 3.0 of the Torque2D game engine released

4. May 2014

 

Last year the Torque2D was open sourced under an MIT license by GarageGames.  Torque2D is a cross platform 2D game engine.  Originally it only targeted Windows, OSX and iOS.  Now fortunately support for Android, Web and Linux have been added with the release of version 3.0.

 

From the release notes, here is what’s new:

What’s New in 3.0


The following is a summary of the major changes and additions:


Android, Linux, and Web Support

The major focus of this release brings several additional platform publishing options for your game or application. T2D truly delivers on cross platform support, making it easy with one codebase to reach many different audiences on many different devices.

64-bit Applications

In addition to the standard 32-bit support we’ve always had, the engine can now compile as a native 64-bit application for platforms that support it.

Named Image Cells and Frames

Until now, image frames have always been referenced using a numerical index. Now, developers have the opportunity to give explicit ImageAsset cells specific names. Those names can then be used with all SceneObject derived classes that consume ImageAssets.

<ImageAsset 

  1.     AssetName="soldierWalk"
  2.     ImageFile="@assetFile=soldierWalk.png">   
  3.     <ImageAsset.Cells> 
  4.         <Cell RegionName="walk1" Offset="2 2" Width="103" Height="66"/> 
  5.         <Cell RegionName="walk2" Offset="179 100" Width="37" Height="35"/> 
  6.         <Cell RegionName="walk3" Offset="2 70" Width="65" Height="31"/> 
  7.         <Cell RegionName="walk4" Offset="161 137" Width="36" Height="41"/>         
  8.     </ImageAsset.Cells> 
  9. </ImageAsset> 
  10. <AnimationAsset 
  11.     AssetName="soldierWalkAnim"
  12.     Image="@asset=ToyAssets:soldierWalk 
  13.     NamedAnimationFrames="walk1 walk2 walk3 walk4"
  14.     AnimationTime="1" /> 

Skeletal Animation

We are pleased to announce that an initial implementation for skeletal animation is now available. The first format supported comes from the animation program Spine.
t2dtutorials.com/img/SpineToy.png
Leap Motion Controller

The Leap Motion controller takes input from hands, fingers, and small tools that are moved just above its surface and provides their absolute position and rotation through the Leap SDK. Torque 2D offers built in integration and now includes a demo toy to show off how it works.
t2dtutorials.com/img/LeapToy.png
Xbox 360 Controller

Gamepad support has always been part of the engine, but now the necessary code to use an Xbox 360 controller with T2D has been added.

JSON Format for TAML

Joining XML and binary, developers can how serialize their game objects and scenes in the JSON format, with the engine being able to read-in or write-out this format as easily as the others.

 

  1. "Sprite": { 
  2. "SceneLayer": "31", 
  3. "Size": "100 75", 
  4. "BodyType": "Static", 
  5. "BlendColor": "SlateGray", 
  6. "Image": "@asset=ToyAssets:highlightBackground", 
  7. "Frame": "0"
  8.     } 

ConsoleMethodWithDocs

A major undertaking in the codebase, the vast majority of TorqueScript binding methods and global functions have moved into their own header files. This makes the engine code much easier to read and allowed us to further integrate Doxygen support for a comprehensive reference guide available in the wiki.

ScriptObject Behaviors

Behavior support was added to the ScriptObject class. If you enjoy writing behaviors, now there is an engine class outside of the Scene and SceneObjects which can use them.

Polar Coordinate Changes

One of the few changes made that would break any of your existing scripts - polar coordinates have been standardized throughout the engine to follow the typical polar axis convention where 0 degrees is horizontal and to the right.

New Sandbox Toys

A few more toys were added to the Sandbox, giving new users even more practical examples to learn from. These include AudioToy, AngleToy, LeapToy, and SpineToy.
t2dtutorials.com/img/AudioToy.png

Change List


Below is a list of all changes that have been made to the development branch of the Torque2D repository since the 2.0 release and have now been pushed to the master branch and tagged as Torque 2D 3.0.
TAML supports reading and writing in JSON format
Batch renderer now works exclusively with triangles instead of quads
Fixed SceneObject.applyForce and applyLinearImpulse
Added signum convenience function (PR #56)
New Gui Object: GuiGridCtrl (PR #9)
Added missing TorqueScript methods to ParticleAsset/Emitter/Player, renamed a few static fields for consistency (breaking change) (PR #68)
Fixed ImageAsset typo - image width and height were swapped (PR #70)
All picking modes for CompositeSprite are now functional (PR #69)
TextureManager fix - replaced call to use expandPath (PR #83)
ParticleAsset creation fix - now writes out correctly to TAML (PR #84)
ParticlePlayer play and stop functions now correctly pause and unpause emitters (PR #85)
Added functions to get the explict width and height of cells to ImageAsset (PR #88)
Fixed AABB size in ImageFont (PR #97)
Fixed TAML bug with ImageFont (PR #99)
Fixed TAML bug with ShapeVector (PR #104)
Added Mac OSX 10.6 support (PR #101)
Added linear interpolation and smooth step functions, SceneWindow now uses these (PR #95)
OpenAL streaming audio fix (PR #106)
OpenAL pause and unpause audio fix (PR #115)
OpenAL shutdown fix (PR #114)
PointForceController getPosition definition fix (PR #110)
SimXMLDocument crash fix (PR #113)
Replaced most ConsoleMethod (and functions) with ConsoleMethodWithDocs for easier Doxygen reading, moved most console methods into their own ScriptBinding.h files. (PR #116)
Behavior support for ScriptObject (PR #121)
Angle/polar coordinate issue fixes (breaking change), AngleToy added to Sandbox (PR #123)
Input bug fix for OSX (PR #125)
Fix assert conditional in consoleNamespace.cc (PR #126)
Android platform support added
Xbox 360 controller support (PR #136)
Leap Motion controller support, LeapToy added to Sandbox (PR #137)
Added missing Mutex to StringTable::lookupn (PR #127)
Asset support for named cells and frames (PR #139)
Bugfix for SceneObject::getContacts (PR #142)
Fixed deleting a clone of an object breaking the original object (PR #143)
Fixed bug that prevented scene controllers from being read by TAML (PR #145)
Initial implementation of Spine support, SpineToy added to Sandbox (PR #146)
Doxygen file cleanup (PR #148)
Fixed some Xcode compiler warnings (PR #150)
64-bit platform support (PR #154)
Fixed GUI object namespace issue (PR #152)
Fixed crash when executing FileDialogs (PR #153)
Linux platform support (PR #138)
AudioToy added to the Sandbox
Exposed method CompositeSprite::getSpriteLogicalPosition in TorqueScript (PR #155)
Emscripten platform support (PR #157)
Fixed TAML binary writer crash (PR #158)
Fixed compile errors and warnings resulting from the Xcode 5.1 update (PR #159)
Windows platform fixes (PR #168)
SkeletonObject now respects scene layer depth settings (PR #171)
Named cell and frame improvements (PR #172)
Fixed iOS7 bug with audio not playing (PR #175)
Arm64 support (PR #176)
Removed PVRTexTool files (PR #177)
Android platform fixes (PR #174)
Visual Studio 2013 solution files added (PR #182)
Behavior Connection bug fixes (PR #183)

 

Torque2D is available on Github.

 

I’ve personally never checked out Torque2D, one of the biggest drawbacks was the limited platform support, which has been solved by this release.  My other major caveat is their use of a proprietary scripting language, something I am generally not a fan off.

News ,