Gamasutra: The Art & Business of Making Gamesspacer
arrowPress Releases

If you enjoy reading this site, you might also want to check out these UBM Tech sites:


Niklas Gray's Blog   Expert Blogs


Niklas Gray is a 15 year veteran in the game development industry. He was a lead programmer at Grin for six years together with Tobias Persson. After Grin, they created the Bitsquid game engine which was acquired by Autodesk in 2014. He's currently working on new tech at Our Machinery together with Tobias Persson and Tricia Gray.

Niklas is a strong advocate for openness and information sharing in the gamedev community. We're all in this together.


Expert Blogs

Posted by Niklas Gray on Wed, 18 Oct 2017 09:07:00 EDT in Programming
Adding high-performance multi-threading support to a complicated data structure.

Posted by Niklas Gray on Wed, 27 Sep 2017 10:28:00 EDT in Programming
Discusses the different source control practices I've used in the past and why I've decided to move from GitFlow to trunk-based development.

Posted by Niklas Gray on Tue, 26 Sep 2017 09:05:00 EDT in Programming
Discusses how to handle keyboard focus and trickling of events (UI responder chain) in an Immediate Mode GUI.

Posted by Niklas Gray on Wed, 19 Jul 2017 10:51:00 EDT in
This post describes the higher level layers of the immediate mode UI system we use at Our Machinery.

Posted by Niklas Gray on Mon, 26 Jun 2017 11:24:00 EDT in Programming
In this blog post I argue for using 0 as the default and "nil" value in multiple parts of the code.

Posted by Niklas Gray on Tue, 06 Jun 2017 10:21:00 EDT in Programming
In this post I show how to build a plugin system out of the API registry presented in the previous post.

Niklas Gray's Comments

Comment In: [Blog - 09/27/2017 - 10:28]

Interesting questions I 'll do ...

Interesting questions I 'll do my best to answer: r n r n Modifications to the PR can be a whole range of things: coding standard violations, spelling errors, inefficient algorithms, incomplete documentation, missing const, etc. I 'd say the most serious ones were the ones where a concept or ...

Comment In: [Blog - 06/26/2017 - 11:24]

Yes, it 's true that ...

Yes, it 's true that the last code doesn 't let us distinguish between a non-existing bone and a bone with length zero. But there are cases where we don 't need to make that distinction. If we do, we can write the slightly more cumbersome code that checks the ...

Comment In: [Blog - 05/17/2017 - 10:18]

You could do everything with ...

You could do everything with source code and static linking, but that creates other problems. It means that in order to add new functionality a plugin to the product, I need to have a development environment setup and recompile the application. We envision a setup where for example an artist ...

Comment In: [Blog - 04/25/2017 - 10:30]

I use those three, but ...

I use those three, but not much more. I prefer working in pure text editor rather than Visual Studio mostly because I find it gives me better focus -- I see the code and nothing else. Visual Studio Code and Sublime Text are nice too.

Comment In: [Blog - 04/19/2017 - 10:30]

The reason why we are ...

The reason why we are using C style interfaces to our systems is not primarily about reducing compile times, but for a number of other reasons: r n r n We want to allow API users to write C and not force them to use C . r n We ...