Back to the main site


Newer posts →

Final Year Project: Implementation and testing of a gaze and gesture based control system in games

Posted on by Malcolm

Multi model user input is an interesting subject because it can significantly change human computer interaction in a very unique way. I think that trying to implement my own multi model control system is an excellent challenge (not to mention very cool).
 
Eye tracking in particular is very interesting because I believe it is one of the most intuitive forms of input since we are always visually assessing the information given to us on a screen.
Continue reading →


Posted in Final Year Project, University Work | Leave a comment

Direct3D 10/HLSL Demo with Normal Mapping

Posted on by Malcolm

For this assignment I had to use Direct3D 10 and author HLSL shaders to render a scene with Lighting. We were given a basic C++/Direct3D 10 application (no pipeline) and geometry/material was provided through a delegate object. I also implemented the camera.
Continue reading →


Posted in University Work | Tagged , , , | Leave a comment

Game Engine Bullet Hell Demo

Posted on by Malcolm

This is a bullet hell based top-down shooter game that I made to show off my game engine for my Games Engine Construction module at university. We were given a library that provided a simple interface to some imaginary game hardware and emulated a limited hardware platform.

(Video can be a bit loud)

Continue reading →


Posted in University Work | Tagged , | Leave a comment

Wasp “Anger” (Attack helicopter/missile animation assignment)

Posted on by Malcolm

My task was to animate the missiles moving to their target after launch, give a suitable ‘delay’ effect to an otherwise fixed camera and animate the camera transition when the user switched to control another Wasp in the world. This was achieved using Bezier curves to create Frenet matrices for both the missiles and camera transition while the camera delay was done by storing the positions of the Wasp in a STL Vector.

Continue reading →


Posted in University Work | Tagged , | Leave a comment

Game Engine Architecture

Posted on by Malcolm

It’s been awhile since I updated my blog. Truth be told I’ve had enough work to keep me up at night but I’d really like to start making these blogs more regular. Today’s topic is Games Engine Architecture and its aimed at people who have learnt C++ and want to progress onto the next stage: making a game. Making a full game can be a daunting task and, to those who have yet to do their first game, it is easy to get overwhelmed by just how much code even a simple arcade shooter or pong contains. Like anything else, it’s best to build up the foundation knowledge (which, in this case, is learning a language) and work up to what you want to achieve in small steps.
Continue reading →


Posted in University Work | Tagged , , | Leave a comment

[Revised] Design Patterns: The State Pattern in C++

This post was revised on the September 17, 2011.

 

So my first attempt at doing the State pattern didn’t go well. But, which the helpful folks at /r/programming I got set back onto the right track again. The end result is something a lot more complex than what I had originally intended but the files are available for download at the bottom of this post for your own perusal.

 

I’m going to use the State pattern in the following scenario: we have a player, be it in an FPS/space-shooter/genre of your choice, who can pick up a shield power-up. So, naturally, when he/she is shot at the shield will absorb the damage. Once the shield has run out the player reverts back to taking damage as normal until they are dead. Under the hood of the Player class we’ll see that is has a single function to take damage and that the behaviour of this function will depend on its internal state variable. This will also be a project in Code::Blocks with multiple files so we’ll also take a very quick look at circular dependencies.

 

This post will assume that you’ve got a firm grasp of Polymorphism (check out my C++ and Java tutorials if you’d like to know more) as well as an understanding of the Singleton design pattern. Now, let us begin.
Continue reading →


Posted in Tutorials | Tagged , , , , | 8 Comments

Polymorphism in C++: Polymorphic Arrays

Since I recently did a tutorial explaining polymorphism in Java I think I’ll do one in C++ as well. I’ll be using this as a precursor to design patterns at some point so it’s pretty important we wrap our heads around this! As I’ve mentioned before: polymorphism is the concept of being able to handle objects of different data types using the same interface.

 

We’re going to use the exact same scenario as I used in my Java tutorial but just so we’re on the same page; we’re going to build and instantiate different classes of objects and make them do something different by calling the same function. This is pretty much the core of polymorphism. First of all we have our Enemy class:

 

Enemy Class
Continue reading →


Posted in Tutorials | Tagged , , | Leave a comment

Polymorphism in Java: Polymorphic Arrays

Polymorphism can be one of the harder concepts to get your head around when first learning to code. Here’s a simple tutorial designed to introduce polymorphism using a polymorphic array to illustrate its usefulness. Hurray! As I’m learning Java right now this tutorial will be in Java and it’s going to assume that you’ve already got a basic knowledge of the language. Polymorphism is the concept of being able to handle objects of different data types using the same interface. Here’s how we’re going to do it:

 

The example I’m going to give will be, naturally, games-based in that we’re going to have different types of enemies that have the same interface but do different things. First we’ll write the Enemy class:

 

Enemy Class
Continue reading →


Posted in Tutorials | Tagged , , | 4 Comments

Path-finding: a novice attempt

Posted on by Malcolm

It’s worth noting here that I’ve yet to actually study AI; I’ll be taking that module in the next year. However, for my end of year assessment in programming, we had to create a game based upon the classic Atari game Centipede and I was complimented by my peers on my centipede’s path-finding ability. So I think I’ll start this blog here.

Centipede 2.0 Title Screen

Centipede 2.0 Title Screen

One truism that you’ll find in programming is this: the more explicit you make your demands, the easier it is to code. This sounds like common sense but it’s very easy to get carried away, especially if you’re starting to get into the groove of programming, with the possibilities you can create at your fingertips.
Continue reading →


Posted in University Work | Tagged , , | Leave a comment

Hello world!

Posted on by Malcolm

Here’s my first blog post! Over the coming years I’ll be blogging throughout my degree in Computer Games Programming at Teesside University on the things I learn. If at least one person learns something from this then I’ll be a happy chappy indeed.


Posted in Malcolm Stuff | Leave a comment
Newer posts →