SFML is a portable and easy to use multimedia API written in C++. You can see itas a modern, object-oriented alternative to SDL.SFML is composed of severalpackages to perfectly suit your needs. You can use SFML as a minimal windowingsystem to interface with OpenGL, or as a fully-featured multimedia library forbuilding games or interactive programs.

I’ll keep my eye on this one as it looks very promising and has some nice built in features. I’ve been looking for something that offers a balance between the low level of SDL and the higher level of say Allegro and SFML looks about the right balance for me.

Spent some time at the weekend collecting more Encounter images and preparing them for use in the current release. My method for capturing these is pretty tedious but doesn’t take too long as there aren’t too many different encounter graphics and some are reused for different types of encounter. I basically save screenshots from within the Atari800Win emulator, cut out the encounter image, double it’s size to fit a 64×128 pixel OpenGL texture and then remove any unwanted background. In future I’ll need to capture the additional animation frames that many encounters have but for now encounters aren’t animated.

I also had a play with some of the Eye of the Beholder graphics I’ve used previously but I think I’ve decided not to use these as they are limited in number leaving many AR encounters without updated graphics. Here are a couple of examples anyway.

Currently I’m creating black and white masks for each encounter image but I’m hoping that I might be able to do away with this possibly by using OpenGL’s display lists. The AR font is drawn using this method and seems to work fine and doesn’t require any manually created masks. Browsing round the web I found a program called GraphicsGale Free Edition which is a sprite editor that might be useful for hand editing of the original AR encounter graphics.

I’ll need to set aside a lot of time if I end up hand editing all these original images…

Finally managed to get the counters appearing in the right place on the gate sequence. Basically there are a number of different counters spinning round at different speeds. Pressing a key freezes the numbers and these become your character stats within the game. It also determines how much silver you start the game with.

It didn’t take very long to fix once I managed to understand the code – that’s the problem with using my old code from a few years back. I also tweaked the random numbers for the stats as they seemed a bit low and added in the “You are now joined.” message. Added in the original sound effects for this sequence. I will come back to this part of the game in the future but now feel that I can move onto something else.

I’ve recently made the switch from the freeware Dev C++ environment to Microsoft Visual Studio 2005. Dev C++ has served me well during the time that I’ve been playing around with this AR project but I decided to give Visual Studio a try and it seems to have worked well so far. I was really only using a bit of the functionality of Dev C++ but one feature that it didn’t seem to have was an option for “folding” bits of code that you’re not working on. Visual Studio also seems to be creating dramatically smaller executables. However these larger exe sizes in Dev C++ might have just been down to the compilation defaults which I didn’t play with much. Visual Studio also seems to have caught a number of errors which went unnoticed by Dev C++. Again possibly down to different configurations. I’m still barely using any of the facilities within Visual Studio. An experienced programmer could probably show me lots of things I should be using to make life easier. Still not sat down and tried to familiarise myself with the debugger. I still think Dev C++ is very good and would recommend it to anyone looking for a free, easy to use option for programming. Dev C++ also has stacks of pre-packaged libraries called devpacks that can be downloaded for things like SDL, OpenGL etc. You can download these from here.

I’m not a programmer by trade though I’ve done bits of programming since I got my first computer back in the 1980s (a Commodore 64 which I wanted because it had 64k of memory which seemed to more than the alternatives at the time). I’ve also done bits of programming through study and work but nothing substantial. I did hold the job title “Programmer” for a few months but moved into a different area that I preferred. Most of the AR project code is probably not very well written. I’m planning to release the source code and VS2005 project files with the next release so if anybody wants to suggest any improvements or ways of making things easier or simpler feel free! I’m planning to spend some time tidying up the code before then. The display code in particular could probably be tidied up a lot and needs some fixes to stop ghostly arches appearing through supposedly solid walls. I know what the problem is here so can hopefully fix it without too many problems.

I’ve done some more work on the character creation gate sequence but I think it will take me a while to get it to the stage where I can say it’s completed. As you can see in the screenshot the counters are roughly in the right place but don’t look right yet.

The next thing I would like to look at is setting up “zones” on the Dungeon map. The zones will identify rectangular areas on the map where different graphic wall sets should be used. I believe this is how the original game worked. If you’re unfamiliar with the original different areas had different graphics to identify them – Egyptian hieroglyphs in the Hall of the Adept, ice walls in the Crystal Caverns and so on. I’d also like to setup different light levels for different zones as this should be relatively easy to do as I’m using OpenGL. These light levels could then be adjusted if you’re carrying a torch or wearing a Helm of Light or one of the countless other light sources in the game. Currently the demo lacks atmosphere as all the corridors and rooms have the same wall textures. I also plan to use the various zones to determine which monster encounter table should be used. A few years back Ken Jordan (one of the original programmers of The Dungeon) posted some information, maps and data files for the Dungeon and he said these contained the zone information. I’ve not decoded these but if anybody has I’d be grateful if you’d let me know – I like to use the original game data where possible.