I’m finding it hard to keep track of how much time I’m actually spending on Demons Eye but I think my actual coding must be at about the 8 hour stage. The editor now has a working view and tile section for selecting tiles. Basically the cursor keys can be used to move around on the current map and the page up/page down buttons let you scroll through the tiles available. The left and right mouse buttons can be used to select tiles and place them down onto the map canvas. Some of these pieces of coding came together very quickly which was a pleasant surprise. The mouse coding in particular was very easy to do. The map structure is currently very simple with 2 layers – one for the landscape, walls, doors etc and another for monsters, characters and items. Ideally I should change the items into a linked list at some point to save on space and processing time. I’m also considering a third, middle level to cover decorative items – tables, rugs, blending tiles. This will allow me to reuse certain tiles over different base tiles without having to make multiple versions.I’m considering expanding the current tileset with some new landscpae tiles and will have a go at creating some of my own over the coming weeks. I think there are plenty of good monster, character and item tiles in David Gervais’ set so I should be fine there. A lot of features still to add to the editor before I’ll be able to really start using it but I’m making some progress.
New Tiles
As I now have a working map viewing program I decided to change the temporary Ultima tiles and map for the David Gervais tileset. For those not familiar with this tileset they are a very large colletion of tiles designed for Angband originally (I think). OK so this screenshot couldn’t be more boring if I tried but it does demonstrate a larger view area and also illustrates the use of transparent tiles which just took me a few minutes to work out using SFML.
Behind the scenes I’ve also started adding additional tiles to the game. Basically I have one large image which holds all the 32×32 pixel tiles for the map, items and monsters and SFML can be told to use just a small portion of the image to make up each tile. Now that I’m up and running with coding the SFML side of things seems very easy to use.
Next thing is to setup different properties for tiles such as whether they are passable, water etc. I also need a more interesting map!
Demon’s Eye
As you may have seen in the previous screenshots my CRPG game is now provisionally known as Demon’s Eye. This is based on an adventure game I started writing about five years back. Not a very original title but it’s better than calling the project CRPG! Send me your suggestions if you’ve got a better title in mind.
A Simple Map – 4hrs
It’s been a while since my last post so what have I been up to? After a slow start I’ve finally started to make a bit of progress. I’d decided to start my coding by putting together a very simple editor which would allow me to start creating maps and building up features as I went along such as item handling and encounters. I really like the idea of a combined editor/play environment so that I can build and test quickly.
This simple example lets you move around the map using the cursor keys and sets up map boundaries. In the example I used an 11×11 map window like Ultima IV but I’ll be making this much larger so you’ll see a much larger portion of the map at one time. It was satisfying to finally see something vaguely game-like on the screen even if there is currently nothing to do. I’m currently thinking through the possibilities for the rest of the display. This will most likely feature character and inventory information on the right hand side in a column with a rectangular message window running along the bottom of the screen . At a resolution of 800×600 that should still leave plenty of space for the tiled map.
The Map Editor
First thing I’m planning to work on is putting together a simple map editor. This will allow me to outline some of the main data structures in the game – maps, tiles, items and monsters. It will also give me some hands on experience of working with SFML. I’m intentionally going to keep the game and editor designs and layouts very similar to minimise creating different sets of code for very similar functions. I quite like the idea of building the editor and game engine as a single program so that I can switch between designing and playing with a couple of key presses, hopefully speeding up game development. Editor features will likely include:
- Variable map sizes (max. 256×256) – plenty big enough in my opinion
- On-screen tile display for tile selection
- Map links – link overworld to towns etc
- Load, Save, Play options
- Small tile versions available for overview mode
- Properties for tiles?
I’m in two minds as to whether tile/object properties should be editable through the editor – this might be too much work for me. I’ll have a think about it anyway. Game data will be stored in simple text files for the time being – probably comma separated.
CPRG Outline
Before I start attempting to code this I thought it was worth listing the type of features and stylistic elements that I’d like my Ultima-style game to have. I’m sure some of these features will change over time but here’s a rough outline to begin with:
- Single player character rather than party (this may change)
- Individual maps for overworld, towns and dungeons (as opposed to the Ultima 6, all one scale/one map model)
- Detailed, non-generic maps that aren’t too big
- Combat on current map rather than separate “combat” maps
- Simple to use interface (both keyboard and mouse ideally)
- Player character and encounter inventories
- Quest journal to keep track of current tasks and quests etc
- Graphical inventory
- Tile graphics (using David Gervais excellent tiles)
There are loads of other features that I’m wanting to include but these should give you a rough idea of what sort of design I’m aiming for.
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.