Functional APIs are a joy to work with. Not only do they help eliminate certain bug categories, but they tend to be very flexible and reusable. Today I present a technique that has emerged while I was simplifying some lambda based APIs. C++17 makes template meta-programming much more palatable, I dare not imagine what this would look like in C++11. Continue reading “Declarative Functional APIs – A.K.A. Abusing Lambda Parameters”
My latest little experiment relates to compile-time options and eliminating preprocessor checks in user code. I’m not a big fan of MACROs, especially when they are simply used to make compile-time branches. I am also not a fan of other techniques used to minimize this problem. With C++17, we now have a beautiful and simple tool that can help remove all these preprocessor checks,
Continue reading “Simplifying Compile-Time Options With if constexpr”
In the past months, I’ve rewritten the entity-component system of my engine pet project about three times. Finally, something that ticks all the boxes has emerged. Today, I’d like to present this architecture. So far it has worked wonders for me, though I wouldn’t guarantee this to scale up to AAA sized projects. I still have much testing to do.
Continue reading “Friendly Data-Oriented Entity-Component Managers”
A little while ago, I watched Jason Turner’s great cppcon talk, where he uses C++17 to write a commodore game. At that point, I decided it was quite time I confirm my (now proven false) beliefs on templates. If you ever want to convince a game programmer that templates are fine, show him that talk, and some assembly 😉 Continue reading “Static Duck Typing in C++”
When working with SIMD intrinsics, it helps to have a thorough understanding of computer memory. In this post, I hope to shed some light on a really simple but essential operation to figure out if memory is aligned at a 16 byte boundary. Continue reading “SIMD Quicktip: Understanding 16 Byte Memory Alignment Detection”
A good friend challenged me while we where investigating vtables and various ways to create a reflection system without macros. He stated, “It is impossible to store a virtual method pointer in a C callback”. I decided to prove him wrong. Here, I present the result of this investigation. Continue reading “Not Impossible : Storing C++ Virtual Method Pointers in C Callbacks.”
I’ve seen a lot of examples, tutorials and open-source code that use quotes to assign their shader programs to a
const char*. Fully fledged engines would have a way to parse text-files, but if you are doing quick and dirty tests like me, you can use this macro to make editing easier. Continue reading “GLSL Quicktip: Stringify Macro”
I’ve recently started playing old gems, classics, in an effort to further my game design knowledge, ideas and culture. The games I have chosen are completely new to me. It is truly interesting to delve into very old titles, especially when you remove the nostalgia factor. Here I write my thoughts, impressions and lessons learned from some of these games. Continue reading “Game Design Memory Lane – Legacy of Kain: Soul Reaver”
This simple guide doesn’t require any third-party tools or apps.
A quick guide to help you get the most out of your monitors and Eve. Once you’ve played the game in all its dual screen glory, you will never go back. Lets get started! Continue reading “Eve Online – Dual monitor window on OS X”
Somehow, due to either miss-information or a change it twitch’s apis, the web is filled with false information about livestreamer and downloading twitch replays. Lets fix that. Continue reading “Downloading Twitch replays is easy”
We’ve all been there; you import a font into Unity3D, write some UI text and… its blurry [sadface]. Here is a quick reference on how to get buutiful crispy text in the engine. Continue reading “Crispy text in Unity3D”
N.B. This solution is completely free and only requires iShowU Audio Capture.
So I recently upgraded to El Capitan and I need desktop audio capture for Open Broadcaster Software. The new OS X release only authorizes signed kext, which is a good thing. Unfortunately that breaks Soundflower or WavTap. Continue reading “Capturing Desktop Audio on El Capitan”