Subscribe to GameFromScratch on YouTube Support GameFromScratch on Patreon
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

21. December 2017

With the release of C# support in Godot people are naturally going to want to use Visual Studio Code for their development.  This guide is going to walk step by step through the process.  It’s important to note that debugging is currently not supported.

Before continuing it is assumed that you are running Godot 3 Beta for Mono (or newer).  Also be sure to have a most recent version of Visual Studio Code installed.

If you haven’t already, be sure to install the C# extension in Visual Studio.


Next in Godot, let’s configured Visual Studio Code as our external editor.  Select Editor –> Editor Settings


Select Mono->Editor, then drop down External Editor and select Visual Studio Code.


Now when you edit a CS file in Godot, it will automatically open in Visual Studio Code.  Assuming you did the C# extension, you should get full intellisene, code completion, etc.

You now have two options, you can simply edit your code save it, then run from within Godot.  Or you can run directly from the terminal within VS Code.  In the terminal ( Ctrl + ‘ ) enter first the path to your Godot executable, as well as the scene you wish to run.  In my case:

D:\dev\Godot_v3.0-beta1_mono_win64\Godot_v3.0-beta1_mono_win64.exe Node.tscn

This should then execute your scene.

Of course, doing this over and over is going to get old quick, so why don’t we define it instead as a Task.  In Visual Studio Code select Tasks->Configure Task:


Next select Open tasks.json file


Now enter the following:

    // See
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
            "label": "run Godot",
            "type": "shell",
            "command": "D:\\dev\\Godot_v3.0-beta1_mono_win64\\Godot_v3.0-beta1_mono_win64.exe Node.tscn",
            "problemMatcher": []

Be sure of course to set the path to your directory in the command setting.  Also notice the slashes are escaped using double slashes \\.  You can now run this via the palette.  Ctrl + Shift + P then enter Run Task


You should now have your newly created task available:


Again, doing this over and over again also gets old, so lets define a hotkey.  Choose File->Preferences->Keyboard Short Cuts.  Click the keybindings.json link:


Now enter

// Place your key bindings in this file to overwrite the defaults
		"key": "ctrl+G",
		"command": "workbench.action.tasks.runTask",
		"args": "run Godot"

This will cause your scene to run when you hit the Ctrl + G hotkey.


6. December 2017

GameMaker is a seminal game engine, with roots dating back to the late 1990s.  It is a cross platform 2D game engine with tools that run on Windows and Mac machines while capable of targeting both desktop operating systems as well as Ubuntu Linux, Android, iOS, UWP, HTML5, XBox One and PlayStation 4 consoles.  GameMaker is commercial software with a free trial available, we will discuss pricing shortly. 

The closer look series is a combination of overview, review and getting started tutorial aimed at helping you decide if a given engine is the right choice for you.  As always, there is an HD video version available here and embedded below.

Let’s jump right in with GameMaker Studio 2!

The Tools

GameMaker Studio is an all in one integrated environment for creating games.  It includes everything you need in a single application with a tabbed working environment and a unique virtual desktop style approach supporting multiple editing windows at once.  The all in one all tools at hand nature of GameMaker is probably one of it’s greatest selling points.

The Main Interface


Side and bottom panels can be collapsed down to give more room:


The primary work area is tabbed, supporting multiple open views at once:


As mentioned earlier, GMS has a workspace setup that enables you to work with and pan between multiple editors at once, like a giant virtual desktop.


The resource panel is commonly used across the various editors and contains the various assets that make up your game.  You can also drag and drop assets onto this window to import them for use in your game.  For example, dropping in an image file will create a new Sprite entity for you.


You can also create new entities via the dynamic right click menu.  For example, right clicking the Tile Sets area will bring up this menu:


The Room Editor


This is your traditional level editor, where you can create various layers of entities that compose your game level.  A top left you have the layers controls, enabling you to create/delete/hide the various layers that make up your game.  Layers can be composed of instances (objects), backgrounds, tile maps and paths.  The editors below the layer controls change dynamically based on what kind of layer is selected.

Selecting a tile layer brings up the tile map editing tools, including a palette of tiles you can paint with.


GMS even has support for auto tiling, if your tileset is compatible.

The Sprite Editor


This editor enables you to define how a sprite is imported, the various frames of animation if any as well as a preview of the sprite or animation.  Additionally, clicking Edit Image brings up a full blown image editor within GameMaker.


This is a full blown sprite editing package with a variety of brushes available, full layer support, the ability to paint across frames, several tools such as text tools, polygon tools, a magic wand selection tool, mirroring tools and more.  Pretty much all the functionality you would expect for creating or editing sprites is available directly in GMS.

Sound Editor


You also have control over sound effect details via the sound editor/mixer.  Supported audio files include wav, mp3, wma and ogg.

Tileset Editor


As mentioned earlier, the room editor has full support for tileset layers.  There is an editor for defining tilesets as well as defining auto tiling support.  There are also editors for defining tile animations and creating predefined tile brushes.

Path Editor


This editor is used to define paths, either straight line or curves.  Often used for AI paths, the generated paths can be used and editing directly in the room editor.

Script Editor


This is the built in editor for developing games using GameMaker Script.  It has syntax highlight, code suggestions and a selection of other features.


The code editor is also used for shaders.

Drag and Drop Editor

In addition to GMS scripting, GameMaker also provides a drag and drop programming option.


You can use drag and drop from the toolbox to script your programs behaviour.  We will cover both programming options in more detail shortly.

Font Editor


Enables you to import and preview fonts for use in your game.  Fonts can be in either true type or open font formats.

Object Editor


The Object Editor is where you will start to tie your various resources together.  For example, your main character will be an object that connects to a sprite, while handling various different events.  Objects are created in the Object Layers in the room editor and generally represent the entities that make up your world.  We will look at objects in a bit more detail later.

Programming In GameMaker

You may be wondering at this point how exactly you implement gameplay logic in your GameMaker game?  Essentially you attach logic to objects in the game world.  When you edit an object you will notice there is an Events option.


Click the Add Event button and you will see the various events you can respond to in your game:


These are called at various points by the game engine and are analogous to the game loop in other engines.  Step is called once per pass through the game loop and is most commonly where you will handle update logic.  There are also events for when the object is created, destroyed, etc… as well as various options for responding directly to events such as collisions, touches, etc.

You can also wire up code to be called when a Room is created, via the Creation Code button:


Next it’s a matter of deciding HOW you want to program in GameMaker, via Drag and Drop as well as directly using GameMaker scripting.


Scripting is done using Game Maker Language, or GML, which is a C like scripting language.  The syntax is fairly simple and if you’ve had any prior C, Python, C++ or similar language experience, picking the language up should be fairly simple.  There are built in methods for most functions you would want to perform such as graphics drawing, audio code, networking, platform specific tasks like in app purchases etc.  There are also built in data types such as Stacks, Lists, Maps and Queues.  Actually teaching GML is beyond the scope of this document but you can access the language reference here.

If functionality is lacking it may be available on the GameMaker Market Place or you can add it yourself by creating a native extension.  You can add new functions to GML in this manner.

Drag And Drop

Programming via drag and drop in GameMaker is your other option and is a great choice for people that just want to jump in and figure things out on their own.  Don't worry too much about performance as the DnD code is ultimately generating GML script so performance should be roughly the same.  In fact, you can switch freely between the two programming methods at will within the same project or call GML directly in your DnD script.

Creating scripts in DnD is as simple as dragging in predefined functions to create a flow chart of sorts that occurs top down, like so:


Once again, you can freely switch between the two methods.  Additionally, in any script your can right click and select Convert To Drag and Drop.  A reference of all the drag and drop tiles is available here.

The Price

GameMaker is commercial software, so that means there is a price tag attached.  There are multiple versions available for GameMaker as well as addition platforms coming with an additional price tag.  Pricing (as of today, 12/6/17) breaks down as follows:



In addition to these various different platforms, there is also now a new $39 per year ( most of the above non-console licenses are permanent buy once ) Creator Edition aimed at hobbyist developers.  It is fully featured but requires you to choose Windows or Mac and also requires your game display a splash screen.  There is also a heavily limited free trail available.  For more information on pricing or to download the trial visit here.

Community and Documentation

As you might expect for such a long lived game engine, there is also a very well established community.  The forums are available here.  With almost 20K registered users and 230K posts, the forums are quite active and contain a wealth of knowledge, although much of it is for earlier 1.x versions.  Questions seem to be answered fairly quickly.  In addition to the forums there is also the YoYoGames help desk containing several guides and how-tos.

There is also a fairly comprehensive GameMaker Studio manual available online which can be opened directly within Studio.

Additionally, there are several books available for GameMaker Studio such as:

In addition there are several tutorials and start kits available on the online marketplace, which we will talk about…

Online Marketplace

Quickly becoming the must have feature of modern game engines, GameMaker has an online store available, containing free and commercial assets including demos, scripts, sprites, shaders, extensions and more.


You do not need to have GameMaker Studio installed to access the marketplace, you can browse it in your browser here.


At the end of the day, GameMaker Studio faces a challenging new world as it is facing increasing competition from free and free to start game engines.  Is it worth it?  That is impossible for me to answer, as value is very subjective.  Game Maker is certainly a very complete 2D engine with a vibrant community and tons of resources.  Compared to the previous versions, the 2.x editor contains a great deal more polish and most every tool you would need is included out of the box.   Game Maker has certainly proven itself a production capable engine, having powered such titles as Hotline Miami, Undertale and Spelunky, all titles that have seen commercial success.

A proven catalog of game is always a strong selling point.

Personally, if you are working on a 2D title using Windows or Mac, Game Maker is certainly worth considering.  Do keep in mind however that as you add more platforms, you also add more cost.  In many cases though, this means you are ready to commercialize your title, so hopefully cost isn't as much of a concern.  I do think however they are making a mistake in charging for the Creator Edition.  Personally I would do away with the trial completely, make Creator free and charge people to deploy to additional platforms.  If this was the case it would be a great deal easier for me to recommend you check out GameMaker yourself.  Without a free option, its hard to recommend in the face of so many free/free to start options out there.  The engine is great, productive, proven and easy to learn… just saddled with a bit of a dinosaur business model.

The Video

Programming General Design

28. November 2017

JetBrains released version 1.2 of the Kotlin programming language.  Kotlin is a statically typed JVM based language that also has the ability to be compiled to JavaScript.  The goal of Kotlin is to be a “better Java”, while remaining fully intraoperative with the Java language and ecosystem.  AsKotlin of Android Studio 3.0, Kotlin is a first class language in that IDE.

In regards to the Kotlin 1.2 release:

In Kotlin 1.1, we officially released the JavaScript target, allowing you to compile Kotlin code to JS and to run it in your browser. In Kotlin 1.2, we’re adding the possibility to reuse code between the JVM and JavaScript. Now you can write the business logic of your application once, and reuse it across all tiers of your application – the backend, the browser frontend and the Android mobile app. We’re also working on libraries to help you reuse more of the code, such as a cross-platform serialization library.

Kotlin 1.2 is already bundled in IntelliJ IDEA 2017.3, which is being released this week. If you’re using Android Studio or an older version of IntelliJ IDEA, you can install the new version from the Tools | Kotlin | Configure Kotlin Plugin Updates dialog.

This release includes a lot of work done by external contributors, and we’d like to thank everyone who sent us feedback, reported issues, and especially those who submitted pull requests.

Multiplatform Projects

A multiplatform project allows you to build multiple tiers of your application – backend, frontend and Android app – from the same codebase. Such a project contains both common modules, which contain platform-independent code, as well as platform-specific modules, which contain code for a specific platform (JVM or JS) and can use platform-specific libraries. To call platform-specific code from a common module, you can specify expected declarations – declarations for which all platform-specific modules need to provide actual implementations.

Multiplatform projects isn’t the only new feature of Kotlin 1.2, other new 1.2 features include:

  • A more concise syntax for passing multiple arguments to an annotation (array literals);
  • Support for the lateinit modifier on top-level properties and local variables, as well as checking whether a lateinit variable is initialized;
  • Smarter smart casts and improved type inference in certain cases;
  • Compatibility of the standard library with the split package restrictions introduced in Java 9;
  • New kotlin.math package in the standard library;
  • New standard library functions for working with sequences and collections, including a set of functions for breaking a collection or sequence into potentially overlapping groups of a fixed size.

You can learn more about the release on their blog as well as in the more detailed What’s New article.  I did a cheat sheet for programmers used to other languages to get up to speed with Kotlin.  This was written shortly after the language was released however, so may not be current in regards to modern Kotlin language features.


21. November 2017

Up till this point in our ongoing Allegro Tutorial Series we have covered creating a window, handling a game loop, drawing sprites, handling input and playing audio, pretty much every aspect of creating a basic game.  In this final tutorial we are going to look at some of the other graphics capabilities in Allegro, specifically graphics primitives.

If you’ve been following the tutorial series till this point, it should come has no surprise that primitives are implemented as an add-on as well.  In this case it’s using the Primitives add-on:


Without further ado, let’s jump straight into the code example:

#include "stdafx.h"
#include <allegro5\allegro.h>
#include <allegro5\allegro_primitives.h>

int main()

	display = al_create_display(640, 480);
	float points[8] = {0.0f, 0.0f, 100.00f, 100.00f, 200.00f, 100.00f, 640.00f, 150.00f};

	float polygon[8] = { 640.0f, 100.0f, 640.0f, 300.0f, 380.0f, 350.0f, 200.0f, 200.0f };

	bool running = true;
	while (running) {
		al_draw_line(0, 0, al_get_display_width(display), al_get_display_height(display), al_map_rgb(255, 0, 0),5.0);
		al_draw_rectangle(100, 100, 300, 300, al_map_rgb(0, 255, 0), 1);
		al_draw_ellipse(300, 300, 120, 50, al_map_rgb(0, 0, 255), 3);

		al_draw_spline(points, al_map_rgb(128, 128, 0), 8);

		//al_draw_polygon(polygon, 8, ALLEGRO_LINE_JOIN_BEVEL, al_map_rgb(255, 15, 15),3,1);
		al_draw_filled_polygon(polygon, 8, al_map_rgb(255, 0, 0));

	return 0;

When you run this example you should see:


Granted, a pretty chaotic mess in the end, but illustrating a number of concepts in a single example.  First we start off by calling the appropriate init() method for the Primitives add-on.  When then draw a line in red ( R = 255, G = 0, B=0 ) from the top left to the bottom right corner of our display.  Next we illustrate drawing a rectangle, followed by an eclipse.  Finally we illustrate a slightly more advanced example of drawing a spline, then a polygon, by providing an array of points/vertices to draw.  As you can notice from the commented function, there are also functions specifically for drawing primitives fill with a solid colour.

We have only scratched the surface of the drawing functionality the Primitive add-on is capable of in this example, but the basic concept applies to all functions.

That concludes the tutorial series and should hopefully give you a good foundation on getting started with Allegro.  If you wish to jump into more depth with Allegro, be sure to check out the official manual available here.

Back To Table Of Contents


GFS On YouTube

See More Tutorials on!

Month List