Ultima-style CRPG

For many years I’ve been a big fan of the Ultima games and have always wanted to create a game of my own in a similar style. A couple of recent events have finally made me decide to actually start coding one of my own. The first was the release of the Simple and Fast Multimedia Library (SFML) which I think will be ideal for the sort of games I’m trying to create. The second was reading this article on Retro Remakes. The article is about writing an Ultima style game in a fixed 40 hour timescale. The game is called Inaria and further details can be found here.

I’ve always had a preference for the earlier Ultimas such as IV, V and VI. For some reason I’ve never really got into VII which is generally considered to be the best. With my own game I’ll be looking to incorporate what I think are the best features from the various ultimas along with ideas from more recent commercial RPGS and home brew roguelikes. I’ve always liked the style of these games which are usually characterised by simple 2D tiled graphics, a large world map and numerous towns and dungeons to explore. Other similar games include Wasteland, Phantasie and Questron.

Simple and Fast Multimedia Library 1.0

I’ve been having a look at the Simple and Fast Multimedia Library (SFML) and it seems quite interesting. You can find out more about it at:

http://sfml.sourceforge.net/

To quote from the website:

SFML is a portable and easy to use multimedia API written in C++. You can see it
as a modern, object-oriented alternative to SDL.SFML is composed of several
packages to perfectly suit your needs. You can use SFML as a minimal windowing
system to interface with OpenGL, or as a fully-featured multimedia library for
building 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.

Rogue’s Gallery

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…

Gate Sequence Fixed

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.