Friday, 19 October 2007

Bitmap Fonts


Added some bitmap font functions. SFML already has good font support for many popular types of font built into it but I was wanting to use a simple fixed-width bitmap font. The font in the picture is from Alternate Reality: The Dungeon. A simple map loader has been added (loading in an Ultima 5 map in the picture) but I still need to add a save function.

Wednesday, 17 October 2007

Inspiration from other games

I've been playing some of the old games that I like and thinking about what are the positive and negative features of each game and which I want to incorporate or avoid in Demons Eye. I've just been playing Ultima V and this has given me a few ideas. One of things that put me off playing Ultima V more when I was younger was that some of the exploring seemed quite tedious. For example exploring a castle meant a lot of searching for secret doors (all of which seem to be locked) and also moving potted plants around to get to said secret doors. These are fine if there are interesting things behind them but if not then they just annoy me and take a lot of fun out of the game. This specific issue seems to be worse in Ultima V.

Ultima V manages to make fairly varied maps out of a limited set of tiles (256 terrain tiles + 256 monsters/items). I spent a lot of time over the last few days messing around with lots of tiles adding them to the tilesheet and probably not using them. I also need to think about how I want to handle lighting and line of sight in Demons Eye. Personally I often find that limiting the view this way detracts from the game. Maybe it would work best in Dungeons where there is more tension about unknown creatures coming out of the darkness.

On the combat front I think I've decided on a single player rather than a party. Party combat is too tedious I think unless it has an automatic option where most of the party fight under computer control. It also means that you can focus on really developing your single character rather than having to share out experience and items between a party. I know a number of Ultima players like to play with a small party (or single character) as it makes play a lot simpler. There will still be the option to summon various helpers through magic or possibly get help from passing good characters.
In summary:

  • Good design using a small number of tiles rather than hundreds of different tiles.
  • Sparing use of secret and locked doors.
  • A decent number of searchable objects (e.g. chests, baskets) should contain some objects!
  • Night and day cycles and Line of Sight shouldn't limit the view too much.
  • Single player rather than party.

Saturday, 13 October 2007

The Map Editor - 8 hours

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.

Sunday, 7 October 2007

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 32x32 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!

Thursday, 4 October 2007

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.
So I built up a simple tile sheet which would be displayed at the side of the screen and would be used to select tiles with your left and right mouse buttons. The rest of the screen would be taken up with a large viewport onto the current map. You would be able to scroll around quickly and use the mouse buttons to place tiles onto the map. This seemed like a sensible place to start and not too difficult or time consuming to code. That was the theory anyway.
I failed to account for my inexperience of using SFML and the time it would take me to get into the swing of starting a new project. It took me a number of hours to sort out various bugs in my display code and work out how to do various simple display tasks properly in SFML. As I started making myself more comfortable with SFML and getting back into coding, the focus shifted away from the editor to just getting a simple map format setup and a tiled map view displayed on the screen. This was frustrating as the code is short and straightforward but you have to remember that I'm not much of a programmer. Anyway eventually I got my simple view onto the screen using the Ultima IV tileset and a map of the town of Moonglow (also from Ultima IV).

This simple example lets you move around the map using the cursor keys and sets up map boundaries. In the example I used an 11x11 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 800x600 that should still leave plenty of space for the tiled map.