Understanding Game Maker 1.2s LLVM

Yesterday YoYoGames CTO publicly released 2 APK files demonstrating the new LLVM compilation in game maker studio that should be coming in version 1.2.

But what does this actually mean for users of game maker? Lets first answer this question by defining what an LLVM is and why its better than a traditional Interpreter.

LLVM Stands for Low Level Virtual Machine and it can be thought about as a replacement for the traditional interpreter but why replace something that’s all ready working? An interpreter just like in real life stands between two platforms, the Source Speaker (GML) and the Destination Platform(PC, Mac, Linux) interpreting what the source is trying to say into actions the destination can perform.

A perfect example of this would be a Chinese man speaking to an interpreter to ask an English man to fetch him some coffee while this process works it is not an ideal situation.

In order for this to work the interpreter needs to speak fluent English and Chinese and in the same way the GML Interpreter needs to know every function of gml and be able to translate that into an appropriate function of any other platform this means the interpreter becomes heavy with knowledge and holds onto information about everything possible in gml even when its not required.

The LLVM solves this problem by eliminating the middle man directly compiling the language to common language “CL”  this common language is then compiled directly to the platform in question this gives us a huge performance gain over interpretive systems since we no longer have a middle man this also makes it significantly easier to take the language to different platforms since no longer do we need to port the interpreter to a new platform but instead simply add support for the common language which in many cases is already done.

The LLVM handles code optimization and generation at a low level this means no longer are functions compiled into your applications that your applications don’t use which allows for a smaller footprint since we no longer have the entire GML Interpreter built into the application but only a subset of whats being used.

You can quickly begin to see the benefits of an LLVM system over the traditional interpretive system and we should be expecting to see a realistic performance increase in application logic of over 2x and of course small footprints.

 

You can find the demo apk’s and the post by YOYO’s CTO Below

http://gmc.yoyogames.com/index.php?showtopic=545645&page=6#entry4269415

https://www.dropbox.com/s/vcxr1swsi4hrf5r/GDC_Stars-NoLLVM-1.0.0.apk

https://www.dropbox.com/s/88lj8oqjr4t2t76/GDC_Stars-LLVM-1.0.0.apk

The Best Tips For Game Developers

Hello All!
This is a collection of my thoughts… raw and unedited after watching this you will come out a better developer i promise. I go over how to teach yourself to think for yourself how to solve your own problems and not get stuck while your developing.

I try my hardest to explain how to free yourself from the limitations of ‘what you know’ and become a problem solving developer who can make anything.

The video is structured as follows:

My introduction and ramblings
00:00 – Greetings
01:05 – Developing Tile Consistency
03:35 – The Best Advice Ever
04:53 – How to Learn

Examples and lessons
09:00 – Breaking Down 2D Collisions
13:03 – Breaking Down Monster AI
15:50 – Breaking Down Monster AI Part 2
17:05 – Breaking Down Attack Mechanics
21:15 – My Experiences
24:00 – Judgement Calls
26:00 – Conclusions

Creating Polished Games Introduction

Polishing

Hi Guys, I’m going to write a few small articles and accompany them with some you tube videos. my focus here is going to be on things you can do to polish your games when you don’t have access to a talented artist.

Now please don’t go into this expecting to come out of it with Hollywood style polished graphics created by a team of commercial artists because quite simply you cant polish a turd but you can make it smell less bad 😛

Its mostly a collection of my thoughts and personal techniques but mostly i just want to share my process’s with you guys so people struggling with artwork can begin to have some level of quality in their games.

There’s a lot you can do with code to liven up a game and make it feel more polished without needing to invest in a professional artist.

sprite effects, easing on your movement, better physics, refining your controls etc. we will go over these techniques in the coming weeks.