An Introduction To GameMaker Studio’s Shader System

on December 12, 2013 - 35355 Views

The GameMaker Studio shader system was introduced in version 1.2 and allows for powerful visual effects in both 2D and 3D games. If you haven’t used shaders before you’ll find there is a bit of a learning curve.

Fortunately, whether you understand shaders at a basic level or not, you can implement them in your game with ease.

The Basics

Shaders can be written in the OpenGL Shading Language (GLSL and GLSL ES), and the DirectX High Level Shading Language (HLSL 9 and HLSL 11).

The shader system is cross-platform. GLSL ES is the best choice for multi-platform games, except when using the Windows 8 JavaScript export. Since HLSL shaders are powered by DirectX, they are not suitable for cross-platform games. Notably, HLSL 11 only works with the native Windows 8 export and Windows Phone in GameMaker Studio.

When you create a shader within GameMaker Studio, an editor will appear. It resembles the GML editor window, except it has two tabs; vertex and fragment. Any code used here will be executed through the GPU.

A vertex shader operates on vertices of shapes and visuals, and is used to handle data related to graphical aspects like texcoords. For example, it could be used to help create a ghostly glow around a 3D model. It helps define shape, and can set up information used by the fragment shader.

A fragment shader (more commonly known as a pixel shader) modifies graphics on a pixel-by-pixel basis. This shader is used for altering lighting, depth, colour, and creating complex shadows.

To put it simply, if a vertex shader has four points that form a box, a fragment shader will draw the pixels within.

Create Your Own Shaders

If you are interested in learning how to develop shaders, there are resources online that can help you get started.

Try this tutorial for developing OpenGL shaders »

Seek advice and find examples on the OpenGL forum »

Too Much Effort?

If you aren’t interested in learning how to create your own shaders from scratch, there are other options.

The GameMaker Community has a sub-forum dedicated to the development and sharing of shaders. You can download shader demos, then copy the vertex and fragment shader code into your own projects. By doing this you can easily implement stunning visual effects into your GameMaker projects with hardly any effort.

A collection of open-source shaders »

You can even request a shader »

Don’t Be Intimidated

Regardless of your experience with GameMaker, don’t be afraid to try shaders. If you want to add simple weather effects, or place a glowing sun in the sky, or even create television static for your main menu, then shaders can help you out.

Beyond special effects, practical uses for shaders have also been discovered. A shader could be used to smooth out blurry graphics, which helps low-resolution games achieve a natural look at higher resolutions. It is this type of functionality that hints at the potential of GameMaker Studio’s shader system.

One Response to An Introduction To GameMaker Studio’s Shader System

  1. Nice article. How about GLSL ES on Windows 8 Native? Is it the same for JS?

Leave a Reply

Your email address will not be published. Required fields are marked *

« »

UA-86813905-1