OpenGL dumb mistakes: the mysterious Perfect Circular Hole
I’ve got a long-running project around rendering 3D Earth in interesting ways. It’s being used in a game project, and some non-game stuff too. Here’s a recent screenshot: I added a particle system that...
View Article4 Beginner Projects for Launching into Game Programming
Photo credit: minipixel Lots of students and beginner developers ask me, “What’s the fastest way to become a game programmer?” Once you’re an amazing programmer, the world is open to you. You can make...
View ArticleReading The Papers: Guaranteed Candy
For some developers, all this talk of procedural content generation is bittersweet. If you’re generating a world map, for instance, you probably don’t have too many requirements of it. A bit of land,...
View ArticleHavok Physics: 4 tips you won’t find in the docs
Hey fellow coders, I’ve used Havok Physics at several game studios over the years and I thought I’d share some little-known but hopefully useful tips about this middleware. For a rigid body, find all...
View ArticleRoll-Your-Own Vector
(Also posted to upcoder.com, third in a series of posts about Vectors and Vector based containers.) STL vectors offer a great combination of dynamically resizing convenience and low level contiguous...
View ArticleAvoid Resize()?
(Also posted to upcoder.com, number 4 in a series of posts about Vectors and Vector based containers.) This post is essentially a response to feedback to this previous post. In that post I talked...
View ArticleReading The Papers: Exhausting
When programming systems it makes sense to keep complexity and scale in mind. Don’t try and render 400,000 sprites all at once. Don’t try and send the entire world state to every player on the server....
View ArticleReading The Papers: Ludus Ex Machina
I haven’t discussed my own research in this column yet, but you may know that I’m interested in automating the process of game design in its entirety. At the highest level, game designers produce...
View ArticleMulti-Threaded Programming 1: Basics
This will be a series of posts in which I will cover a good portion about what I have learned in terms of multi-threaded development in the realm of video games. I am writing this since I have been...
View ArticleMulti-Threaded Programming 2: Communication
The next step in learning about multi-threaded programming is going to involve seeing how threads communicate with each other. This is important so that it is understandable why many of the pitfalls...
View ArticleImplementing a code generator with libclang
[DOI: 10.5708/szelei.2014.A.1] Introduction Click here to skip the introduction and see the code. The following article covers the process of implementing a practical code generator for C++ in detail....
View ArticleData Structures for Entity Systems – Contiguous memory
This year I’m working on two different projects that need an Entity System (ES). One of them is a non-game app written natively on iOS + Android. The other is an FPS in Unity3D. There are good, basic...
View ArticleKeyboard shortcuts info in debug builds – IMGUI style
I want to share a little discovery, a trick easing the creation and development of games. First a short motivational and historical introduction. Case study I don’t know if you have it too, but when...
View ArticleUnity3D Resumable Downloads
The Problem I keep working with mobile games built using Unity, most of which have a target executable size of 50MB. These games however tend to have more than 50MB worth of assets, so they pack...
View ArticleZero Initialisation for Classes
(Also posted to upcoder.com, number 5 in a series of posts about Vectors and Vector based containers.) This is a response to comments on a previous post, roll your own vector, and has also been...
View ArticlePrincipled Design
What makes good software? Lots of properties, certainly, are probably required for us to consider a bit of code to be good. It’s probably robust, and well tested. It probably has a clean API, a lack of...
View ArticleGDC 2014 Report
It’s that time again. Personally I think GDC this year was more interesting that a few preceding ones. Next-gen consoles have arrived, mobile gaming is really big still, and a quality Virtual Reality...
View ArticleMulti-Threaded Programming 3: Locking, Lock-Free, Wait-Free
Now I want to cover the basic terminology used when talking about concurrent algorithms. This will be helpful so that you are familiar with the available techniques you have when you have multiple...
View ArticleBuilding an Engine Plugin System
A plugin system is a useful way to allow developers to extend the capabilities of a game engine. Of course, an engine can also be extended by directly modifying the source code, but there are several...
View ArticlePrototyping and Code Quality
Prototyping is a popular method for getting a feel for the core features of a given application. It is often used as the first step when your company is looking into a new prospect with a lot of...
View Article