City Backgrounds added

Thanks to information I’ve received today I’ve now been able to add the four City backgrounds into the project. There are different mountain range backgrounds within the City depending on whether you’re facing north, south, east or west.

I’m now having a go at adding the door signs for the various City establishments (E.g. guilds, shops etc). I thought I’d come up with a quick way of dealing with this but I’ve still got some work to do as the signs are not appearing from the outside of the shop only the inside! I’d forgotten how the City map structure works. My map structure can easily accomodate additional textures to deal with different wall types but would require me to edit lots of doors manually which I don’t want to do if I can avoid it.

Return to Alternate Reality

Well it’s been a long time since I posted anything on this blog even though there has been a fair bit of progress on the Alternate Reality front in the last year. Whilst I’ve not done a lot in the last few months I did some good work during the summer and what I’ve produced to date is far better than what I had created in SDL. The screenshot here is from the City using the original Atari 8bit graphics. I have been very happy using SFML instead of SDL for my media library and so far it has delivered everything it promised. As before I’m concentrating on coding and using the original graphics and sound for the time being so as not to get hung up on editing new graphics all the time. SFML is platform independent with SFML libraries for both Linux and Mac (and lots of bindings) so I’m keen to find a couple of willing people to maintain these versions. Porting should be very easy as there is nothing Windows specific in the project to my knowledge.

So far I’ve implemented the following features:

  • Improved 3D view window which is larger than the original game
  • Smooth scrolling in the 3D view – finally!
  • Different zones within a map to define different graphics in some areas e.g. Crystal Caverns
  • Dungeon Teleports
  • Dungeon location specific messages
  • Weapons and Wealth status screens
  • On screen Compass
  • Movement around the City or Dungeon 1st level

OK so lots still to do but I’m pleased the smooth scrolling is now working as I expected that I would find this difficult. I need to say thanks to Jim Norris for providing me with the information on the map zones and the full Dungeon teleport data otherwise I wouldn’t have been able to complete these parts.

Next thing I would like to do is move all the game data into external data files. Most data is already in this format but some is included in the source files. I’d also like to add a simple option page so that players can choose between The City and The Dungeon. Once these are done I can get down to some interesting bits so that what I’ve done actually starts to feel like a game!

Alternate Reality and SFML 1.2

Following the release of the SFML 1.2 library I began playing around with my Alternate Reality CRPG remake again. I wanted to use OpenGL to draw the 3D view but be able to use the built in 2D functions of SFML for all the other elements on the screen such as text. I was able to do this successfully and it seems to work pretty well. Previously I had used SDL with OpenGL but I’ve now transferred all the main code over to SFML. Still lots of code to move over before I’ve transferred all the functionality of my SDL version. This includes the combat, encounters and character creation sequence. I feel I’ve done the most tricky bits though!

Added Tile Properties

It took me a while to sort out the new file format for the terrain objects but I’ve now got a simple machine/human readable format which I can reuse for the monster and item files. Now that I’ve done this I’ve thinking of splitting game objects into 3 different areas – terrain, monsters and items. The map/item format is very simplistic just now so will probably need to be expanded at some point.
As always I’m wasting time changing little image files instead of sticking with a handful of basic tiles and adding features to the editor and game. Anway I finally added some properties for the different types of terrain in the game. Decided to leave out animation and visibility for tiles just now. For now I’ve kept it very simple with tiles having a small number of properties:

  • Tile no – the image number from the tile sheet
  • Name – a text description for look commands
  • Passable – can the tile normally be walked through
  • Map link – does the tile offer an entrance or exit to another map level (E.g. staircase)

I’d like to really start making Demons Eye feel more like a game. I might add a player status and inventory pages and some simple console style messages. It would also be nice to be able to have a bit of simple treasure hunting and combat!

Demons – Slow Progress

Progress is slow mainly because I keep going back and fiddling with little things rather than adding new features to the engine. There’s still no actual functionality or properties to tiles so this is really something I need to make a start on – it’s not difficult.Anyway there are a few cosmetic changes. I’ve added an Ultima style border dividing the screen into three main area – overhead view, messages and the character status/inventory browser type area. The 16×16 font has been replaced with an 8×8 one – currently Joshua Steele’s Ultima 4 Upgrade one. I wanted to be able to put quite a lot of textual information on the screen for combat, conversations and intentory details but this was difficult with the larger font and a smaller font also leaves more space for item graphics, status bars or icons which I think will make the display a lot more interesting. This font is good for now but I’ll keep my eye open for something a bit more unique.I’ve reverted to the David Gervais tileset and RLTiles tileset. Both are good tilesets with plenty of intersting to tiles though there are a number of typical tiles I’ll need to create/find elsewhere to complete some content.Really need to add some simple tile properties. Are tiles passable? Can they be seen through? Do they link to another map? And so on…

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.

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.

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.