Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

15. December 2017

OctaneRender is a GPU based renderer with plugins available for just about every popular 3D content creation package.  Yesterday, theyOctaneForBlender released a plugin for Unity.  This enables you to renderer incredibly detailed movies and cut scenes directly from Unity or export to work directly in Octane Render or another supported application.  The plugin is available on a subscription basis, with a free option available but confined to a single GPU.  For additional GPU support, as well as access to Octane Cloud servers as well as After Effects and Nuke plugins, it will cost $20 a month.  Finally for all of that as well as up to 20 GPU support you pay $60 a month.

You can get started completely free by downloading and installing this scene in Unity.  Installation documentation is available here.

I did a video showcasing Octane Render in action available here and embedded below.

GameDev News

14. December 2017

A new version of the popular GIMP open source art package was released today.  Version 2.9.8 contains several fixes and improvements, but the most visible to end users are the improved gradient tools.  Now it is possible to work with gradients directly on the main canvas.

Details of the release from the release notes:


- The default brush is now "Hardness 050".

- Verbose version (command line: gimp -v) now displays C compiler


- Transform tools don't commit identity transformation anymore.

- Manual language can now be selected amongst all installed manuals,

which is particularly interesting when no GIMP manuals are available

in your GUI language. This will be proposed by default when a manual

is not installed for the GUI language (alongside the possibility to

read online) and the choice can be edited in preferences.

- The statusbar now blinks on warnings and errors.

- Paste in Place, available for regular clipboard and named buffers,

allows pasting contents of either the clipboard a named buffer at the

exact coordinates it was copied from.

- Color Picker should now work on KDE/Wayland.

- Color Picker now reads values under cursor in local windows making

it work at least inside GIMP Windows on Wayland platforms with no

color-picking capabilities (for instance GNOME/Wayland) yet.

- OpenCL is now disabled by default. Depending on graphics cards and

drivers, OpenCL acceleration is often slower than multi-threaded

implementation, and can also sometimes be "glitchy".

- Now possible to open a locally-installed manual different from the

GUI localization. The manual language choice can be customized

through preferences when several manuals are installed. If no manual

language has been selected already and no manual for current GUI

localization is available, choice of help language will be proposed

at first call to the manual.


- Keybindings now possible for previous/next/top/bottom channel.


- The spinscale widget now highlights vertical parts of the slider

section differently to hint that position of cursor above the widget

matters. When changing values in the lower step section, the pointer

will be wrapped around the screen so that you could continue adjusting

the value without interruptions.

- Canvas rotation and flip information is now visible in the status

bar (as angle value and flip icon). Clicking on these canvas status

will respectively raise the "Select Rotation Angle" dialog or unflip

the canvas.

- Use abbreviated versions for long layer mode names. In particular,

replace the "(legacy)" suffixes with "(l)" in the abbreviated

versions, still showing the unabbreviated names in the full list.


- Blend tool now features on-canvas gradient editing: adding, shifting,

removing color stops, shifting midpoints and converting them to color

stops, assignging colors to color stops, changing blending type

for midpoints. Additional options: 'Instant mode' (active before you

start blending) to support the old workflow where you can't edit color

stops before applying the gradient fill, and 'Modify active gradient'

which allows changing user-writable gradients directly rather than

creating copies of them. Moreover, custom gradient is now saved

and restored across sessions.

- All transform tools: it makes no difference now whether a modifier is

pressed before of after mouse button press/release.

- Free Select tool selection can now be committed with double click as

well (only through Enter key before). This allows smoother workflows

on some setups, and in particular when no keyboard is available

(e.g. tablet-like computers).

- Layer group children now inherit the color tags of the parent by

default, unless specific color tags are assigned. Inherited color

tags show in a less saturated color than assigned ones.


- When copying a generated brush, GIMP now copies its 'Spacing' property.

- Rename "Wheel" dynamics labels as "Wheel/Rotation". It turns out

that Wacom Art Pen and Airbrush pen use the same axis for barrel rotation

and wheel scrolling respectively. Therefore they already work in GIMP.

"Unhide" the feature with more obvious labels.

Color management:

- Use babl to convert between profiles if possible.

Display filters:

- New 'Clip Warning' display filter to show underexposed and overexposed

values. Target values below 0 and above 1.0, hence it only works on

16/32 bit per channel float images (such as EXR and TIFF).

- Display filters now operate in unbounded sRGB rather than in monitor

color space.


- Fix finding raw loaders on Windows/macOS.

- Screenshot for KDE/Wayland has been implemented (full-screen and

window screenshots only; rectangular area screenshots need

implementation on the KDE side).

- Screenshot can now add a delay between window pick/rectangular

area selection and the actual shot, but only in platforms supporting

the feature.

File formats:

- PSD:

- Fix mask position when opening/exporting.

- Fix active layer selection during loading.

- Fix potential group-layer naming conflict during loading.

- Fix missing some attributes loading empty layers.

- Fix reading files with deeply nested layer groups.

- Load and save layer group expanded state.

- Improve layer opacity loading/saving.

- PDF: password-protected files can now be imported.

- HGT: Digital Elevation Model data from NASA/NIMA can now be loaded,

both SRTM-1 (1 arc-second) and SRTM-3 (3 arc-seconds).


- Update GEGL-based filter Wavelet Decompose:

- Add an option to keep the decomposition in a layer group.

- Add an option to add layer mask to each scales layers.

- Do not use 'New from visible' because it produces unexpected

results; replaced by succession of layer copy and merge down.


- Add file-pdf-load2 API to load password-protected and/or multi-page

PDF files.

- Add file-hgt-load to load HGT files, with an argument to select between

SRTM-1 and SRTM-3 types.


- Updated: Catalan, Croatian, Galician, German, Greek, Hungarian,

Icelandic, Indonesian, Italian, Polish, Russian, Spanish.


- Require LittleCMS >= 2.8.

- Initial docker-based build environment for GIMP now available.

- Warn against use of GCC 7.2 which has a bug breaking GIMP.

- An official flatpak stable package is now available on flathub.

More details about this release are available here.

GameDev News

12. December 2017

Version 2.1.3 of the GameMaker game engine was released today.  GameMaker is a long running and popular cross platform 2D game engine GMS2recently featured in our Closer Look game engine series.  This release contains several new bug fixes as well as new features such as a Variables section in the object editor, improved access to parent events and more.

Details of the release from the release notes:

Object Variables
  • The object editor now has a new 'Variables' section
  • This editor allows you to define variables and their default values, and these will be automatically set upon creation
  • These default values can then be overridden for specific instances by opening the same variables window when in the room editor
Inherited Parent Events
  • The object editor's Events list now shows "ghosted" events inherited from a parent object
  • This makes it easy to view all events available to an object in one place
  • You can quickly open, inherit or override a parent event via its right-click context menu
Amazon Fire
  • Fixed an issue where some users got "Unable to obtain permission to execute" when running projects
  • Fixed Device Manager's Test Connection button appeared to do nothing if you had the above issue
  • Added support for required new iOS icons, fixes game submission fails
  • NOTE: You will be prompted (once) on opening an out-of-date project to update its iOS images
  • Fixed an issue which meant Push Notification support was always being included in builds
Ubuntu and Mac 64bit games
  • Ubuntu support has now shifted to 64bit, rather than 32bit
  • NOTE: You need to clean your project cache for Ubuntu if you get an error about already being connected when trying to build
  • Mac now includes 64bit and 32bit binaries in its packages in order to comply with submission requirements, so builds will take a little longer now
Misc IDE Changes
  • Code Editor: Now uses "standard" text editor behaviour for home/end keys
  • Debugger: Graph now shows more accurate fps_real values rather than a mean of a few frames
  • Preferences: Android/Amazon keystore Import, Generate, and Show Hash buttons will show the output Window so you can see messages
  • Resource Tree: Optimisations to speed up the IDE when large projects are open
  • Target Manager: Currently-selected target is saved per-project when you close your projects
Fixed Bugs
  • 0027455: Extension Editor: Removing proxy files with matching name can cause extension files to be deleted
  • 0027991: Code Editor: Multi select gets removed if you backspace more than once
  • 0028186: Code Editor: display_set_gui_maximise() should allow support for the US equivalent display_set_gui_maximize()
  • 0025608: Code Editor: Reopening projects with open code editors, not all of the code is coloured correctly until editor is focused
  • 0027983: Code Editor: Autocomplete suggests previously used incomplete variable
  • 0027980: Code Editor: Unstable error if you do a replace whilst selection only is enabled, delete some text then type in the search field
  • 0028034: Sound Editor: Short sounds are not played completely in preview
  • 0028216: DnD Editor: Missing a context menu entry for Expand All
  • 0026596: DnD Editor: Live Preview doesn't get focused if already open and contents have changed
  • 0028192: DnD Editor: Context menu is missing the entries for Go To Object and Add/Open Event
  • 0028197: DnD Editor: Context menu is missing keyboard shortcuts
  • 0028196: DnD Editor: Can't Cut/Copy/Paste using keyboard shortcuts using macOS IDE
  • 0028150: Image Editor: Shift selecting frames can cause Shift key to become locked
  • 0028114: Image Editor: Blend Mode 'Multiply' will not use destination alpha
  • 0027385: Image Editor: Dropping any non-image file on top of an open Image Editor gives incorrect prompt
  • 0028093: Tile Set Editor: Changing 'Auto tile background colour' appears to change nothing
  • 0027994: Sprite Editor: Texture Settings -> Edge Filtering will cause GameMaker Studio 2 to close when using a 4K sprite size (3840x2160)
  • 0028170: Physics shape fixture not generated unless Modify Collision Shape has been opened
  • 0028185: Importing Projects: Dragging gmez onto start page occasionally orders rooms incorrectly
  • 0028208: General: "GMS2 has become unstable" when dismissing Ctrl+T via spamming Escape
  • 0028157: Source Control: 'Import Project to Repo' creates local repo if the import fails, preventing further imports
  • 0028300: Preferences: Android keystore import / generate / show hash buttons should force showing their output
  • 0028299: Preferences: Android keystore alias should check for spaces and block with a description of how to fix
  • 0028258: Debugger: DS_Map key output in instances tab does not show bitshifted integers
  • 0028100: Debugger: Always uses the IP for the last Mac in device manager, which might not be the targeted Mac
  • 0028003: Debugger: GMS2 Runner.exe creates new inbound rule each time you debug
  • 0028026: Resource Tree: Pressing Enter after searching for a resource does not open the resource
  • 0027882: My Library: DPI scaling removes refresh button and squashes Search
  • 0028117: Search + Replace: Can't resize window
  • 0027940: Game Options: Mac is missing 'Enable Retina' option
  • 0027624: Game Options: UWP Publisher Name is missing from the UWP Game Options
  • 0027839: Tutorials: Crash when clicking 'Get More Tutorials'
  • 0027989: Licensing: Buying GMS2 products will require log out/in to properly update your licence
  • 0026770: Build Android: Cannot build for Android VM if the path to the NDK has not been set
  • 0027362: Build UWP: Certificate install not prompted / isn't performed as part of pfx install, causes builds to fail to install on phone
Known Issues
  • If you have cached Ubuntu build output for projects you will need to clean these to avoid a "already connected" error (just need to do this once)
  • Explorer file dialogs can sometimes fail to open. This is a Windows 10 Creators Update issue and has been seen failing in other applications
  • Welcome Page is still disabled during start-up - it can still be accessed via the Help menu, so new users can still get to these videos and links
  • Runtime download/activation has been seen to crash the IDE occasionally during subsequent startup
  • Closing and reopening the Marketplace tab can cause issues downloading some assets thereafter, need to restart GMS2 to fix
  • Dead instances of Window's RuntimeBroker application can block attempts to use the manual in the IDE - just get a white page
  • UWP requires you to have the older SDK tools installed as well as the current ones, not just the current ones

GameDev News

12. December 2017

AppGameKit is a very beginner friendly game engine with a secondary C++ tier for those that want to get a bit more advanced.  Today they announced the release of version 2017.12.12.  For the record, I really like chronological naming conventions for releases, it is immediatelyAGK obvious what the most current version is at a glance.  Back to the release…  this release greatly expands Box2D physics support, adds a new template with free assets, adds C++ support for Visual Studio 2017 and much more.  We featured AppGameKit in the closer look series if you are interested in learning more about this engine.  Keep in mind, that review is now a couple of years old.

Details from the release:

What's new in Version 2017.12.12?

Box 2D
  • Updated Box2D to version 2.3.2, but without the auto convex hull code, polygon vertices must still be convex
  • Multiple 2D collision shapes can now be assigned to an object without it being set up for physics
  • Shape properties like friction, restitution, and collision filters can now be modified on a per shape basis instead of one value for all shapes
  • The SetSpriteShape commands can now change previously added shapes on a per shape basis
  • Added GetSpriteNumShapes command to return the number of shapes currently assigned to a sprite
  • Added GetSpriteShapeNumVertices command to return the number of vertices in a polygon shape
  • Added GetSpriteShapeVertexX/Y commands to return the X/Y coordinates of a polygon vertex
  • Added SetSpritePhysicsDensity to set the density of a shape
  • Added SetJointMouseMaxForce command to limit the amount of force the mouse joint can use
  • Added SetJointDamping command to set the softness parameters for distance, line/wheel, weld, and mouse joints
  • Added CreateRopeJoint to limit the max distance between two sprites
  • Added GetSpritePhysicsCOMX/Y to get the current center of mass for the physics shape
  • Added SetSpriteShapeChain and AddSpriteShapeChain to create 2D chain shapes, these are the most suitable shape for 2D terrain
  • Added ChainShape example to the Physics folder to demonstrate a simple 2D terrain
Text To Speech
  • Added TextToSpeech commands for iOS and Android
  • Added TextToSpeech example project to the Sounds folder
  • Added commands to communicate with an Apple smart watch, the smart watch app must be created outside of AGK
  • Added GetSpriteTransparency to return the current transparency mode of a sprite
  • Added SetObjectBlendModes to set the transparency blend modes manually, also added SetObjectTransparency mode 3 to use these manual values
Skeletons & Tweening
  • Added new commands to pause and resume tweens
  • Fixed SetSkelton2DFlip causing an incorrect animation if the root bone has a positional offset
  • Added DeleteShader command and GetShaderExists commands
  • The GetTweenPlaying commands will now return 1 if the tween is currently playing as part of a tween chain
  • Fixed shadows disappearing or causing a crash on Android when the app goes to the background
  • Fixed shadow artifacts on some Android devices when the scene has large polygons
  • Fixed animated objects causing incorrect shadows if an object with more bones was loaded after an object with less bones
Screen Recording
  • Increased audio quality on Android when using StartScreenRecording
  • Improved the speed of to JSON for both arrays and types when using large data structures
  • Fixed XInput1_3.dll missing error when running the 64-bit version of the player on Windows 8 or above
  • Fixed GetDeivceID on Windows returning different values on the same machine in some cases
Edit Boxes
  • Tapping outside an editbox to stop editing will now record a touch press with the GetPointer commands
  • Fixed editbox text shifting slightly after using SetEditBoxText and then editing the text
  • Fixed arrow keys adding characters to editboxes on Mac
  • Fixed SetEditBoxCursorPosition not working on iOS until the editbox regains focus
  • Fixed GetEditBoxLines not counting a new line unless a character existed on it, the line will now be counted as soon as the return key is pressed
  • Added GetNetworkExists command
  • Fixed calling CloseNetwork whilst a connection was still in progress causing the app to freeze
  • Array .sort() now accepts an optional parameter to ignore case when sorting strings, e.g. sort(1) to ignore case
  • Fixed SetWindowAllowResize being called after SetWindowSize on Linux causing the window to revert to its original size
  • Fixed Android apps closing when a hardware keyboard is attached or removed
  • Fixed GetImageChosen returning the last valid image choice when the user chooses cancel
iOS Export
  • Please note that the iOS export now requires XCode to be installed on your Mac due to iOS 11 changes, and the app icon must now be 1024x1024 pixels in size
Tier 2
  • Added VS2017 template project and AGK lib to the Tier 2 folder on Windows

GameDev News

11. December 2017

A year ago Microsoft acquired Simplygon, a polygon optimization tool.  Back in May they announced that Simplygon connect was now free.  Simplygon Connect is a web service you can use to upload your assets to their servers for processing.  Today however Microsoft has releasedSimplygon Simplygon Cloud on the Azure Marketplace.

If you were looking for a more dedicated service, Simplygon could be a good fit for you.  Description from the getting started guide:

Simplygon Cloud is an optimization service that runs on Microsoft Azure.

Simplygon is not a public service hosted on the Internet; it is a service acquired in the Azure Marketplace. This means that when you acquire a Simplygon instance in the Azure Portal, that Simplygon instance will only be used by you and whoever you provide access to.

If you need an on-premise solution, Simplygon is also available on Azure Stack, the on-prem version of Azure.

Simplygon Cloud is capable of processing the following formats:


Of course, to utilize Simplygon Cloud you need a 3D asset. In this version of Simplygon Cloud (1.0), the following asset formats are supported:

  • GLTF
  • FBX
  • OBJ
  • SSF (Simplygon Scene Format)

If you asset uses non-embedded textures or consists of multiple files (like for example GLTF), you will need to provide all files to Simplygon Cloud to be able to correctly process a file.

GameDev News

Month List

Popular Comments