Good coding guidelines / February 12, 2014

Default Audio Device

In Windows Vista and earlier, the operating system managed a list of audio (playback) devices, and one of them was always specified as the ‘default’. This is how audio devices may have looked on such a system: Speakers (Default) USB Headset Realtek rear audio jack Applications using Windows’ built-in sound functions such as PlaySound() always

Read More
Code / February 4, 2014

Playing video in FPC

A short and simple post for today. Playing a video file in Freepascal, without using Lazarus. I honestly couldn’t find any examples on the internet of how to do this, so I made one. The DirectX9SDK has examples of how to use DirectShow/ActiveMovie to play back video files in C++, however, the common version of

Read More
Code / February 1, 2014

Direct3D – Optimizing for different hardware

When your project is nearing completion, it’s time to look at optimization. For Direct3D, this typically means grouping and reordering of things to make the hardware work as efficiently as possible. For Direct3D 9, Microsoft have published a handy guide of things to look at optimizing here. But it’s interesting to look at the difference these

Read More
Code / January 25, 2014

Sometimes it’s the driver

Consider this pseudocode: Is there a memory leak in the above code? This is just pseudocode, so I’m not trying to be tricky with syntax and I haven’t omitted any key steps in init or shutdown. The answer I should get is “no”. And yet, in reality, the answer is “maybe”. All the code does

Read More
Five Hundred / January 19, 2014

Five Hundred – Version 1.0 now released!

After a delay of way longer than expected, I am happy to announce that the redesigned Five Hundred game V1.00 is now available! I had hoped to have this done several months ago, but I kept getting sidetracked into adding extra features. Some of the new things you can see in this game: User customisable

Read More
Code / June 6, 2013

Five Hundred redesign in development

Update: Version 1.00 now available – get it from this link! Wow, far, far too long between posts! Icefall development is currently on hold for a little while as… the problem is… I’m not finding it as fun to play as it should be. So I think I need to take a break and focus on

Read More
Code / January 1, 2012

Pathfinding

Let’s take a look at pathfinding. Pathfinding is the process where the game can determine a suitable or optimal path from one point to another by traversing the game’s terrain. It’s a critical part of almost all games (RPGs, RTSs, turn-based strategy.. basically anything that has a variable terrain or map is going to need

Read More
Icefall / September 13, 2011

New audio engine

Lately, I have been rewriting some of the subsystems in Icefall. Now that the core of the gameplay is in place, it is time to go back and implement flexible/efficient versions of systems I originally coded in very fast to get the basic game up and running. Mainly this involves recoding subsystems to do things

Read More
Code / May 30, 2011

Net Status

A small break from Icefall. My network has been a bit flakey recently, and it was irritating because it wasn’t always immediately obvious when it died. So I wrote a little application that can sit in the notification area and send a regular ping to a designated address/site, and make a sound if it suddenly

Read More