Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon

11. January 2018

Krita is a popular open source painting application and they just hit a pretty major milestone today, the release of Beta 1.  This is a feature complete test version of what will Krita4b1ultimately become Krita 4.  Unfortunately the new text tools didn’t make the cut, so a stop gap solution was implemented lack some features.  Also be very aware of this warning before you start using the Krita 4 beta!


Simple put, documents created or saved in Krita 4 will no longer work in Krita 3 if it uses new vector or text functionality!

New features from the release announcement:

  • SVG vector system, with improved tools and workflow
  • New text tool
  • Python scripting
  • SVG import/export
  • Improved palette docker
  • Bigger brush sizes
  • Improved brush editor
  • Refactored saving and exporting: saving happens in the background, and export shows warnings when your file contains features that cannot be saved to a given file format
  • A fast colorize brush
  • The default pixel brush is much faster on systems with many cores
  • Lots of user interface polish

The beta is available for download from a link at the bottom of this page.

GameDev News

10. January 2018

The first release of the Unity game engine is available in beta form, Unity 2018.1.  Keep in mind this is a beta, so of course it should not be used for production code.  Wii U, XP and ShaderGraphMonoDevelop users should note this release marks the end of support for these products.  There are however a load of new features in this release in addition to several bug fixes and improvements. 

The biggest new feature of this release is the new rendering pipeline referred to as Scriptable Render Pipeline (SRP) enabling users to customize the rendering pipeline using C# and material shaders.  The SRP also includes a new Shader Graph tool (pictured right) that enables developers to visually build shaders using a simpler flow chart graph system.  You can read more about the changes in this release here.

Details from the release notes:

System Requirements Changes
  • Removed support for Windows XP in standalone player builds. Windows Vista is the now minimum supported OS for Windows standalone player.

  • Deprecated support for MonoDevelop. VisualStudio is now the recommended and supported C# editor on both macOS and Windows.

Known Issues
  • Audio: [Audio Mixer] Crash on play when duplicated audio group is assigned to audio source (962084)

  • Build Pipeline: BuildObserver failed is thrown when building a project with Vuforia enabled. (984712)

  • Editor: "Assertion failed" exception is generated on opening a project on Mac OSX (977901)

  • Editor: Use of "external script editor" in editor preferences doesn't work with some editors. Workaround is to use "open by file extension". (974296)

  • Editor: [Graphview] At some steps of zooming, texts on nodes appear blurry. (985084)

  • Editor: [Mac] VS for Mac opens new instance after Unity was reopened (979897)

  • GI: AddInstancePropertiesJob error while baking with specific assets (973689)

  • GI: Baking pipeline still runs even if GI systems are disabled (985795)

  • GI: Editor freezes on 'Writing Lighting Data' when baking multiple scenes in Build Settings (977913)

  • GI: [Progressive Lightmapper] Scene is completely black after clicking Generate Light button (973666)

  • GI: [UI] New parameters are incorrectly introduced for directional, spot and point lights (972240)

  • Graphics: [UI] Multiple debug scene visualization modes are broken (969889)

  • Particles: Line renderer is rendered in scene/game window when selecting object in the Project window (972298)

  • 2D: [Experimental] Added ability for user to add functionality for Sprite editing in the Sprite Editor Window.

  • 2D: [Experimental] Added experimental API to support Sprite animation.

  • Android: Added an interface with a callback that is called after the Android Gradle project is generated but before it is built.

  • Android: Added ARM64 (also known as AArch64) experimental support.

  • Android: Added Sustained Performance Mode setting, which sets a predictable, consistent level of device performance over longer periods of time without thermal throttling. Based on the SustainedPerformance API from Google.

  • Animation: Added PositionConstraint, RotationConstraint and ScaleConstraint components.

  • Animation: Added the AimConstraint component.

  • Animation: Added the ParentConstraint component.

  • Animation: Added weighted tangent support to AnimationCurve.

  • Asset Import: (Also see API changes) Added OnPreprocessAsset callback in AssetPostprocessor.

  • Asset Import: Added support for importing Aim constraints from FBX files.

  • Asset Import: Added support for importing Parent constraints from FBX files.

  • Asset Import: Added support for importing Point, Orient and Scale constraints from FBX files.

  • Asset Import: [Experimental] Added experimental API to generate Texture/Sprite from importer settings.

  • Audio: Added Google's Resonance Audio plugins.

  • Build Pipeline: Added a new API for changing platform icons; it supports platform specific icon kinds(types) and multilayer icons.

  • Build Pipeline: Added ability to store and retrieve object references by name through EditorBuildSettings.

  • Build Pipeline: Added new BuildReport API. Building players and assetbundles will now return a BuildReport object that allows you to query information about the build process and outputs.

  • Build Pipeline: Android Build & Run has now target device selection in the build dialog. It allows users to deploy to either a specific single device or to all supported devices simultaneously.

  • Cache Server: Added -CacheServerIPAddress command line argument to connect Editor to specified Cache Server on startup.

  • Editor: New ObjectFactory API that allow to create Object using default values - See ScriptingAPI and Presets for more details.

  • Editor: Preset class that allow to save serialized informations of an Object to a .preset asset and apply it later to the same Object type.

  • Editor: The profiler window now contains a 'clear on play' button.

  • Editor: When running PlayMode and EditMode tests in batch mode it is now possible to specify scriptingBackend to use trough a test settings file.

  • GI: Added experimental API for baking sky occlusion in Progressive Lightmapper. The sky occlusion value for a given input position denotes what fraction of the sky is visible for that point. It takes into account any lightmap static object. The sky occlusion allows you to apply the correct amount of sky lighting to objects that are otherwise hard to lightmap, such as trees and foliage.

  • GI: [Experimental] Added new experimental C# interface to pass light information to the GI baking backends.

  • Graphics: Added dynamic resolution support for PS4.

  • Graphics: GPU Instancing now supports GI.

    • Objects affected by light probes, occlusion probes (in shadowmask mode) or lightmaps can now be automatically batched by Foward and Deferred pipeline.
    • Light probe and occlusion probe data can be sent to Graphics.DrawMeshInstanced using LightProbeUsage.CustomProvided mode.
    • New APIs are added for calculating probe data and copying to MaterialPropertyBlock: -- LightProbes.CalculateInterpolatedLightAndOcclusionProbes -- MaterialPropertyBlock.CopySHCoefficientArrayFrom -- MaterialPropertyBlock.CopyProbeOcclusionArrayFrom
  • Graphics: Metal: Added support for DX11 tessellation through hull/domain shaders.

  • Multiplayer: Added support for callbacks that the user can define to be notified when there is something to read or connection is ready to send.

  • OSX: Added support for IL2CPP scripting backend for Mac Standalone player.

  • Particles: Added support for GPU instancing of Particle System mesh rendering.

  • Particles: Added support for Orbital Velocity to the Velocity over Lifetime module.

  • Particles: All particle emitter shapes now support reading a Texture for masking and color tinting.

  • Physics: 2D Physics is now able to use all the cores on a device to run its simulation. See 'Job Options (Experimental)' in 2D physics settings.

  • Player: (Alse mentioned under API changes) Added an experimental API which allows to change the order in which engine systems are invoked, remove engine systems from the update order, or insert new C# entrypoints at any point in the update cycle: UnityEngine.Experimental.LowLevel.PlayerLoop.

  • Scripting: Added command line option "overrideMonoSearchPath" for desktop standalone players (OSX, Windows). "overrideMonoSearchPath" specifies an extra folder to search when Mono is loading assemblies. One intended use is two versions of the same project i.e. trial and full version. The assets are the same but the scripts are different. This command line option can be used to re-use the assets but load different scripts.

  • Video: Audio sample output API for the VideoPlayer with support for access from C# or C++.

  • Video: Support for reading videos from AssetBundles on Android.

  • Web: Added UploadHandlerFile for UnityWebRequest: sends file contents as request body without loading entire file to memory.

  • Web: Custom certificate validation support added to UnityWebRequest. See CertificateHandler script documentation for more info.

  • Windows: Added support for IL2CPP scripting backend for Windows Standalone player.

  • XR: 360 stereo image capture with support for conversion of rendered texture (cubemap) to stereo/mono equirectangular format for display in VR. Added script API: RenderTexture.ConvertToEquirect() for converting rendered cubemap textures to stereo and mono equirectangular format.

  • XR: Added a new option in the Windows MR Player Settings called Enable Depth Buffer Sharing. This allows the OS to better stabilize images without the need to manually set the focus plane. For more information on the benefits of image stabilization, see Microsoft's documentation on Hologram Stability.

  • XR: Added support for capturing stereoscopic 360 images for VR and non-VR projects. Added omni-directional stereo (ODS) support in shader pipeline for rendering to 360 stereo cubemap.

    • Support for 360 stereo cubemap rendering in forward/deferred pipelines, directional/point light shadows, Skybox, MSAA, HDR and post processing stack. All pipelines and modes are tested.
    • ODS rendering support for screenspace shadows via separate ods world space pass and render texture to avoid incorrect shadows per eye.
    • Added stereo RenderToCubemap API script support: camera.RenderToCubemap with stereo eye parameter.
  • XR: Standalone player support for stereoscopic 360 image capture for VR and non-VR projects. Currently supported on Win64/OSX platforms.

    • Generate 360 capture shader variants when building standalone player according to the '360 Stereo Capture' UI checkbox in the VR editor settings panel.
    • Added PlayerSettings.enable360StereoCapture binding and doc page.

GameDev News

9. January 2018

Back in 2015 I found myself in the market for a new laptop for game development and I put together this guide on how to chose a laptop ideally suited for game development.  Fast forward to today and it’s time to choose another, so I’ve decided to update the guide.

Designing a laptop is an exercise in trade-offs, a mix and match of the following attributes:

  • cost
  • power
  • battery life
  • size/weight/portability

Cost, size, weight and battery life are all pretty self explanatory and tend to be linked.  For example, better batteries cost more and increase the weight.  Shrinking the size of a laptop while retaining the power tends to have a huge impact on cost.

Power is perhaps the most confusing and arbitrary trait so we can start there.  Power is a product of the CPU, GPU, Hard Disk and RAM available in the machine.  In this day and age in all honesty, the CPU and RAM are rarely the bottlenecks, even the lowliest laptops on the market tend to have good enough specs in this regard.  GPU on the other hand is a very different story and we will discuss that in depths shortly.

How Much Power Do You Need Anyways?

This is a good question and frankly it depends a great deal on what you intend to to do with your computer.  Are you developing simple 2D titles?  If that is the case just about any laptop will be sufficient.  On the other hand, and this is the big difference from the last revision of this guide, if you intend to develop for Virtual Reality that imposes strict limits on you.

As a general rule, I recommend the following tiers.

Good Enough

This is a machine that is capable of running most modern games and game development tools, the bare minimum I recommend buying, even though you could certainly use more.  The base I recommend is at least 8GB of RAM, an i5 or i7 processor and a dedicated GPU at least a 940m or better.  We will discuss this point in more detail in a second.  I also STRONGLY recommend an SSD (Solid State Drive), at least for the OS partition.  This will add to the cost, but will also make your computer feel several times faster.  It’s easily the best upgrade bang for buck you can make.

Even Better

This is ultimately the tier I will be buying in.  The sky is not the limit budget wise, so we need to keep costs under control.  Recommendations stay very similar to the good enough category.  An i5 or i7 CPU, RAM is cheap these days so go at least 16GB and an SSD is mandatory in my opinion.  The biggest difference from the Good Enough category, the dedicated GPU.  In my opinion the modern baseline future proof VR ready GPU is a nVidia 1060 or better.  You will find this limitation is really going to bump the price up while knocking the available options down.


Perhaps you aren't as budget restrained as me?  In that case I will make a few recommendations for really amazing computers.   Truth is, they aren’t really that much better than the middle category.  However the fit and finish and quality of components is often a tier up.  The newest highest spec GPU and CPU, or the smallest possible form factor.

Other Factors

I have imposed some limitations on what I consider “portable” and this is a big gotcha when it comes to game development laptops.  First is weight.  Anything over 6 or 7 lbs in my opinion is not portable, not in the throw it in a backpack and lug it around all day sense.   I also view battery life as essential.  Almost every single laptop I am listing here will be a battery hog, so 2-3 hours on battery is about the norm.  Many “desktop replacement” laptops however will struggle to even last an hour on battery.  There is nothing against these machines, they are portable in the sense that they are easier to move from room to room for example, but not portable in the traditional laptop sense.  The size factor is also going to be important here.  In the goal of 6lbs or less, that is going to leave us mostly looking at 15” and smaller laptops. 

The good news is, if portability and battery life aren’t that important to you, there are a ton of 17” laptops available with a dedicated GPU and a much lower price tag.  The bad news is, I wont be discussing them here.

About GPUs

This is perhaps the most important part of your decision, which GPU (Graphics Processing Unit) to chose.  Basically you have two options, Integrated graphics -- graphics provided by your CPU or a dedicated GPU.  Almost universally a dedicated GPU will out perform an integrated graphics chipset by an order of magnitude.  I don’t really view integrated graphics as a viable option for any but the most casual game developers.  Don’t get me wrong, modern game engines such as Unity or Unreal will run on a modern integrated graphics chipset, they just wont run well!

Now we enter the incredibly confusing world of dedicated GPUs.  The one nice thing here is, nVidia basically have a monopoly, so you are mostly choosing WHICH NVidia card to chose and this is where it gets confusing.  First lets look at the short hand way do determining which cards are better.  You will often see an alphabet soup of numbers when it comes to nVidia GPUs and they all have meaning.  You will see names like 765m, 980 or 1060.  The first number(s) reference the generation, while the remaining numbers represent relative power.

So for example 980 is a 9th generation chip, while 80 represents it’s capability.  A 980 for example is a generation newer than an 880 and more powerful than a 970.  The most current generation of GPUs are the 10 series, such as the 1060, 1070 etc.  Generally each generation is faster than the previous generation, but not always.  The 10 series however seem to be about 40% faster than their peer.

The big difference for this year though is VR capability.  Be aware, you can buy several of last years models still, such as 960/970/980 powered laptops.  That said, often these chips were not compatible with VR due to a technology called Optimus.  If VR development is your priority, make absolute certain that your GPU is VR Ready.  Any current generation 1060 or newer should be capable of VR.

Microsoft just recently announced their recommended developer specs for mixed reality development:


Keep in mind, these specs are actually a fair bit lower than other headset providers.  For example, here are the recommendations for the Oculus Rift:


Another point of confusion is the recent release of Max-Q GPUs from NVidia.  Max-Q versions of the 1070 and 1080 currently exist.  This isn’t really a technology, more of a standard.  The idea behind Max-Q designs is to strike the right balance point between performance, noise and power consumption.  As a result, these devices are often underclocked but better on the battery life and have lower heat output.  As a general rule of thumb, a Max-Q GPU performs somewhere in between it’s own and the previous series.  For example, a 1080 Max-Q runs slower than a 1080 and faster than a 1070.

One final thing to be aware of is that mobile versions of GPUs tend to be about 20% slower than their desktop equivalent.  A GTX 970 is a desktop card, the mobile equivalent would be a 980m.  Again, if buying from that generation of GPUs be certain that it is in fact VR compatible, most aren’t!  Or be safe and buy a 10 series card.

You will on occasion run into a desktop card like the GTX 970 in a laptop…. this is exactly what it sounds like, a desktop card that has been installed in a laptop.  Generally this means that laptop will have horrible battery life and weight.  Again, it’s all about trade-offs.  With improvements in mobile tech, desktop GPUs being used in laptops is becoming increasingly less common.

Just as I was about to publish this, perhaps one of the most inconceivable things occurred…  Intel and AMD teamed up on a Intel CPU, AMD GPU powered single chip solution aimed at ultra portable systems.  It is not yet available in any shipping laptops, but is expected to have performance comparable to a GeForce 1060 mobile GPU.  We live in interesting times!

About CPUs

The CPU used to be the most important part of the computer, but in recent years the GPU has taken it’s crown.  These days you have a plethora of options and choosing the correct version isn’t simple.  In most cases, an ultra low power CPU such as an ARM or Atom CPU will no be sufficient.  This is also true, but slightly less so, of any i3 series of processors.  When it comes to choosing between i5 and i7 it gets much trickier.  You generally think higher the number the better the performance, but this isn’t necessarily true.  In most cases either choice will work for you, just be sure to note core clock speeds and number of cores/threads.  Get the highest clock rate/core count combo you can afford is generally the safest solution.  Most i5/i7 4 core solutions will be sufficient for most of your needs.

One thing to be aware of however is the generations of chips.  Intel has been resting on their laurels of late and each new generation ( with names like Kaby Lake, Coffee Lake and Broadwell ) being very similar to the previous generation.  For the 8th generation ( most recent ) there is a HUGE difference though…  generally 8th gen chips are slower but run at a massively lower ( 1/3! ) wattage requirement, leading to battery life.  They make up for the slower clock speeds by being boostable.  For most tasks, gaming included, the new chips will perform as well but require much less power.  That said, for tasks that max out a CPU, such as rendering or video processing, you will actually see better performance from earlier generation chips.  If battery life is your priority though, you definitely want to get a 8th generation processor.  Most computer companies switched to 8th gen chips nearing the end of 2017.

4K or FHD

When it comes to displays, other than size, this is going to be your next most common question… 4K and FHD.  Truth is, this is a very hard decision to make.  I tend to lean toward FHD (full HD, 1080p) for several reasons.  First, it’s generally cheaper, requires less power so battery life improves and frankly most games struggle to run at 4K resolutions.  On a 15” screen, that’s a lot of trade-offs for a relatively small benefit.

On the other hand, once you get used to using a 4K display, it’s hard to go back.  It’s easier on your eyes and generally makes for a nicer experience with daily computing.  However some (far too much sadly) software does a bad job of dealing with high DPI displays and you will need a magnifying glass trying to read these applications at a 4K resolution on a tiny screen.

A few years ago, I would have said FHD hands down.  These days HDPI support is improving and GPUs are getting fast enough to handle that many pixels.  It really is a coin toss here.

60 or 120 Hz

With the rise of more and more powerful laptops, the refresh rate of the screen is also frequently becoming more important.  Keep in mind the refresh rate of your monitor corresponds to the maximum framerate that can be displayed.  So if your GPU is putting out 135 FPS but your display is 60hz, its only showing you 60 frames of animation.  120hz displays are becoming increasingly common, but are only really useful if you can pump out that many frames of animation.  As a point of reference, NTSC (North American TV) runs at 24hz, while movies normally run at just under 30hz, so this isn’t a HUGE deal, but is certainly noticeable to some.

Are Solid State Drives Worth It?

You will commonly see machines advertised as having a Solid State Drive (SSD) and often a slower “storage” drive.  Is it worth it to get an SSD?   In a word…. yes.   In two words…. hell yes.

To be honest, I am starting to think a SSD might actually be the single most important aspect of a computer.  A good solid state drive will result in boot times that are literally measured in a handful of seconds.  It goes well beyond that too.  Programs load faster, much faster.  Tasks that repeatedly access the disk, such as compiling game code, will performance several times quicker than on a traditional hard drive.

When it comes to traditional hard disks, beyond size of course, the only thing that really matters is speed.  You will have a choice between 5400 and 7200 RPM.  The difference is about as clear as the numbers show, a 7200 RPM drive will load data about 30% faster, and it is noticeable.  This is an area where many laptop developers have tried to shave costs and I regret it.  Personally the first thing I do is remove the traditional HD and replace it with a SSD.


As you will see (spoiler alert!) the ports in a machine are increasingly important as well.  These days USB 3 is the normal baseline and you will generally want at least 2 USB ports on a laptop.  USB-C is the future, you’ve probably got one on your phone if it’s a reasonably current device, and some USB-C ports are Thunderbolt.  These ports enable you to do a heck of a lot more, including running multiple external 4K displays, etc.  Keep in mind that different ports have different functionality and it isn’t often easy to find out these details.  For example, some devices can actually charge over USB-C, enabling you to plugin an external battery pack for a quick charge.  Thunderbolt also is confusing, as you can get a 2 lane or 4 lane device.  A 2 lane device is capable of running most external GPUs for example, but will struggle to then send the information BACK to the laptops internal display, because it’s running out of room on the Thunderbolt cable.  Four channel thunderbolt devices have all the room in the world to do some pretty amazing things, like running multiple 4K displays off a single port!  It’s also becoming increasingly common for machines to not ship with HDMI or Ethernet ports.

Ok, enough background, let’s get to the machines.  I am going to break these down by manufacturer, in no particular order.


The Dell XPS series are perhaps among the very best laptops available today, but sadly they aren’t sporting the greatest GPU options.  This is probably due to their ownership of Alienware gaming focused laptops.  Alienware sadly are huge ugly bricks of a machine, barely qualifying to makeDellXPS this list.

Dell XPS 15

The Dell XPS 15 is an exceptionally well made laptop with one of the nicest screens and smallest bezels available.  The biggest downside to the XPS series is that the best GPU you can get is a nVidia 1050, an OK GPU, but perhaps the bare minimum if you are looking to do VR development.  Most XPS laptops, 13 and 15” have a Thunderbolt 3 port, although often limited to 2 channels.  The XPS 15 battery is good for 5 or 6 hours on typical usage.

Alienware 13"

The 13” Alienware is the most portable in the line, but still weighs in at a muscle building 6lbs.  The 13” model can support a GPU up to a 1060 in size and a large amount of RAM and storage.  Battery life is on the rather low end, lasting only a couple of hours.

Dell Inspiron

The cheap and cheerful option on this list, Inspiron’s are available with up to a 1060 GPU, a variety of CPU, HD and RAM options and a number of different screens.  Pushing the 6lb limit, the Inspiron is pushing the heavy side of the list, but budget friendly is always nice.  Battery life is also surprisingly good, 6+ hours on average load.


Acer makes a few different game development capable laptops that are also portable.  The two primary lines are the Predator line of dedicated gaming laptops and the Inpsire line of general laptops that have decent GPUs available.

Acer Predator Helios

Again pushing that 6lb limit, this is not a light laptop.  That said, a 1060 GPU, advertised 7 hour battery life, solid SSD and CPU options, if you can handle the weight and “gamer” styling, this could be an option for you.  Please keep in mind, there are several machines in the Predator line-up, including massive 17” and larger machines loaded with power but lacking portability and battery life.

Acer Aspire (Nitro Black)

Acer also have the Aspire line of laptops, with the Nitro series targeting gamers.  They are available with up to a 1060 class GPU, weight in at 5.5lbs and have a stated 6 hour battery life.  Not the lightest or most portable option, but with a decent balance of capabilities at a reasonable price.


Asus makes a number of gaming capable laptops, especially under their Republic of Gamers moniker.  Several of these are huge and most are extremely “gamer” styled… bright lights and racing stripes.  The do however have some exceptional options available across the budget range.Zeph

Asus Generic Gaming Laptop

Asus have a variety of non-branded laptops aimed towards gamers that are the definition of OK.  They have OK power, an OK CPU, OK storage, OK screen at an OK price.  Most importantly they can sport a 1060 GPU and weight an OK 5lbs.

Asus ROG Zephyrus

This one isn’t cheap but otherwise it’s absolutely stunning.  A 1080 Max-Q GPU makes it one of the best performing options on the list.  A 0.7” thickness and 4.9lbs weight makes it extremely portable and the rest of the specs are pretty awesome too… everything except a pretty disappointing battery life that is.  Even the styling is pretty muted by Asus ROG standards.  Oh yeah, and the price tag!

Asus ROG Strix

Striking a balance between the generic Asus laptops and the top tier Zephyrus, their is the Strix line of laptops.  Available with up to a 1070 GPU, slightly over an inch thick and weighting 4.8lbs, its a good balance of power and portability.  Battery life in reviews seems to come in around 4+ hours, a reasonable amount.


Razer is perhaps the company that made thin but powerful laptops a possibility when they launched the Razer Blade laptop several years ago.  I had one of the original Blades and I will say at it’s time it was hands-down the best option that existed for a powerful portable laptop with goodRazer battery life if you were willing pay the steep price tag.  Sadly they seem to be resting on their laurels and today’s Razer Blade is almost unchanged except internal spec bumps and high price tag.  With the bump to 8th gen Intel CPUs, Razer Blades are highly discounted right now however.

Razer Blade 14”

In many ways you can think of the Razer Blade 14, as the Windows powered MacBook Pro with a solid GPU.  It’s premium, high quality, well put together and the price reflects all of that.  Sadly it also has only a 1060 GPU option available and the chassis has remained pretty much unchanged since launching.  Battery life is around 5 hours, depending on the screen option chosen.

Razer Blade Stealth + Razer Core

Let me say right up front, the Razer Blade Stealth is NOT a gaming laptop.  In fact it’s got no dedicated GPU at all!  So why is it on the list?  Well, it’s an ultrabook designed to be hooked up to an external GPU.  If the idea of light and portable laptop, that can be brought home and hooked up to an external GPU appeals to you, this may be an option! That said, with the price tag on the Core dock and the cost of a high spec Stealth, you may be wondering… why not just have a dedicated desktop at home? 


At this point in time I think Gigabyte is the single best manufacturer for balancing power and form factor.  In the last round-up, it was ultimately a Gigabyte P34W laptop I chose and it has served me well that last two years.  Gigabyte laptops are not cheap, but are well made, powerful and come with an exceedingly rare 2 year warranty.

Gigabyte Aero 15X

This laptop nails it.  A long battery life, a 1070 Max-Q GPU, large SSD, lots of RAM and a fast CPU in a 4.5lb package.  Price tag is on the high side, but still cheaper than many on this list.  Even the styling is muted but not boring.  The only major problem?  It’s backordered… everywhere!  Earlier non-X versions are available for a lower price tag and a slightly weaker GPU.

Gigabyte P56

Slightly cheaper, slightly bigger and with worse battery life, there is also the P56 series of laptops from Gigabyte.  Capable of up to 1070 GPUs, these are another solid choice and are actually available for purchase.


A few years ago who would every have expected Microsoft to be on this list?  In fact, they make one of the single best options out there if you are willing to make two very large sacrifices, money and power.SurfaceBook2

Microsoft Surface Book 2

Available in 13 and 15” sizes, the Surface book is a very unique concept.  It’s a full computer in tablet form, but also has a keyboard with an additional battery and most importantly a 1050 (13”) or 1060 (15”) GPU!  This machine offers a staggering 10+ hours of battery life and VR capable graphics but there is a catch.  It’s expensive, very expensive.  Actually there is another major catch and the biggest reason I didn’t personally consider the Surface Book.  Under load, the battery drains even when plugged in.  For most people this isn’t a big deal, but for people running game engines all day, this is a huge deal breaker, especially at such a premium price!  Also unfortunately the Surface Book does not have a Thunderbolt connector.


Founded over 30 years ago as a motherboard manufacturer, MSI have an increasingly large presence in the gaming laptop market.  At this point they make so many laptops that could be eligble for this list it’s almost impossible to list them all.  Most of their 15” machines are reasonably portable with good power and middling to poor battery life.  They have a mind boggling 7 different series of laptops, GT, GS, GE, GP, GL, GF and GV, which also have a product name such as Apache, Stealth, etc.  MSI

GE63VR Apache

This series is available in both 15 and 17” and is probably the upper limit of power while still being a fairly reasonable weight.  Packing an i7-7700 and 1070 GPU in under 5lbs.  Battery life however is not it’s strong suit, lasting only a couple hours of moderate use.

GP62MVRX Leopard

The Leopard series is less powerful and thus less expensive than the Apache line.  Available with either a GTX 1050 or 1060 and an i7-7700 CPU, this machine is VR capable while a fair bit cheaper, also in an under 5lb package.  Sadly the battery life is also pretty much terrible on this machine.


I would be remise to not mention Apple in this lineup, although frankly their machines are often poorly suited for game development unless you are willing to spend a fair bit of money.  Only the upper range of the MacBook Pro line ship with a suitable GPU for game development.  On the other hand, build quality is excellent, battery life is also excellent and they are fairly compact portable machines.  Unfortunately Apple also recently removed the F row of keys from their machines, a huge annoyance to developers particularly.  On the flipside, if you want to develop for Apple based devices, a Mac is pretty much a required purchase.

15.4" MacBook Pro with R9 M370X GPUMBP

MacBooks are powered by the same Core i7 CPUs as most other machines on this list.  The MBP weighs in at an impressive 4.5lbs and advertises a 9hour battery life.  The biggest downside is price, generally about 50-100% higher than comparable Windows based laptops.  The most recent Macbook Pro’s ship with an Radeon 555, which is roughly comparable to a GTX 1050.

One major advantage to MacBook’s however is their early and prominent adoption of Thunderbolt, meaning a cheaper Macbook + a External GPU may be an option to overcome the relatively awful GPU situation.


One generally doesn’t think of Lenovo and gaming in the same thought, but this is a bit of a mistake.  Lenovo actually make a few very capable laptops with a really high build quality.

Lenovo Yoga 720

This is a 2 in 1 format machine, designed so the screen can fold back in a tablet like form factor, or tented for watching videos, it also somewhat shocking contains pretty solid Yoga720hardware, including a 1050 GPU and an i7-7700 CPU, but also a full touch screen and stylus.   With an 8 hour battery life and > 4.5lb weight, this is a very portable machine.

Lenovo Legion Y720

Legion is the gaming line from Lenovo, offering a 1060 GPU and a core i7-7700 CPU.  It’s got a bit of gamer styling going on (red lights galore) and pushes the weight a bit at 5.5lbs.  It also has a relatively modest price tag considering the GPU contained.  Also a 6+ hour battery life is certainly solid, while packed with ample ports including Thunderbolt.


The HP Omen line is often a great option for a capable game development laptop.  Unfortunately the very best GPU option currently available from HP comes with a 1050 which is somewhat underwhelming, at least as the top tier option.   They did however just announce an upcoming Radeon Vega powered Spectre x360 coming soon, which could prove to be an excellent option.

Ultrabook + eGPU

Another possibility is pairing an ultrabook with an external GPU.  Basically an external GPU is an encasement that allows you to put a desktop class GPU that you plug into when you are home.  Obviously you will only gain the speed benefits when you are plugged in, but if you spend the majority of time at home, this might be the ideal setup for you.  Examples of eGPUs include the extremely expensive Razer Core or the Aorus Game Box which ships with either a 1070 or 1080.

So Then, What Did I Select?

Given that this entire process, all of this research, was ultimately about be selecting my new primary develop machine… what did I ultimately purchase?  If you are interesting in learning what I chose and why I chose it, be sure to click here. [Coming Soon]

General, Programming ,

8. January 2018

For several years now, the Unity installer has included the ability to install MonoDevelop, the open source C# IDE by Xamarin.  With the upcoming release of Unity 2018.1 this will no longer be the case, as it is being removed from the installer and support is being dropped.  This isn’t really a huge development however, as since Microsoft purchased Xamarin last year they have released a version of MonoDevelopment/Xamarin Studio called Visual Studio for Mac, which will continue to be supported.

Details from the Unity blog:

With the (currently experimental) .NET 4.6 scripting runtime upgrade in Unity we are moving towards supporting many of the new exciting C# features available in C# 6.0 and beyond. It very important for us at Unity that we also provide a great C# IDE experience to accompany the new C# features.

MonoDevelop-Unity 5.9.6 that we ship with Unity today does not support the latest C# features and is also not compatible with debugging C# scripts in the new .NET 4.6 scripting runtime in Unity. To address this we are making 2 changes.

  1. Removing MonoDevelop-Unity 5.9.6 from the Unity 2018.1 installer on macOS and Windows and no longer supporting it for Unity development starting from Unity 2018.1.
  2. Including Visual Studio for Mac as the only C# IDE on macOS in Unity 2018.1.
    On Windows we will continue to include Visual Studio 2017 Community and no longer include MonoDevelop-Unity as an alternative.

Visual Studio for Mac already includes Unity integration out of the box and has since Unity 5.6.1, supporting both the latest C# features and debugging of C# scripts on the .NET 4.6 scripting runtime.

MonoDevelop-Unity users on macOS can download and install Visual Studio for Mac and start using it today.

GameDev News

3. January 2018

Tiled is a popular open source map editor supported by almost every single 2D game engine available these days.  If you are interested in learning more about Tiled, be sure totiled check out our Tiled Tutorial series.  The 1.1 release is absolutely packed with new features inluding infinite sized map support, Wang tile support, context sensitive tool bars and object template support.

Details from the change log:

  • Added support for infinite maps (by Ketan Gupta, #260)
  • Added support for Wang tiles and related tools (by Benjamin Trotter)
  • Added support for reusable object templates (by Mohamed Thabet)
  • Added working directory setting for custom commands (by Ketan Gupta, #1580)
  • Added output of custom commands in Debug Console (by Ketan Gupta, #1552)
  • Added autocrop action based on tile layers (by Ketan Gupta, #642)
  • Added tool bar with tool-specific actions and settings (by Ketan Gupta, #1084)
  • Added shape fill tool for filling rectangles or circles (by Benjamin Trotter, #1272)
  • Added option to lock/unlock a layer (by Ketan Gupta, #734)
  • Added .xml as possible file extension for TMX files
  • Added keyboard shortcut for Save All (by Thomas ten Cate)
  • Added actions to remove a segment from polygon or to split a polyline (by Ketan Gupta, #1685)
  • Added icon for animation editor in the tileset editor (by Ketan Gupta, #1706)
  • Added display of flip bits for hovered tile in status bar (#1707)
  • Added ability to capture tiles while using fill tools (#790)
  • Added option to have mouse wheel zoom by default (#1472)
  • Added tab closing actions to context menu, and close by middle-click (by Justin Jacobs, #1720)
  • Added ability to reorder terrain types (by Justin Jacobs, #1603)
  • Added a point object for marking locations (by Antoine Gersant, #1325)
  • Added ‘New Tileset’ button when no tileset is opened (by Rhenaud Dubois, #1789)
  • Added ‘Open File’ button when no file opened (by Rhenaud Dubois, #1818)
  • Added support for custom input formats and TMX output to the –export-map command-line option
  • Added island RPG example based on Beach tileset by finalbossblues
  • Added file-related context menu actions to tileset tabs
  • Added action to reset to default window layout (by Keshav Sharma, #1794)
  • Added support for exporting tilesets, including to Lua format (by Conrad Mercer, #1213)
  • Keep object types sorted alphabetically (by Antoine Gersant, #1679)
  • Improved polygon node handles and drag behavior
  • Fixed %executablepath variable for executables found in PATH (#1648)
  • Fixed Delete key to delete selected polygon nodes when appropriate (by Ketan Gupta, #1555)
  • Fixed Terrain Brush going wild in some scenarios (#1632)
  • Fixed the “Embed in Map” checkbox to be persistent (#1664)
  • Fixed crash when saving two new maps using the same file name (#1734)
  • Fixed issues caused by paths not being cleaned (#1713)
  • Fixed suggested file name for tilesets to match the tileset name (by killerasus, #1783)
  • Fixed selection rectangle’s shadow offset when zooming (by Antoine Gersant, #1796)
  • Fixed save dialog to reopen after heeding the file extension warning (by Antoine Gersant, #1782)
  • Fixed potential crash when zooming out too much (#1824)
  • Fixed potential crash after deleting object or group layers
  • Fixed Object Selection tool clearing selection on double-click
  • Enabled building with Qbs on macOS, including the Python plugin (by Jake Petroules)
  • Automapping: Don’t fail if an input/inputnot layer isn’t found
  • Automapping: Added a “StrictEmpty” flag to input layers
  • GMX plugin: Added support for defining views with objects (by William Taylor, #1621)
  • GMX plugin: Added support for setting scale and origin for instances (#1427)
  • GMX plugin: Added support for setting the creation code for instances and the map
  • GMX plugin: Start counting default tile layer depth from 1000000 (#1814)
  • tBIN plugin: Added read/write support for the tBIN map format (by Chase Warrington, #1560)
  • libtiled-java: Generate classes from XSD, some fixes and build with Maven (by Mike Thomas, #1637)
  • libtiled-java: Added support for manipulating non-consecutive tile IDs in a tileset (by Stéphane Seng)
  • Python plugin: Adjusted example scripts to API changes (by spiiin, #1769)
  • Flare plugin: Various changes (by Justin Jacobs, #1781)
  • TMW plugin: Removed since it is no longer needed
  • Updated Dutch, Bulgarian, English, French, German, Korean, Norwegian Bokmål, Spanish and Turkish translations

You can read more about this release and the new features here.  Tiled is available for download here while the source code is available here.

GameDev News

Month List

Popular Comments