Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

2. February 2017

 

Scirra just released information on their upcoming Construct 3 release and I have to imagine the response isn’t what they were hoping for.  Construct is a codeless game engine that ultimately generates HTML5 behind the scenes.  There are two major changes to Construct 3:c3

    • they have moved to a subscription model, $99 USD per year, which includes exporting to all supported platforms.
    • Construct 3 is now hosted entirely in the browser, Chrome specifically

Details from the original announcement:

Construct 3 works in Chrome on Windows, Mac, Linux, and Chrome OS. There's nothing to install — it's as simple as visiting a website. There are too many new features to list here, so we'll be posting regular updates over the next few weeks going in to more detail. However we've designed it web-first, with features like cloud save, remote preview, integrated WebFonts support, native-grade WebGL rendering, and much more. But don't worry - it'll still work fine when you go offline, even with an intermittent connection, and you can keep your projects offline too if you prefer. And as we promised, Construct 2 projects import with high fidelity. You won't have seen anything like this running in your browser before. And we're nearly ready to share what we've created.

Moving software to the web changes everything. Consequently we've had to make one change to the old way of doing things. As with the vast majority of web-based services, Construct 3 licenses will be based on a subscription rather than a one-off payment. We also know many existing Construct 2 users will be thinking about upgrading. Here's a summary of how pricing and upgrades will work.

  • A Construct 3 Personal subscription will be $99/year. This covers all export platforms.
  • Existing licensed Construct 2 users (including on Steam) will get 50% off their first year.
  • Anyone who buys Construct 2 from today until Construct 3's release will get their first year of Construct 3 for free. To make it a no-brainer, we're also putting Construct 2 on sale for $99. So there's no reason to wait!
  • If they choose, our existing Education users will be able to upgrade to Construct 3 for the remainder of their license period at no additional cost.
  • We will still have a basic free edition of Construct 3.

A public beta of Construct 3 will begin by April. At first our focus will be on testing, but we aim to make the full release by summer. We think you'll love it.

 

Judging by several of the comments in response to this announcement, the community is not exactly pleased:

image

image

image

 

It’s not all negative though, there were a few positive comments in the mix:

image

 

One major point of contention is the browser based nature and the requirement to be online, to which the Construct team responded:

image

 

I personally don’t mind browser based tools, but I do dislike single browser based tools.  With every release I am liking Chrome less and less and being tied to a single browser eliminates a lot of the web based advantage to start with.  Want to work in Safari on your iPad… you can’t.  Most recent Chrome update broke on your computer…  good luck with that.

 

Today, Scirra followed up with another blog post actually previewing upcoming changes in Construct 3.  (Personally I would have lead with this….)

The interface

The Construct 3 interface has been redesigned from the ground up. We've kept many familiar and useful aspects, like the panes layout and the Properties Bar. There are also some significant differences. We've aimed for a simplified, minimal design that reduces clutter and helps you focus on your content. The ribbon has been condensed down to a toolbar with just the most essential features. Everything else is now under the main menu button.

Being browser-based, the UI style can be modified using CSS. We're keen to add a custom theming system to allow anyone to edit the appearance!

Log in to Construct 3

Near the top-right corner is the user account menu. In this screenshot it's showing a guest user who hasn't logged in. You'll be able to log in to Construct 3 with the same account you use on the website. This makes it dead easy to use Construct 3 on any computer, at home, work or school. Remember, there's nothing to install! We can't wait for you to try this.

High-quality display

This screenshot was taken on a 4K high-DPI display. The high-DPI rendering in Construct 3 is flawless: every detail scales perfectly. The icons for example are all SVG, which means they scale perfectly to any size or detail. The icons have also all been redesigned with a modern flat style like Google's material design. The Layout View also works perfectly with high-DPI displays, and also features zoom-to-mouse, a greater zoom range, and native-equivalent rendering with WebGL 2. Also note the lack of a status bar - instead status appears when it is needed, and in the right context, such as inside the Layout View pane.

Improved properties

The Properties Bar has also been reworked to be easier to use with extra conveniences. For example you can click the "..." button by the project description to edit the text in a larger window. Checkboxes are used instead of on/off dropdowns. You can type calculations like 1920/2 which will set a value of 960. You can even use some system expressions like sqrt(64). Number values can be dragged smoothly with the mouse and instantly show the effect in the Layout View.

Fully-featured

You might be wondering how we handle features that have previously required external software like Java for the minifier, or PNGCrush for image recompression. We didn't want to settle for fewer features in the browser, so we created a suite of equivalents, several of which are compiled to asm.js for near-native performance. Then we went a step further and created a scheduling architecture that uses Web Workers run tasks in parallel across all available CPU cores for maximum performance. This all ensures you can do everything in the browser - not just a subset or "lite" version, it's the real deal.

Can I work offline?

We want to be absolutely clear on this - Construct 3 will work offline! We're using the latest Service Worker technology to download the entire app the first time you visit it. Every time you visit after that, it will load directly from disk. So you can be offline, or have an intermittent connection, and you won't even notice - Construct 3 will keep working. We recognise forcing users to be online would be a significant inconvenience for many users, so we've worked hard to make the sure the offline or "lie-fi" experience is perfectly smooth.

You can of course also keep your projects offline if you prefer. We think many people will find it convenient to save and load from the cloud, especially if you use several different devices. However this is not required - you can still save and load projects locally, as you can with Construct 2.

In future we are also planning desktop builds of Construct 3 for Windows, Mac and Linux. These will work much like Construct 2 does now: you download and install the software, can copy it to a USB drive, and so on. These versions will also cover the surprisingly small featureset that can't be covered in the browser, such as saving a folder-based project to a local folder, and better copy-and-paste support. This allows you to take Construct 3 to a computer that is permanently offline, for example.

 

So, what do you think of the changes to Construct 3.  As was illustrated recently with Unity, many people find subscriptions completely abhorrent.   I also know many people strongly dislike browser based tools as well.  This combination is a bold choice, but one that is sure to alienate a portion of their user base.  The question remains is… how much?

GameDev News

2. February 2017

 

Epic have just released preview 3 of their upcoming 4.15 release.  As always, being a preview release, you should expect bugs and warts in this release and it should not be used in production.  With that in mind, this release brings a number of fixes, including:

Fixed! UE-40753 [CrashReport] UE4Editor_LevelEditor!FLevelEditorActionCallbacks::Paste_CanExecute() [leveleditoractions.cpp:1602]
Fixed! UE-41130 User Defined Enums may lose their display names on upgrade to 4.15
Fixed! UE-41073 Crash when opening blueprint with collapsed nodes with structure output, split pin
Fixed! UE-41072 Implemented Interfaces are not added to nativization list
Fixed! UE-41070 Data only blueprints are not not nativized when flagged to do so
Fixed! UE-41071 Parent blueprint not added to nativization array if only child saved
Fixed! UE-41190 Ensure failure !bStaticCall nativizing blueprint calling blueprint function library function
Fixed! UE-37815 BulkData Async loading remains in memory
Fixed! UE-38767 [CrashReport] UE4Editor_Core!FArchive::SerializeCompressed() [archive.cpp:447]
Fixed! UE-41125 Static mesh LODs other than LOD0 cannot be set to screen sizes greater than 1
Fixed! UE-41220 Crash when adding multiple collision types to a mesh
Fixed! UE-40791 The Play button on the ForceFeedback effect icons is missing
Fixed! UE-41294 Reimporting skeletal mesh clears material references from material slots
Fixed! UE-41126 HISMC UpdateInstanceTransform blueprint function does not update bounds correctly
Fixed! UE-40525 CommitMapChange doesn't fully deal with sub-levels
Fixed! UE-40939 Inconsistent line ending prompts occur in Visual Studio after adding Vehicle C++ feature pack
Fixed! UE-41163 Material curves keeps resetting to 0.f
Fixed! UE-41216 Additive Pose Asset arms become over exteneded when blended with reference pose
Fixed! UE-41082 Fix crash on cache bone with sub instance
Fixed! UE-40945 Crash trying to import facial animations
Fixed! UE-41143 Crash when launching engine without a windows audio device enabled.
Fixed! UE-41112 Crash when Dragging Skeletal Mesh with Apex Clothing into Level
Fixed! UE-37270 Changing transform of simulated component during physics freezes motion
Fixed! UE-39884 Foliage LODs are do not appear to use the base LODs lightmap any longer
Fixed! UE-40480 Ensure encountered when using the Copy/Paste sub-tool in sculpt mode
Fixed! UE-41271 Localization broken in cooked builds due to missing meta-data during cook
Fixed! UE-41253 Mobile / Use Full Precision not working on Metal
Fixed! UE-41023 Scene capture produces black texture on encoding devices with mobileHDR == false
Fixed! UE-39451 Web browser widget causes app to crash when packaging for Distribution on Android
Fixed! UE-40927 Projects crash on Android when trying to load mips
Fixed! UE-39911 Failed checkSlow(IsInGameThread()); in UWorld::GetWorldSettings
Fixed! UE-40524 Issues with PrepareMapChange/CommitMapChange and Level Collections
Fixed! UE-40810 Crash opening Infiltrator packaged on Windows for Linux
Fixed! UE-41198 Spinbox value decimal point is moved one place to the right when edited on Android
Fixed! UE-36984 TestPAL fails to compile
Fixed! UE-41146 Crash in editor when audio is playing
Fixed! UE-40451 Blueprint - User configured tvOS Bundle ID is not set properly during packaging
Fixed! UE-40392 GitHub 3111 : Fix environment variable name to the correct legacy LINUX_ROOT.
Fixed! UE-40023 UFE Deploying and launching a packaged build on Linux fails due to invalid directory
Fixed! UE-40761 Various audio clips are not playing in Elemental Demo on PS4
Fixed! UE-41209 PS4SharePlay errors are produced when launching onto PS4 with UnrealFrontEnd
Fixed! UE-41183 Crash Occurs when changing the 'Max Metal Shader Standard To Target' option within iOS Project Settings
Fixed! UE-38691 Launch On from Windows to Linux fails with missing GLSL_430 shaders
Fixed! UE-37016 GitHub 2842 : [Linux] Fix bootstrap script so it is independent on working dir
Fixed! UE-40956 Rare crash occurs in CoreAudio in Vehicle Game on Mac when quitting.
Fixed! UE-41042 GitHub 3160 : Fixed `ADB` being incorrectly set to `ANDROID_HOME`.
Fixed! UE-41079 NpToolkit2 fails to initialize in 6CPU mode on PS4
Fixed! UE-41167 Shader complexity is broken in the forward renderer
Fixed! UE-39754 Crash: Changing Material Property Overrides of Material Instance
Fixed! UE-40736 "Too many texture coordinate sets" warnings in KiteDemo
Fixed! UE-40873 Shadows of small movable components popping out
Fixed! UE-41193 Update material node tooltips based on 4.15 preview feedback.
Fixed! UE-40482 Ensure occurs when turning on Constraints in Advanced Show Flags
Fixed! UE-40980 Fix mem corruption on particles on PS4
Fixed! UE-40724 Large round stone in ZenGarden is no longer reflective
Fixed! UE-41138 Flickering in Elemental Demo when TemporalAA and bloom is enabled
Fixed! UE-41099 SpeedTree Material No Longer Compiles With Texture Coordinate Node In BaseColor
Fixed! UE-41008 LogApexClothingUtils Warning when opening QAGame
Fixed! UE-41311 Time snapping interval is not updating the timeline in UMG Sequencer
Fixed! UE-40682 Animations that overlap and blend together break when undoing
Fixed! UE-40758 Events on frame 0 fire twice
Fixed! UE-41019 Sequencer does not refresh on creating a new camera if Default Property Tracks is empty
Fixed! UE-41010 Fix up actors remove actor from sequencer folder.
Fixed! UE-41148 Logstreaming warning when opening the editor: "LogStreaming:Warning: Failed to read file 'Common/RoundedSelection_16x.png' error."
Fixed! UE-40070 VREditor: Laser not hidden on MotionControllers with docked Menu/UI Panels

 

As always, the preview release is available using the Epic Game Launcher.

GameDev News

31. January 2017

 

Unity have just released a rather large patch for Unity 5.5.1p1.  Loaded with fixes, there are also a couple of improvements to the Android gradle builds as well as a couple new graphics API in the Mesh class.  Complete patch details from the release notes:

 

Improvements
  • Android: Gradle export now supports custom template
  • Android: Gradle export troubleshooting added
  • Graphics: Added new APIs: Mesh.GetIndexStart and Mesh.GetIndexCount.
  • Tizen: Added a button to the deployment target window to refresh the target list.
Changes
  • Tizen: Remove the Tizen 2.3 minimum OS option. 2.4 is now the only accepted OS version. Users must update their devices to Tizen OS 2.4.
Fixes
  • (852307) - Android/IL2CPP: Prevent a crash which can occur with the use of OnAudioFilterRead callbacks on krait CPUs.
  • (none) - Android/Metro: Fixed the issues preventing the Application.Unload API from functioning correctly.
  • (856650) - Android: Gradle export should now work with SDK version > 6.0.
  • (854535 ) - Android: Gradle export -Fixed colliding package name for unity-android-resources
  • (869582) - Animation: Fixed a crash when setting Animator.updateMode when no AnimatorController is set.
  • (860366) - Animation: Fixed edit key overriding key frames in curve editor.
  • (862004) - Asset Bundles: Fixws intermittent freeze that could occur when calling AssetBundle.LoadAssetAsync multiple times in a single frame.
  • (871730) - Cache Server: Fixed the custom port missing for the remote option.
  • (none ) - Editor: Fixed light probe rendering in LookDev HDRIs. Previously it could go wrong depending on the lighting panel parameters set for the project.
  • (862005) - Graphics: Fixed crash in occlusion culling when loading multiple scenes.
  • (860775 ) - HoloLens: Fixed a crash that occurs on device when downloading files with WWW.
  • (867606) - IL2CPP: Allow the build to succeed when the .NET 4 TargetFrameworkAttribute attribute is used in an assembly.
  • (863806) - IL2CPP: Correct an error in UnusedBytecodeStripper2 related to UnityEngine.RenderTexture that can occur during some project builds.
  • (828288) - iOS: Fixed an issue where the ReplayKit API might be reported as available on unsupported devices
  • (796649) - iOS: Fixed orientation requests from the app getting out of sync with iOS orientation.
  • (829753) - Kernel: Json serialisation now supports correct parsing of NaN and +/-Inf.
  • (none ) - Lighting: Fixed baked light map visualisation shading mode in the Editor.
  • (861293) - LineRenderer: fixed gaps when values are repeated
  • (864043) - LineRenderer: Fixed issue where setting endColor failed if using different number of color/alpha keys
  • (847798 ) - Mono: Correct an invalid C# compiler error with generic types in compiler generated code (like lambdas and enumerators). The error from the C# compiler often includes this text: "There is no boxing or type parameter conversion from..."
  • (836770) - Networking: Fixed issue where unspawn handler was not properly invoked during object cleanup (like in NetworkManager.StopClient())
  • (864122) - Particles: Fixed "TLS ALLOCATOR ALLOC_TEMP_THREAD" error messages
  • (862777) - Particles: Fixed crash in LightsModule when destroying systems
  • (862897) - Particles: Fixed crash in ParticleSystem.Emit()
  • (856842) - Particles: Fixed issue where distance-based emission was not working
  • (862352) - Particles: Fixed issue where particle bounding boxes could become corrupted, resulting in "Invalid AABB" messages
  • (861347, 863060 ) - Particles: Fixed issue where sub-emitters were causing memory leaks
  • (862976) - Particles: Fixed issue where switching Render Mode could cause rendering artifacts
  • (868648) - Particles: Fixed rare crash when using the Trail Renderer and Multithreaded Rendering is enabled.
  • (862921) - Particles: Fixed rotation bug with mesh particles
  • (864208) - Particles: Fixed TrailModule crash when enabling trails and using ParticleSystem.SetParticles
  • (861409](https://issuetracker.unity3d.com/product/unity/issues/guid/861409/)) - Particles: Stretched billboards could apply scale twice if using Speed Scale
  • (859436) - Particles: Texture Animation could skip frames and display invalid data
  • (none ) - Physics 2D: Optimize the CapsuleCollider2D component intersection tests for speed and accuracy.
  • (none ) - Purchasing: Fixed a bug where a duplicate transaction could fail without calling the failure callback.
  • (none ) - Scripting: Added the following non-allocating accessors to Mesh. These accessors write into a user-specified List. The accessors are GetBindposes, GetBoneWeights, GetColors, GetIndices, GetNormals, GetTangents, GetTriangles, and GetVertices.
  • (856507) - Shaders: Fixed shader compilation error when compiling certain surface shaders using WorldNormalVector from INTERNAL_DATA e.g. shadow pass variations.
  • (810571) - Splash Screen: Fixed an issue where the splash could be truncated by a first scene taking a long time to load
  • (872286 ) - Tizen: Change the minimum API level to Tizen 2.4 in PlayerSettings.
  • (869995 ) - Tizen: Fix a NULL referencing while exiting the game.
  • (834785) - Tizen: Improve error when failing to discover a deployment target.
  • (none ) - Tizen: Improvements to emulator deployment.
  • (none ) - Tizen: SystemInfo.processorFrequency now returns proper values.
  • (869964) - TrailRenderer: Fixed visual artifacts when manually enabled during Play mode
  • (861828) - UnityWebRequest: fix proxy support, so that debuggers like Fiddler work.

 

As always, the patch is available for download here.

GameDev News

31. January 2017

 

I found myself recently needed some rocks… I could easily download a collection of rocks, but I figured it would be extremely easy to just make my own.  My first thought was to simply take a cube, smoothly sub divide it a number of times, and apply a displacement modifier to it.  The end results however didn’t really bring the results I wanted:

Rock1

 

By the way, you can learn more about using the Displace modifier on my earlier tutorial on using Blender for level creation.

 

Ok, apparently this is going to take more than a few seconds…  hey… I wonder if there is a plugin?  Turns out, yes, yes there is.  The plugin add_mesh_rocks does exactly what it says.  You can download a tarball of the plugin here using the snapshot link.   You can get instructions for installing (a different but same process) plugin in Blender here.  Download and enable the plugin.

image

 

Once you’ve downloaded and enabled the plugin, there is a new option in the Add->Mesh menu, Rock Generator:

image

 

NOTE*** There seems to be a bug, the option wont be available if there isn’t any existing geometry in the scene.

TADA!

image

 

Ok, I admit, that looks a bit more like a kidney bean than a rock, but it’s a start.  If you look in the Tool (T) panel, you will see initial creation options for Rock Builder:

image

 

Click Generate materials if you want it to create a starting rock texture for you.  Every time you change any setting, you will get a completely different rock, like so:

Rock2

 

If you don’t want this behavior, turn off the random seed setting.  Once you’ve got a rock you are happy with… let’s destroy it!

 

Before we go to far though, if you dont want performance to absolutely crawl, we want to apply several modifiers that were created as part of the rock creation process.  Go to the modifiers tab and start applying the various modifiers:

image

 

OK, back to destruction.  The first and most obvious option is the Explode modifier.  There are a few steps we have to take here… first go into edit mode, select all the vertices and in the vertex data tab create a new vertex group.  Now apply first a particle system modifier, then an explode modifier.  Finally wire up the vertex group, like so:

image

 

The problem with explode is that it applies to the hull of the object only, so the results may not be way you want… as you can see:

Rock3

 

In some cases, that effect might be exactly what you are looking for.  Oh, and I turned gravity off to get the effect above. But if you instead want things to be a bit more… substantial, it’s time for a rethink.  In fact, it’s time for another plugin, but thankfully this one ships with Blender, it just needs to be enabled.   What you are looking for is “Cell Fracture”:

image

 

Once enabled, in Object mode, there will now be a new option available in the Edit section of the Tools tab:

image

 

Cell Fracture will split your object up into several solid pieces.  You’ve got tons of control over how the fracturing will occur.

image

 

What I personally did was changed source limit (number of pieces) down to 12 and unchecked “Next Layer” so the fracture occurs in the primary layer.  Now you will notice you’ve got several meshes instead of one:

image

 

In fact, you can now get rid of the source rock if you want.  You will notice your rock is actually 12 rocks now:

rock4

 

Instead of using a particle system like we did with explode, we are going to use Dynamics (Physics) instead.  Select all of the objects, switch to the physics tab and select Add Active.

image

 

This means all of our rocks will now participate in the physics engine.  To see the result, quickly add a plane to the scene, make it a rigid body and turn dynamic off:

image

 

And now press play in the timeline:

rock5

 

Now that looks much more realistic!  Now, what if we wanted our rock to explode instead of fall?  Well, physics are once again coming to our aid!  This time add a force field to the scene:

image

 

Then crank the strength way up (or lower the mass of your objects), like so:

image

 

Once again, I don’t want gravity to be part of the process, so I turn it off.  In the Scene tab, simply turn off gravity, like so:

image

 

And voila, exploding rocks!

Rock6

Art, General , , ,

31. January 2017

 

The Haxe Foundation have just announced the release of Haxe 3.4.0.  Haxe is commonly used in game development with several game frameworks and engines available.  3.4.0 is a relatively minor release composed primarily of bug fixes, the following is an abridged version of the changelog:

General improvements and optimizations:

  • all : support completion for static extensions (#5766)
  • all : removed neko dependency for macros, use PCRE instead
  • all : disabled analyzer optimizations by default, re-enable with -D analyzer-optimize
  • php7 : generate native $v instanceof MyType instead of Std.is(v, MyType) where possible for better performance
  • php7 : added @:phpNoConstructor meta for externs which do not have native php constructors and yet can be constructed
  • php7 : greatly reduced amount of generated tmp vars
  • php7 : Array performance improvements
  • hl : made various improvements

Bugfixes:

  • all : fixed using picking up non-static abstract functions (#5888)
  • all : fixed issue with side-effect detection when optimizing (#5911)
  • all : fixed issue with zlib bindings causing zlib_deflate errors (#5941)
  • php7 : Allow user-defined modules in php package (#5921)
  • php7 : Dereference some of php.Syntax methods if required (#5923)
  • php : fixed assigning a method of dynamic value to a variable (#5469)
  • php : fixed missing initialization of dynamic methods in classes with empty constructors (#4723)

 

For complete details of what’s changed in the release be sure to check the complete change logs available here.

GameDev News

Month List

Popular Comments

Indie GameDev friendly licensing from Xamarin?
Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon


23. October 2015

 

In a past life in which I sat in a cubicle and someone actually gave me a pay check every week I was a huge fan of Xamarin products.  They do very a good job of enabling .NET developers to leverage their skill across many platforms.  In fact, they are the technology that Unity is built on top off.  That said, I became increasingly less of a fan when the checks stopped and expenses came out of my own pocket!

 

There are many people out there that view making money from software as somehow evil.  I am certainly not one of those people.  In that corporate environment, where developers are paid salaries, rent is paid for office space, taxes are paid, etc…  the price of a software tool like Xamarin is trivial to justify.  In the world of indie game development though, this is often simply not the case.

 

Thing is, Xamarin has become a necessary evil for so many C# based game engines ( MonoGame, WaveEngine, Duality, Paradox, etc ) if you want to port to iOS or Android.  Many of these developers will never see a dime from their efforts, while a select few will become massively rich and a certain middle ground will eek out a living doing what they love.  It’s the later two groups that keep companies like Unity and Unreal afloat, and those two groups don’t come into being without the former group.

 

The challenge with Xamarin has always been their license structure has always been pretty awful for amateur developers.  How many people have chosenn not to work in C# simply because their is a price tag attached?  After years of awaiting a newer friendlier license structure (or Microsoft buyout), hope is on the horizon.

 

Today, in response to Xamarin’s recent acquisition of RoboVM, I ended up in this Twitter conversation with Nat Friedman, CEO of Xamarin:

 

First, in regard to the acquisition of RoboVM and how long the free for LibGDX developers offer will be extended:

image

 

Then more on the indie friendly nature of Xamarin, or lack thereof:

image

(Portion excerpted, Twitter message threading is bizarre)

image

image

 

This is news I am certain many C# game developers and tool providers are going to be delighted to hear.  Hopefully something happens fairly soon, as I’ve been waiting about 6 years and counting at this point! ;)

Programming, News , ,

blog comments powered by Disqus

Month List

Popular Comments