Icefall / November 21, 2009

Icefall UI Evolution

Taking a break from coding topics, today’s post explores how Icefall’s dialog User Interface (UI) has evolved over the course of it’s development. My automatic-backup tool keeps every version of Icefall available, so I fired up a few old versions and took some screenshots to illustrate the process. Original Design This screenshot is actually from the

Read More
Code / November 18, 2009

More Textures than Memory

Icefall uses literally dozens of textures… (and it will probably be ‘hundreds’ by the time the game is completed). Textures are used for everything, from the mouse cursor, menus, fonts, buttons, to the game world itself, spells/action icons, monsters, equipment… everything. Although my own main PC has 512MB of video (texture) RAM, not everyone does!

Read More
Icefall / November 5, 2009

Minimum requirements

What’s a reasonable minimum spec to aim for these days? With Icefall, I’ve already taken the decision to target Direct3D9 – I get a lot of extra capabilities compared to DirectX8, and it still works with Windows XP unlike 10 or 11… a pretty simple decision. But what about in terms of video memory? And

Read More
Icefall / November 2, 2009

To install or not to install?

Should Icefall come with an Installer/Setup program? My previous games (like the Five Hundred card game) didn’t require any installation at all: it assumed you had DirectX7 (the game just failed if you didn’t), and all of the files it needed were in the same directory as the EXE itself. You just unzipped it to

Read More
Icefall / October 31, 2009

Controlling Gamestate

Virtually all programs have this, a central ‘game’ loop that grabs user input, updates game logic, redraws the screen. At it’s simplest possible level, it usually looks something like this: repeat Input; Update; Redraw; until Quit; The problem mainly comes in that middle section, Update. For any game, there are a variety of different states

Read More
Icefall / October 30, 2009

OOP Part 3: Composition

Last time, we looked at the inheritance style of object-oriented programming in detail. Now let’s look at the alternative: composition. We’ll use another example from Icefall to illustrate the differences. Icefall has a central ‘world view’ that shows the player and their immediate surroundings (items, monsters, terrain, etc). The world view also shows animations (e.g.

Read More
Code / October 28, 2009

OOP Part 2: Inheritance

Last time, we talked about two different approaches to designing objects for a game or application: Inheritance and Composition. It’s time to look at the pros and cons in more detail. Let’s start with inheritance. Inheritance When learning OOP, inheritance is what you learn! Create a common, generic ancestor-type class, and create new classes for

Read More
Icefall / October 27, 2009

Windows 7 compatibility

I’m working on the follow up to my Object-Oriented Programming post, but in the meantime I had to share this: I tested Icefall on Windows 7 for the first time today (having developed & tested exclusively on Windows XP SP 3 up until now). It worked perfectly, in fact it ran a little more smoothly

Read More
Icefall / October 26, 2009

Object-oriented programming

Like almost everything else these days, Icefall is designed around object-oriented programming (OOP) principles. Specifically, Icefall uses Classes instead of objects, although the difference is not relevant for this discussion. At any given time, the game will be operating dozens of different classes and hundreds of instances of those classes, with the majority of them

Read More
Icefall / October 24, 2009

Real-time, or turn-based?

The next step in Icefall’s development was to decide whether to make the game realtime (like Diablo, Titan Quest, World of Warcraft…) or turn-based (Angband, Nethack, Ultima 1..5). This is probably the biggest decision for a role-playing game, as it dictates the entire gameplay, as well as the UI, multiplayer, everything. Initially, I looked at

Read More