CRPG Visuals – My thoughts

One of the challenges of creating a CRPG for the Commodore 64 is deciding what sort of visual style I would like for the game. I’m working with an overhead view as I think that plays well to the C64’s capabilities and I’m a big fan of top down games such as the Ultima series and Legacy of the Ancients.

Ultima IV on the C64

Whilst my options with the C64 are more limited than modern machines, I still have many decisions to make on the visuals front (putting aside my lack of artistic talent for a moment).

The C64 has a number of display modes with a maximum screen resolution of 320 x 200 pixels (or 40 x 25 character cells) in a choice of 16 colours. If I’m willing to sacrifice the horizontal resolution of the display then I can increase the number of colours I can use in each 8 x 8 pixel “character” cell from 2 colours to 4 colours but this will double the horizontal size of each “pixel”. You can see this in the image below. You also have the choice of bitmap versus character modes. This is a big over simplification of the capabilities of the machine but will hopefully suffice for this post.

Gauntlet on the C64 – Illustrating the use of multi-colour mode (image from MobyGames)

Currently I’m using character mode to redefine the 256 character set with my own characters and then piece them together to build up maps on the screen. The player moves around the map and can move to other map sections when the end of the current map is reached.

If I required more colour in each character cell I could use multi-colour mode but this tends to make the graphics look more “chunky”. If I require more detailed graphics then I could use bitmap mode but at the cost of additional memory (8Kb for a full 320×200 screen).

One of the other challenges I’m facing is trying to make interesting displays with individual character cells which are only 8 x 8 pixels wide. Now the Ultima games and most CRPGs of the 1980’s typically used 4 character cells to build each of it’s map tiles, doubling the resolution of each tile but halving the number of tiles you can display on screen. The Ultima display also kept the party icon centred in the map display with the map being redrawn around the player after every move.

Combat in Ultima IV illustrating the use of 16 x 16 pixel tiles

One of the things I like about using the individual characters as tiles rather than 2 x 2 characters per tile, is that it allows me to display more of the map on screen at a time but at the loss of some graphical detail. I’ve started playing around with some of the redefined characters and colours in the CBM PRG Studio screen editor which is great for creating simple graphics and prototyping screen displays. Programming single characters as tiles is also a lot easier for me as well and will perform more smoothly in play.

Playing around with some redefined characters and colours to build an on-screen map

I’ve included a sample image above of my brief sketches so far. Regardless of what screen mode and tile size I eventually use I’m also likely going to use the C64’s sprites as a means of adding higher resolution images for the player character, NPCs and monsters. These have the benefit of being independent of the screen display so can have their own colours, hires or multi-colour mode option so can be used to add some further interest to the display.

Alternate Reality X – Release 0.82 Available!

Alternate Reality X – Release 0.82 is now available for download from: www.crpgdev.com/downloads. This release focuses on fixing a number of bugs which players have reported following recent releases.

  • Fixed – Group encounter messages out of sync with their damage
  • Fixed – Group encounter attacks out of sequence
  • Fixed – Fixed encounters not updating correctly (e.g. ghost in Well Lit Area)
  • Fixed – Fixed encounters not leaving weapons or treasure
  • Fixed – City Smithy items selling for minus value at Dwarven Smithy
  • Fixed – Troll Tyrant / Goblin Lord – wrong monster types appearing
  • Fixed – Troll Tyrant / Goblin Lord – didn’t leave ring halves
  • Fixed – Guild names and locations not all correct in City
  • Fixed – Character indicator on large map not in correct position
  • Fixed – Legend on large map not aligned for different window sizes
  • Added – Mercenaries and Paladins Guilds now in City
  • Code – Spells moved into separate source files

 

The Challenges of Remaking Alternate Reality

Every so often I receive an email or a post complaining that I’ve done something “wrong” with my remake of Alternate Reality:The City and the Dungeon – I’m not talking about bug reports or unimplemented features but more about design decisions. I guess in some cases I’m not making the decisions they would make if they were remaking Alternate Reality. For everyone who thinks I’m not expanding the game enough someone else thinks it’s not faithful enough. I think I’m past the point where this bothers me now and I’m realistic enough to know that with a project like this you’ll never please everybody. Most ARX players have been incredibly positive and supportive (and not to mention patient). Their feedback is also constructive, useful and essential to developing my project further.  So I’ll take this opportunity to say thanks 🙂

I thought I would talk about some of the design choices I’ve made with Alternate Reality X, the challenges I’ve dealt with and why these are unique to the Alternate Reality series of games (released and planned). Looking back now I think Alternate Reality was always going to be one of the most difficult and complicated games to remake in comparison to the other CRPGs from the same time period. I’ll explain below why I think that’s the case.

I started what I now call Alternate Reality X way back in 2009. I’ve had breaks during those years and diversions where I’ve looked into other formats or technologies but I’m now settled on the current technology so to speak in terms of using SFML and C/C++. I’d played around with Alternate Reality before but this is the year I made the first iteration of what you see today.

My background with Alternate Reality began with the Dungeon which I received as a Christmas present one year for my Commodore 64. Once I’d managed to keep a character alive long enough to advance a couple of experience levels, obtained some better equipment and stumbled across a quest I was hooked and played it regularly until I carelessly wrote over the Dungeon game disk years later in my haste to create a new character disk. I still have the box, map and manual today.

 

 

When I got access to the internet (around 1995) one of the first things I found was The Original Alternate Reality Homepage at: http://www.eobet.com/alternate-reality/ (it had a different URL back then). This site had lots of information about the games, an extensive FAQ, screenshots, maps (below) and comments from the AR developers including Philip Price. It also led me to the AR Mailing List (which sadly now seems to be offline) which was a great source of information. I’d never played any version of the City though I was aware of it from magazine reviews I’d read back in the 1980s.

One of my early goals with Alternate Reality X was to allow the player to move seamlessly between the City and the Dungeon as originally envisaged by Philip Price.

Whilst they share many similarities the City and Dungeon scenarios are very different games in my opinion. Perhaps the biggest difference is in the combat system. The City has the concept of engaged and disengaged menus (pictured above) but this was replaced by a different system in the Dungeon consisting of options for surprising an encounter, Battle Options and a Transact menu. This was the system I opted for in ARX.

Many other elements are different between the two scenarios from encounter graphics and map style to the use of currency. I don’t think ARX feels like a totally consistent game yet but hopefully as I add features the two scenarios will feel more integrated.

I made a number of development decisions which I’ll try to summarise here:

  • Players can move freely between the City map and the first level of the Dungeon as I imagine was originally intended by Philip Price.
  • I removed the penalties for saving characters in both the City and the Dungeon and provided 10 save game slots.
  • I removed timing from combat – I might add it back in as an option in the future – if there is demand for it.
  • Guilds are set up with multiple “branches” in the City and Dungeon and guild bonuses can be picked up in the Dungeon as well as the City (providing a guild has a location in the Dungeon).
  • 8bit Dungeon-style guilds are used rather than the style that was added to the 16bit versions of the City.
  • I chose to use the Dungeon’s combat system and menus rather than the City’s engaged / disengaged menus.
  • I liked the Charm and Trick mechanics of the City and added them to the ARX Transact menu.
  • The City’s potion system (tasting, sipping etc) where you tried to identify one of over 50 potions was not present in the Dungeon but I liked it so have added it into ARX.
  • As the encounter graphics are very different in style and size I opted to use the Dungeon’s encounter graphics for better consistency between the two scenarios.
  • I expanded the City’s map format to use the Dungeon format which used more bytes to allow more wall and door types and a “special” byte for fixed encounters, messages and unique treasures.
  • The City used a degree of randomisation when creating monster stats but I opted for the Dungeon’s fixed stats. I did originally generate encounters differently between the two scenarios but I felt it would always make the game feel disjointed and inconsistent if for example an encounter with a thief in the City felt very different to one in the Dungeon.
  • The economy – there’s a big divide here with the City trading in coppers (running into the 10,000s) and the Dungeon using silver, gems and jewels. I’ve kept the original prices and currency for now but it’s very inconsistent and I’m not really happy with it.
  • Again for consistency I’ve for now settled on a single font (the Dungeon) and banner colour scheme (the City). Easily changed in the future if required.

Other considerations:

  • I’m not a professional programmer so I’ve reworked and refined code a lot and will continue to do so until the project is complete. In addition I’ve not always understood the longer term requirements for a feature until further down the line (e.g. custom objects created dynamically in game).
  • The Arena, Palace, Wilderness, Revelation and Destiny scenarios were never completed.
  • A variety of different versions of the game(s) exist across 8bit and 16bit platforms, many of which add further variety in terms of graphics, music and mechanics.
  • Less of a problem in the Dungeon but there are many areas of the City where features and locations were left for later patching.
  • There’s always the question of making the game authentic (in look and feel) versus an “upgrade” with better graphics and sound as well as new features.
  • Should I have treated the City and the Dungeon as two separate games with a compatible character save file? I even thought of developing them as two separate executables (or sets of datafiles).
  • I can possibly address some of the differences as game options and preferences but that does add to further development time. I’m considering this though 🙂

I cannot think of a single game or series of games that would have presented quite so many questions or difficult decisions as Alternate Reality. There are no right answers for many of these If you have a game or series of games in mind though please let me know as I’d love to hear about it.

In the meantime if you have an opinion about any of the above or a design preference I’m interested to hear it. Nothing in ARX is set in stone.

Alternate Reality X – Release 0.75 – Changes

With the public release of Alternate Reality X 0.75 looming for the end of September 2016 I thought I would talk a little bit about what you can expect to see, what I didn’t manage to add and my general approach to have the completed 1.0 release in your hands before the end of the year.

I had planned for this release to complete ALL the elements of the City and the Dungeon that I see as combat and encounter related. I didn’t achieve that for a number of good reasons but I did make some very significant steps that put the project in a much stronger position than it was in before. One of the big changes was to add all the remaining Dungeon monsters as to date only the Well Lit Area and Fixed Encounters had been added and to animate them all.

One major change which I had not committed myself to making was using the original 8bit Dungeon monster data directly from the binary files. I was previously using simple text files which whilst easy to update had numerous errors, lacked a lot of information from the real data and were prone to spoiling of the game / opportunity for cheating from players. In addition to this I had built up similar text files for weapons in the game – an amalgamation of weapons the player could buy, monster weapons and unique items you could stumble across (e.g. the Sword of the Adept).

One of the great features of Alternate Reality (the Dungeon at least) was that it had a very flexible system for customising monsters and items in the game. Many games at the time would have had fixed object sizes with no opportunity to modify those objects in game. The Dungeon in contrast allowed very rich items and monsters which contained a mixture of attribute data (name, bonus to hit, sharp damage) with effects (curses, give off light) and directly included 6502 (the processor used by the Atari 800, Commodore 64 and others) code. In game objects could also be dynamically created in game (clothing in the City) or modified through player actions (weapons having enchantments added at the Weapon Enchantress).

So after a lot of thought I made the decision to use the original binary data. Using some great information provided by Brian Herlihy a few years back, I replaced the original monster loader and also added in support for loading in all their weapons and attacks. These are stored as part of the monster data. This was a lot of work for me but once I had these changes working I felt it made an immediate improvement to the feel of the game as well as adding all those additional Dungeon monsters – about 50 in total. Thanks to Brian for this information without which these changes wouldn’t have been possible.

Another major change in this release was the introduction of properly timed / processor speed independent encounter animation. I had information on encounter animation from old emails from Jim Norris – thanks Jim! – so I used these to hopefully produce a fairly accurate recreation of the Dungeon encounter animations. As part of this work I totally rewrote the main encounter loop and the way that monster and player “turns” are taken during combat and how multiple opponents are dealt with. Monster attacks now use the proper attack descriptions (whomps, slashes, chokes etc), can hit multiple player body parts and can also knock the player to the ground.

Behind the scenes I re-organised some of the game code, introducing more source files to try and better segment and compartmentalise different code areas (e.g the actor source files refer to encounters, load in the binary data, create their weapons and attacks etc). All these changes meant a lot of knock on changes – some foreseen, others not. These took time to sort out. I’ve probably not caught all of these issues yet.

With the introduction of all the new Dungeon monsters and only limited new encounter art I took the decision to temporarily disable the new media options – these will be back in a future version. I also disabled the W command to force an encounter as it seemed to be a source of problems and encounter frequency checking has been re-written in this release to check regularly for new encounters. I had to tone this down a bit as encounters seemed to be happening back to back!

The other feature missing from this release is the ability to pick up monster weapons after combat. There was a very practical reason for this, namely that all monster weapons are now stored in a new format and location whilst the player inventory / object buffer in the game uses a totally different system. In order to allow for the custom weapons of the Dwarven Smithy and enchanted weapons from the Enchantress this system will need to be updated and this in turn will impact on all the existing shops where weapons, armour and clothing can be bought. This work will be the focus of the next release with addition of adding in the original item binary data from the Dungeon to introduce all those special objects into Alternate Reality X such as Trump Cards, Eyes, Wands and Horns. Trying to add these into release 0.75 would have added a lot longer to the development time and I was keen to have a release out before then.

In order to have the 1.0 release ready for the end of the year I have had to focus tightly on what needs to be finished and priority on the gaps that need the most work and will add the most to the game. This may mean that some of the extras will go on the back burner for the time being but I think it will be well worth it to have a complete, integrated City and Dungeon Alternate Reality world to explore! Hopefully these decisions make sense but as always I’d love to hear your thoughts. Watch out for release 0.75 coming very soon. Thanks.

Alternate Reality X – Update, March 2016

Since the start of the year I’ve managed to get back up to speed and into the process of continuing the development of my Alternate Reality remake. This is based on Philip Price’s unfinished series of games originally for the Atari 8bit range of computers. Originally only the City and the Dungeon scenarios were ever released.

I’ve gone back to my original project goals to regain my focus over the last couple of months and this has been a big help. These are:

  • Create a full port of both The City and The Dungeon for modern systems
  • Move your characters seamlessly between scenarios 
  • Provide a quick, easy to use alternative to emulation
  • Expand upon the original scenarios to include new quests, locations, encounters and items
  • Provide the option of using the original or updated graphics and sound
The wording here might differ slightly from my original webpages but the key goals are still strong messages and still feel very relevant to my current thinking. These will be my key focus over the coming months. I’ll not be losing sight of these again or heading off on any other tracks where my Alternate Reality project is concerned.

I’ve released two updates for ARX during March 2016 so far. Whilst both are only small updates I’ve now got an established development and release process which means I’m not losing time because I’m disorganised. I’m making use of Google Drive to keep my ARX files accessible online regardless of location so I can contribute free time to development. I’m also freezing any updates to the development environment and multimedia library I’m using – what’s there currently is more than capable of seeing my Alternate Reality project through to 100% completion and my current build is fully Windows 10 compatible. As I’m now (and sticking to) using SFML and Code::Blocks (it’s quick and light to install compared to Visual Studio) again ports for Mac OS X and Linux are achievable (at a later date).

At a high level the main areas I’m going to be looking at over the next few weeks and months are:

  • The core engine – specifically remodelling items, encounters and tweaking the display
  • The City – What is required to make the City 100% complete?
  • The Dungeon – What is required to make the Dungeon 100% complete – starting with level 1?
  • The Arena & other scenarios – Bit by bit expanding the Arena content but also laying any groundwork which might be required for future expansion into other scenarios. 

My plan is to expand these key areas into more smaller, achievable items in the next week or so. I’ll publish these plans online with everyone so you can or point out anything I’ve overlooked.

I’m really keen to get feedback from players whether that’s bug reports, general comments for improvement or ideas for new features – content or story. Email, Facebook, the Blog and the forums are different ways of helping to develop ARX so I’d encourage you to make use of them if there are things you’d like to see. I try to  read all the comments and the feedback and suggestions I receive really do help determine what I work on next and how items are prioritised.

Alternatively if you like my what I’m planning or the work I’ve completed to date then you might consider making a small donation via Paypal (link in the right hand panel of this blog and on the webpages) or as a patron on Patreon. These are a great help for my website costs, occasional small hardware additions that help development and the odd book or software licence I buy.

As I’ve mentioned previously my planned approach is more frequent but probably smaller updates. I’ll be tackling some of the bigger items mentioned above in the next couple of releases which I think will help take ARX to a whole new level. Thanks for your support.

CRPG DEV – The 2016 Update and future plans

January 2016 has passed but I hope you had a good Christmas / New Year or holiday.

I’m sorry for not posting anything for such a long time. I’ve found it difficult to focus and use my time well to make the significant updates to Alternate Reality X which I’ve wanted to despite putting in some serious hours. I started some major structural changes as well as trying to make the code fully object oriented. Looking back I tried to change too many things at the same time and my experience of full object oriented coding isn’t really good enough. I should have stuck with the style I’m familiar with rather than what I thought I should be doing.

The SFML media library I use also underwent some other changes which broke my 3D view code as it relied on some no longer supported OpenGL functions. I’ve considered going back to a previous version of the SFML library, though I’d prefer I was using the current version.

I’ve given it a lot of thought and planned out some more realistic short term changes to ARX. I’ll stick with my procedural style and concentrate my efforts on the areas that really need attention to allow progress to be made with the game. With the New Year I’ve given a lot of thought to what I want to achieve this year – professionally and personally – and making significant progress with ARX (and CRPG Dev) is high on my list.

I’m now working on a simple 0.72 release (as my past official release was 0.71). Once I’ve fixed the 3D view I’ll make this available – the purpose of this will be to update ARX to the latest version of SFML and also make use of the new Visual Studio 2013 build. I’m no longer using Code::Blocks as my development environment as I’m trying to improve my coding and many of the tutorials and books I’ve been studying use Visual Studio.

I’ve lots of plans but I’ll not say anything more about those just now until I’ve proven that ARX is still ongoing with a couple of new releases. So hang in there! 

Thank you for your past support and interest in what I’ve been doing – it’s really meant a lot to me. So with that I’d like to wish you (a belated) all the best for 2016.

Supporting Future Development and a New Game

If you have supported CRPG Dev through Paypal or Patreon over the last few months then I’d like to take this opportunity to thank you and say how much I appreciate it. I’m also very grateful for the messages of support I receive via email or facebook. It’s a hugh boost to my motivation to know that you are interested in what I’m working on and prepared to get behind me to help my future development. Particularly when development is hitting a blockage or a particularly troublesome bug is standing in the way. Unfortunately the number of hours that go into my game development don’t always appear to justify / tally with the output, especially if it’s something behind the scenes which is essential but doesn’t necessarily translate to much gameplay on the screen. I think that’s just a normal part of game development. If you are considering supporting then thank you. The Paypal link is on the www.crpgdev.com homepage and you can sign up for Patreon over at www.patreon.com/crpgdev. Every donation really helps, however small. Also please keep the feedback and suggestions coming – I read them all and take them on board.

I’ve had a lot going on over the last few months which has meant I’ve had less free time than usual and been away from home more than I like but pleased to say things are settling down again. As I’ve mentioned recently the next focus of development in Alternate Reality X will be on adding some meat to the bones of Release 0.2 so that it feels more like the Alternate Reality we all know and love. This will come in the form of encounters, items and shops.

In addition to ARX I’ve been itching to start an all new CRPG which would be developed alongside it. As I’ve mentioned before I don’t see any side projects as taking time away from ARX development as they are more likely to take up time that I wouldn’t have spent on ARX anyway.It’s healthy to not be focused 100% on just the one project and get burnt out or start to dread working on it. This game isn’t what I envisaged Stone of the Citadel to be as it’s distinctly different in atmosphere and approach to that design. I would be using Unity 3D to develop the game though.

Game play will be significantly different to Alternate Reality featuring a party of adventurers and a high level wilderness map to explore. Across the wilderness there will be a number of towns, dungeons and other locations to explore. It will be heavily text and menu based with turn based combat. One area I’m considering for this game is procedurally generated content (PGC). This could be used for the towns, characters or items. As many of you may have read previously I’m a big fan of the original Elite space exploration and trading game. I spent many years with my Commodore 64 exploring the galaxies of Elite which used various seed values to consistently generate its 8 galaxies each with their 255 planets. My use of PGC will be very much dependent on the quality of my results though. Another example is the clothing you can buy in the AR:The City – there are effectively hundreds of different items that can be generated based on colour, fabric, quality etc.

My initial objective just now is to build a small but fun game in a relatively short space of time and leave the design open enough that it can be expanded as I see fit. Expect something to try out soon on this front.

CRPG Dev Updates – May 2014

I feel I’m long overdue on a blog update for CRPG Dev, Alternate Reality X and Stone of the Citadel as there have been a few important changes and decisions.

The biggest change is that I have now switched to Unity 3D for developing both Alternate Reality X and Stone of the Citadel. For those unfamiliar with Unity it is a game development system which allows you to create 3D (and more recently 2D) games across multiple platforms such as Windows, Mac OS X and mobile devices. It’s very popular, powerful but relatively easy to use, has a big online community offering help and advice and has a handy asset store where you can access for free or buy models and code for use in your games. The version I’m using is free, though there is a commercial version and add ons for higher end users or teams.

I feel I’ve gone as far as I can with my current C++ and SFML based code. There are a lot of bugs to fix and some serious architectural problems behind the scenes relating to how objects are represented. A lot of my code will be relatively straightforward to move over to Unity though. SFML’s use of OpenGL has been a constant difficulty for some players as they have struggled to get compliant OpenGL drivers on their systems – Windows & Mac OS X. Unity builds in my experience just seem to work. On reflection the work to port my current ARX to Mac OS X last month was a lot more painful and time consuming that I believe it should have been. Unity allows you to build for Mac with a few extra mouse clicks in the “Build Settings” 🙂

Configuration screen for the new Alternate Reality X

I’ve started work on the introductory sequence for Alternate Reality using the free version of Unity and you can check out my work so far using the link below and the Unity Web Player:

www.crpgdev.com/unity/ARXWeb.html

I’ve converted the old custom map format to a well known, common format and Patrick has kindly provided me with some Unity code / framework that converts the map data into a usable Unity scene. There are some omissions in the scene just now but these should be fairly straightforward to sort out. Lots of work to do with the map(s) from here but this is a really big help in getting started. Thanks again to Patrick for this.

My work in progress for the intro using the Web Player

I’ve also posted several pieces of my design for my Stone of the Citadel party based CRPG. These are available on the Patreon site but I’m going to start putting more of them onto this blog as well. So far I’ve published a number of the character background descriptions. In the real game these will be partially random and you’ll be able to generate a new background (or write your own) if you don’t like the initial ones your characters receive. In addition I’ve published some of the lore and locations of interest to set the scene. SOTC will use a different map model to ARX but it will be able to use all the nice features of Unity to make an attractive game world. It will begin with a small map initially to give people a taster of game play.

Lots of people have suggested I should do a Kickstarter for my games but I don’t think it would be the right sort of platform for me given my personal circumstances. I feel Patreon provides a very good alternative where you can build up an active, interactive community around multiple projects and interests (games in my case) and provide support and feedback in a more manageable way to suit people’s budget. You don’t have to pledge any money to support CRPG Dev on Patreon if you don’t want to or aren’t able to so it would still be great to hear from you there. The CRPG Dev Patreon site is here:

Hopefully you’ll check out the page and might consider becoming a Patron. You can also provide support through one off Paypal payments if you prefer (linked from https://crpgdev.com/). It really is greatly appreciated and makes a big difference. If you’ve already supported CRPG Dev in the past then a big thank you.

I’ve also signed up for Twitter so I’ll probably be making use of that shortly as an alternative way to post updates and other news. The ARX forums have been updated recently and look a lot nicer to use but I haven’t had a chance to dig into these yet and customise them.

I’d welcome your thoughts about the direction above and changes I’ve mentioned so feel free to email me or post via Patreon or Facebook. As always thanks for your support and interest in what I’m doing.