Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
25. August 2016

 

Epic have just released another preview release of Unreal Engine, this time 4.13.  Being a preview this release is not meant for production use, so expect the occasional bug and glitch.  This preview release consists entirely of bug fixes, there are no no features.  There is no forum post about the release this time due to the recent security breach of their forums.  The release was instead announced on the Unreal Engine blog, release notes copied below.

 

4.13 PREVIEW 3 RELEASED

4.13 Preview 3 is now available for download on the launcher! As a reminder, the Preview releases are an early look at what is to come and are not yet production-ready. Here's what you can expect in this release:

FIXED IN PREVIEW 3 - CL 3095848
  • UE-34697 - Samples Trigger Fails for Strategy Game on Android
  • UE-34785 - Successive launches via the Project Launcher yield "LogStats:Warning: MetaData mismatch..." in the console
  • UE-34788 - Launching from Project Launcher consecutively without closing previous launch's command window will crash the game
  • UE-34627 - Crash using Camera Rig Rail when deleting a point moving another
  • UE-34804 - Editor crashes when attempting to change units in project settings
  • UE-34758 - SplineComponent debug render is sometimes not in sync with the current spline points
  • UE-34733 - Crash when closing the timeline tab inside UMG editor and reopening UMG editor
  • UE-34702 - [CrashReport] UE4Editor_CoreUObject!UClass::GetDefaultObject() [class.h:2194]
  • UE-33301 - The cap of a sliced procedural mesh is not affected by lighting
  • UE-30405 - Accessing vertex data from CPU side code can cause crashes on merged skeletal meshes.
  • UE-34701 - Prevent preview scene assets being loaded in-game
  • UE-34776 - Ensure when automapping a rig to a skeletal mesh with matching bone names
  • UE-34015 - Rename OrientationDriver to PoseDriver before release
  • UE-34832 - Debris particles constantly firing in ending sequence of Infiltrator Demo
  • UE-34715 - XB1 fails to compile due to FXAudioDeviceProperties symbols undefined
  • UE-34680 - CLONE - Client stops working and crashes if headphones are unplugged on Windows 10
  • UE-34101 - Stat Soundcues not working
  • UE-34951 - Zero-volume vorbis decoded sounds are too expensive
  • UE-34689 - LOD's pop in after LOD actors is visible in viewport
  • UE-34807 - Force View is enabled after Generating Proxy Meshes
  • UE-34739 - [CrashReport] UE4Editor_Engine!FInitBodiesHelper<0>::CreateShapes_PhysX_AssumesLocked() [bodyinstance.cpp:1282]
  • UE-34348 - Crash opening levels with landscape in them via the command console in standalone game
  • UE-34794 - PS4 packaging failing with GLEO errors in 4.13 for project that worked previously
  • UE-34843 - KiteDemo Standalone crashes on launch
  • UE-34513 - Editor crashes while switching to paint mode if material has a grass output and landscape visibility mask
  • UE-34877 - [CrashReport] UE4Editor_Engine!UMaterialInstance::SetParentInternal() [materialinstance.cpp:2141]
  • UE-33593 - Vulkan projects crash on device
  • UE-34257 - Cannot package project with landscape to mobile
  • UE-32323 - App does not resume after locking and unlocking on iOS
  • UE-34639 - Steam libraries are not being packaged with ShooterGame on Mac
  • UE-34450 - Linux: crashes during crash handling
  • UE-34857 - Mac/iOS: Movies with spaces in name won't play
  • UE-34721 - Blank Blueprints project with Starter Content crashes when PIE Standalone Game or Mobile Preview
  • UE-34852 - Give a better error message if OBB would need Zip64 format
  • UE-34719 - CIS Failure Package UnrealMatch3 IOS
  • UE-19996 - [Linux] Setting fullscreen game resolution below set window resolution does not stretch the game across the window
  • UE-28322 - Converting BSP to static mesh on Linux causes the editor to crash
  • UE-34849 - Force OBB to never use Zip64 format
  • UE-34841 - Possible to read past end of central directory in OBB (NumEntries may be 65535)
  • UE-34699 - Need way to insert newlines in UPL
  • UE-34773 - iOS - Packaged .ipa will not deploy to device via iTunes
  • UE-34735 - Regression: Xbox One ESRAM usage has been disabled, causing severe perf degradation
  • UE-34590 - AtmosphericFog for translucent material is not working correctly with 4.12
  • UE-34514 - Game crashes when opening TM-ShaderModels while running -featureleveles2 -OpenGL
  • UE-34241 - Crash with mesh particles
  • UE-33077 - Editor crashed when exiting PIE session in test map involving FDebugCanvasDrawer::DrawRenderThread
  • UE-34688 - Mac compilation error with ClearBufferData
  • UE-34917 - Screen Percentage post process volume causes black screen flickers during transition in Standalone Game
  • UE-34712 - Media Shaders won't compile in ES2 with integer modulo operations
  • UE-34658 - Text overflows on Material_Properties sample 1.6
  • UE-34667 - Buggy gets stuck on medium speed bumps in Vehicle Advance template
  • UE-34653 - ContentExamples: Landscape examples are solid black in editor viewport
  • UE-34139 - Tutorial Asset outdated in all BP templates causing highlighting to fail
  • UE-34910 - ContentExamples: Parameter is misspelled in Example 1.3 on MorphTargets map
  • UE-34419 - Duplicate mappings on the flying template for the game pad
  • UE-34660 - Navmesh map's floor display banners obscured by navmesh while PIE
  • UE-34846 - SideScrollerCharacter.uasset has been saved with empty engine version
  • UE-34848 - Ledge_17 location is different in Blueprint and code Side Scroller 2D templates
  • UE-34950 - ContentExamples PostProcessing map demo 1.13 post process volume screen percentage is not low enough
  • UE-34907 - Misspelling in Blueprint_Splines level of Content Examples
  • UE-34911 - Misspelling in Cloth level of Content Examples
  • UE-34611 - Crash when trying to edit a key value via the context menu for FVector2D
  • UE-34823 - FBX imported from maya have incorrect tangents
  • UE-34459 - Exported Sequence camera has incorrect tangents
  • UE-34970 - VR Template has FinishCurrentFrame set, which will degrade performance unnecessarily

GameDev News

25. August 2016

 

Crytek have just released CryEngine 5.2, their now open source AAA 3D game engine.  CryEngine 5.2 brings a number of new features, one that will be huge for Blender users, the FBX importer now has full material and animation support making CryEngine useable without using their exporter plugins.CryEngine

 

 

Major features of this release are:

  • FBX importer now supports animation and materials (video link)
  • VCloth 2.0 cloth simulator (video link)
  • Constraints on live characters
  • New C++ starter template (fps, tps, sidescroller, top down, rolling ball physics)
  • Documentation improvements
  • Window shell extensions for launching projets
  • CryPlugin system beta
  • Sandbox UI notification center
  • Viewpont gizmo in sandbox
  • Particle Editor new UI
  • Simplified project creation and Management
  • Extended analytical occluders support
  • Detailed screen space shadows (DSSS) officially supported

 

You can read the full release notes here.

GameDev News

24. August 2016

 

Welcome back to the ongoing Defold Game Engine tutorial series looking at all aspects of game development using the Defold game engine.  In this tutorial we are going to look at the process of playing sound and music in Defold.

 

There is an HD video version of this tutorial available here.

 

Playing sound in the Defold engine is simple, which is a double edged sword.  It’s extremely easy to add and play a sound file.  On the other hand the functionality provided is also quite simple.  Many things you may want to accomplish ( callback on sound end, fast forwarding/rewinding a playing audio file, positional audio, etc. ) simply aren’t supported.

Let’s start by adding some audio files to the project.  In my case I added a folder named audio and dragged in an ogg file and a wav file from Windows Explorer to Defold.  These are the two file formats supported.  The ogg file is an Ogg Vorbis file, a compressed streamed format similar to mp3 format but not patent encumbered.  Wav files are almost entirely uncompressed but require less processing power.  In a nutshell for longer form audio files, such as music, use an ogg.  For sound effects, use wav.  The end result should look something like:

image

 

Next we go ahead and create a sound component for our game.  You could parent your sound components to whatever game object you wish.  If it makes sense to create a music player game object and attach all the sounds to it, you could.  Or if you want your game objects (for example, the player) to own their own sound components, that’s alright too.  Select whatever game object you want to add the sound to, right click and select Add Component.

image

 

Next select Sound from the component list.

image

 

Here I am creating one for the music file first:

image

 

Hit the … button beside Sound and select the ogg file you dropped in earlier.  Notice in this case I changed the Group to music.  I repeat the same process for the wav file, instead named sfx. 

 

Now playing the sound effect using code is extremely easy and once again uses messages like so:

msg.post("#music","play_sound")

 

Simply post the play_sound message to the music component of our current game object.  Playing the sound effect file is the exact same process but instead post the message to the #sfx component like so:

msg.post("#sfx","play_sound")

 

We can also control the volume of the sound component, like so:

msg.post("#music","set_gain", { gain = volume })

 

Volume is a value from 0.0 to 1.0, where 0.0 is no volume, while 1.0 represents full volume.  Remember earlier when I changed the group for our music file from “master” to “music”.   Groups enable you to control several sound effects at once, for example muting all the playing songs or sound effects.  For example, we could mute all the sounds in the group music with the following call:

sound.set_group_gain(hash("music"), 0.0)

 

Here is the full source for this example:

-- Local variable for volume. 0 is none, 1 is full
local volume = 1.0

function init(self)
  msg.post(".","acquire_input_focus")
  -- start playing the background music
  msg.post("#music","play_sound")
end

function on_input(self, action_id, action)
  if(action_id == hash("SPACE_PRESSED") and action.pressed == true) then
    -- if user hits the spacebar play the soundfx file. 
    -- multiple presses will play multiple instances.
    msg.post("#sfx","play_sound")
  elseif(action_id == hash("ESC") and action.pressed == true) then
    -- on ESC mute the entire group "music"
    sound.set_group_gain(hash("music"), 0.0)
  elseif(action_id == hash("DOWN_ARROW") and action.pressed == true) then
    if volume >= 0 then
      volume = volume - 0.1
    end
    -- lower the volume of our music
    msg.post("#music","set_gain", { gain = volume })
  elseif(action_id == hash("UP_ARROW") and action.pressed == true) then
    if volume <= 1 then
      volume = volume + 0.1
    end
    -- increase the volume of our music
    msg.post("#music","set_gain", { gain = volume })    
  end
end

 

The Video

Programming

23. August 2016

 

Put a hand up if you are sick of reading about these database hacks?  Yeah... me too.  Epic Games just announced that their forums, including the Unreal Engine forums, were the victim of a recent break in.  Thankfully it’s not a huge deal, as password information wasn’t taken.  User information however was taken and could certainly result in a rise in spam... yay.  They don’t however expect you need to change your password on their forums.  If you do however enter proper information when you sign up for forums (date of birth, name, etc.) you may want to be wary of unauthorized activity.  In addition to the Unreal Engine forums, account information for several older Epic developed game forums was also compromised and in these cased, encrypted passwords were also taken.

 

The full details:

We believe a recent Unreal Engine and Unreal Tournament forum compromise revealed email addresses and other data entered into the forums, but no passwords in any form, neither salted, hashed, nor plaintext.  While the data contained in the vBulletin account databases for these forums were leaked, the passwords for user accounts are stored elsewhere. These forums remain online and no passwords need to be reset.

Also, we believe a compromise of our legacy forums covering Infinity Blade, UDK, previous Unreal Tournament games, and archived Gears of War forums revealed email addresses, salted hashed passwords and other data entered into the forums. If you have been active on these forums since July 2015, we recommend you change your password on any site where you use the same password.

We don’t believe that other Epic related forums were affected, including Paragon, Fortnite, Shadow Complex, and SpyJinx.

We apologize for the inconvenience this causes everyone and we’ll provide updates as we learn more.

GameDev News

23. August 2016

 

Another week, another Unity patch, this one 5.3.6p3.  The release notes for this patch follow:

 

Improvements
  • DX11: Improved texture upload performance for compressed, floating point ant RGBA32 formats. (812350)
  • Networking: Ping implementation for ipv6.
  • VR: Update Oculus to version 1.7
  • VR: Update Oculus GearVR to version 1.7.1
Fixes
  • (800914, 802831) - 2D: Fixed an assert message "importer.GetNPOTScale() == TextureImporter::kNPOTKeep" showing when creating sprites in Advance mode. Creating sprites now ignores TextureImporter's non power of two settings if the texture is already a power of two.
  • (811963) - Android: Audio - Fixed glitches on GearVR when Best Latency is selected.
  • (811880) - Android: Fix for crash on returning from Handheld.PlayFullScreenMovie.
  • (769505) - Animation: Fixed an issue where having animations with a mixed number of bones in a controller, and having Write Defaults to false would throw errors.
  • (763293) - AssetBundles: Fixed AssetBundle.LoadFromFile usage with Application.streamingAssetsPath on Android.
  • (none) - Core: Added support for loading serialized files stored with 5.5.0a4.
  • (793567) - Editor: Exceptions from PostProcessBuild callbacks now introduce errors to the build.
  • (808080) - Editor: Fixed crash when trying to connect a GameObject to a prefab with no root GameObject set.
  • (793679) - Graphics: Don't re-upload textures to the graphics device when a quality change is requested and the pixel data is unavailable. This applies to textures loaded from asset bundles unloaded with AssetBundle.Unload (false).
  • (791721) - IL2CPP/Windows Store: Allow non-blocking sockets to work properly on 64-bit builds.
  • (819647) - IL2CPP: Corrected some calls to HasValue on nullable types, which could return true when the nullable does not have a value.
  • (818966) - IL2CPP: Generate proper C++ code for some cases involving array parameters passed by reference.
  • (815722) - IL2CPP: Prevent a stack overflow during code conversion which can occur for mutli-dimensional arrays with generic types.
  • (818102) - IL2CPP: Rename the types.h file to be il2cpp-string-types.h to avoid the possibility of is conflicted with a user-defined header file.
  • (369773) - iOS: Building from GUI now uses a project relative path if the location is under the project folder
  • (790724) - Kernel:Fixed rounding error so Mathf.MoveTowardsAngle always reaches target angle.
  • (735709) - Linux: Fallback to NET_WM_ICON for setting custom player icon.
  • (810289) - Networking: Fixed starting a server cashes on libwebsocket_service_fd.
  • (820523) - OS X: Fixed HTTPS support for WWW/UnityWebRequest when Mac App Store receipt validation is on.
  • (770034) - OSX: Fixed a crash when building for OSX in certain circumstances to do with paths to splash screen and icon.
  • (808187, 790220, 816014) - Prefabs: Fixed some issues and crashes related to undo-ing the creation of prefabs and prefab connections.
  • (none) - Tizen: Fixed a problem with UnityPluginLoad() not working.
  • (none) - UI: Fixed issue with OnPointerEnter event firing after touch ends.
  • (none) - VCS: Stop a C++ method being called during C# constructor and serialization (which is a scripting warning as it is unsafe to do this).
  • (806810) - VR: Fixed different particle shader transparencies between editor and build when splash screen is active.
  • (801951) - Windows Standalone: Custom image will be correctly shown in screen selector dialog when building to directory with non-english letters.
  • (803319) - Windows Standalone: Fixed a regression where "touch up" events would be lost when occurring outside window bounds.

You can download the patch here.

GameDev News

Month List

Popular Comments

Day 0 With Moai: Setup and Hello World
Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
22. August 2012

 

SDK is downloaded and installed.  For some bizarre reason, you need to sign up before downloading the SDK ( which… is freely available in source code form on Github… ).  Once you’ve signed up and signed in, head over to https://dashboard.moaicloud.com/download.php and download it.  Personally I am using the August developer snapshot, because apparently, I am crazy like that.  Once downloaded, unzip somewhere, I went with C:\ because I am a lazy lazy man.

 

So, this is genesis…

 

image

 

Pretty sparse over all.  The docs contain a handful of PDFs, but they appear to be seriously out dated.  MoaiProjectSetup.pdf is certainly worth the read though, it’s got the most technical details that still seem relevant.

 

For now, I simply care about getting a Windows host working, iOS, Mac and Android can come at a later date.  No sense adding an unnecessary layer of complexity right now.  Moai provides a sample Windows host based around GLUT, you can load the source code for Visual Studio 2010 at C:\moai-sdk\hosts\vs2010.  It has already been compiled at C:\moai-sdk\bin\win32 as Moai.exe.  To make life a bit easier, I am going to add this to my PATH environment variable.  This is completely optional, but I tend to find it makes life easier.  To append MOAI to your PATH environment, from a command run:

setx PATH “%PATH%;c:\moai-sdk\bin\win32”

Oddly enough, permanent environment variable changes do not apply to the current session, so you need to exit and start a new command prompt.  Now you can change into the directory of and run one of the samples.  Let’s try that now, open a command prompt and type:

cd \moai-sdk\samples\hello-moai

moai main.lua

 

If everything is configured correctly, you should see:

image

 

Well, that was easy enough, up and running a sample in about 10 minutes including download times.  Until we actually need to extend the functionality of the client, the default host should be good enough.  You may also noticed, there are .bat and .sh scripts in each example directory if you don’t want to bother setting the path to moai.exe.

 

Now to give creating a new MOAI project a shot.  Obviously Hello world seems a sensible enough place to start, in fact I believe it is the law.  Therefore we are going to create a simple application that creates a window and displays “Hello World” centered.  Create a new folder somewhere and create a file main.lua in your favorite text editor.  You need to copy a .ttf file named courier.ttf ( or rename it in the code to match ), I simply copied mine from c:\windows\fonts\. Now enter the following code:

 

MOAISim.openWindow("Hello World", 800,600)

viewport = MOAIViewport.new()
viewport:setSize( 800,600)
viewport:setScale( 800,600)

layer = MOAILayer2D.new()
layer:setViewport(viewport)

MOAISim.pushRenderPass(layer)

chars = 'DEHLORW'

font = MOAIFont.new()
font:loadFromTTF('courier.ttf',chars,120,72)


text = MOAITextBox.new()
text:setString('Hello world')
text:setFont(font)
text:setTextSize(120,72)
text:setYFlip(true)
text:setRect(-400,-300,400,300)
text:setAlignment(MOAITextBox.CENTER_JUSTIFY,MOAITextBox.CENTER_JUSTIFY)

layer:insertProp(text)