Case Study: Bomberman Mechanics in an Entity-Component-System
The Bomberman series of games are simple games with an interesting set of mechanics. Having used an ECS framework in a few projects, I thought it would be useful to see how we can implement these...
View ArticlePractical Guide to Bezier Curves
This is meant as an intermediate guide to Bezier curves. I'm assuming you've all read about Bezier curves and the Bernstein basis functions and have a general idea about how it all works. This is meant...
View ArticleSmart Pointers Gotchas
There are at least several questions about using smart pointers in modern C++11Why is auto_ptr deprecated?Why does unique_ptr finally work good?How to use arrays with unique_ptr?Why create shared_ptr...
View ArticleThe Shaming of Pac-Man: A Remake of the Classic From the 80's With A Beginner...
In this long titled article, I will address two things:Firstly, I will present my Pac-Man remake that I prepared for the themed article contest of May. Following a brief technical overview and...
View ArticleOrganizing Code Files in C and C++
IntroductionWhile many simple programs fit into a single C or CPP source file, any serious project is going to become far more manageable if split up into several source files. However, many beginning...
View ArticleBuild-Order Optimization in StarCraft
David Churchill and Michael Buro University of Alberta Computing Science Department Edmonton, Alberta, Canada Abstract In recent years, real-time strategy (RTS) games have gained interest in the AI...
View ArticleFinite State Machines and Regular Expressions
IntroductionI want to present an important and interesting topic in computer science, the Finite State Machine (FSM). In this part we start with the basics, gaining an understanding of what FSMs are...
View ArticleCross Platform Test Driven Development Environment Using CMake (Part 5)
With the release of CMake 2.8.11, some new features have been made available which greatly simplify certain areas of work compared to the prior articles. The primary feature of note is what the CMake...
View ArticleFast Heuristic Search for RTS Game Combat Scenarios
David Churchill and Abdallah Saffidine and Michael Buro University of Alberta Computing Science Department Edmonton, Alberta, Canada Abstract Heuristic search has been very successful in abstract game...
View ArticleIncorporating Search Algorithms into RTS Game Agents
David Churchill and Michael Buro University of Alberta Computing Science Department Edmonton, Alberta, Canada, T6G 2E8 Abstract Real-time strategy (RTS) games are known to be one of the most complex...
View ArticleWhy Is It Building So Long?
Most of Object Oriented guides revolve around the word encapsulation: we should hide implementation details of a class and reduce coupling between objects as much as possible. But in C++ (and also in...
View ArticleUsing C# Managed DLL's in UDK
The following article is similar to articles that I have posted on the UDK forums and in my blog. This article has been updated to use the latest version of Visual Studio Express and the latest version...
View ArticleHaskell Game Object Design - Or How Functions Can Get You Apples
In this tutorial, we will see one possible way to model game objects in Haskell. To do so, the tutorial proposes several design problems with increasing levels of difficulty. For each of these...
View ArticleBazaarBot: An Open-Source Economics Engine
This availability of commodity physics engines has freed designers to focus on interesting new games, powering everything from Crysis to Angry Birds. The key is straightforward API's that let...
View ArticleImproving a Sprite-Based Rendering Procedure
By considering a scene of the —work in progress— game Plee the Bear, I will first describe in this article how much work is done during the default rendering procedure. Then it will be compared with an...
View ArticleUseless Snippet #1: Transform Vec3f by Matrix4x4f
This is a rewrite of an old blog post I wrote a couple of years back. Finally, I found some time to redo the performance tests based on an observation made by Sean Barrett on the original post. The...
View ArticleTen Things to Achieve When Starting 3D Programming
Starting 3D programming is not an easy task to accomplish. There are a lot of new things that come into play, and they vary from choosing a programming language to selecting the correct 3D modeling...
View ArticleHide Objects Blocking Player View
In most isometric-esque RTS-style game views, sometimes pesky walls can pop into view, hindering the player's connection with the protagonist. This isn't good but is easily solvable with many different...
View Article