Sunday, 26 February 2017

The CRPG Dev Blog is moving!

I'm planning to shortly make the home of the CRPG Dev blog and will be integrating the blog pages into the existing CRPG Dev pages such as "Downloads". My old pages on the website were created with online tools that are no longer available which made updating pages a chore. I'll be switching from using Blogger to using Wordpress as offered by my webpage hosting company.

I've migrated all the existing posts and comments over from here so they should all be preserved at the new site. I hope to set up some redirection shortly but in the meantime if you're planning to comment then I'd suggest posting over at so your post isn't lost during the migration. Thanks for reading.

Saturday, 14 January 2017

Alternate Reality X - Plans for 2017

Following my review of 2016 I wanted to follow up with a taster of what you can expect to see and play in the coming year. There are other projects and interests I want to cover and talk about in 2017 but this post focuses solely on Alternate Reality X which is my top priority. Here is an outline of the key areas of development I'm planning to complete during 2017. There may be some changes to the order of this list but this is the general outline I'm working to just now.

Complete Item and Inventory Changes (currently in progress)

Basically updating all the existing code in the game to use a more flexible item and inventory format, essential for implementing future changes to custom items, enchanted items and procedural generation of City clothing items. Currently this code supports weapons, armour, clothing and a number of special "quest" items.  The changes to the City Smithies and Damon & Pythias shops are completed. I need to add in the procedural generation of clothing in the City Shops (where you can buy a compass) and update the existing code for unique items scattered around the Dungeon and quest items (E.g. the troll and goblin ring halves). This has taken a long time as the items and inventory touch so many different areas of the game but all the time consuming, hard work is now complete. In the next release you'll now be able to pick up and use weapons which your opponents used, introducing a lot of new weapons for the your Alternate Reality character to play with.

The Dwarven Smithy

This is partially completed. The main new features it will introduce to the game are the option to sell old weapons and to have a custom weapon made. The main work to do is getting the correct menus in place and the custom weapon creation code which I don't see as being too difficult. 

Despite having finished the Dungeon for the first time a few years back, I had never saved up enough gems to have a custom weapon made. One thing I thought would be cool (and easy with the new ARX item system) would be to allow the player to name their custom weapons but on looking through the original code for the Dwarven Smithy it looks like that feature was already in the original game! Alternate Reality continues to surprise me after all these years :)

Treasure Items

These include those unique items on the Dungeon floor which I've not added yet and the special items you find after a successful encounter - wands, trump cards, horns etc. This won't make it into the next release due to all the work I've done on refactoring my existing code to work with the new items and inventory but is high on the list for future releases. Only a handful of City items remain to be added to ARX.

I need to introduce a new "effects" system which holds timed and temporary events (e.g. if wearing a crystal belt you get a stamina increase, you've drunk a potion of invulnerability sharp). The effects system is also required to enable the remaining guild spells to be implemented. I don't see this as being difficult to implement as I've given it a lot of thought but it's a substantial piece of work. I also need to do some research into how encounter treasure selection works so if you have any ideas on that please let me know. Once implemented I think the results will be quite visible to players so hopefully a good boost to gameplay. For me the Dungeon always had some of the best treasure of any CRPG.

Dungeon Quests

Basically adding in the few special locations which are still missing that are required to complete the Dungeon and the necessary dialogue and quest items. A lot of this is already complete but hasn't been tested in a long while. I seem to remember the Oracle took a lot of work and might need some bug fixes. Off the top of my head I think the Clothes Horse and Great Wyrm may only be in game as placeholders. Occasionally I go back and find that I've already started part of AR though which is pleasant surprise :) When the Dungeon Quests are complete there will be enough Alternate Reality recreated in ARX that you will be able to play the City and Dungeon through to completion!

Updated Display Options

I've already added some support for multiple screen resolutions and windowed vs full screen displays through the arx.cfg configuration file but there aren't currently any good scaling or filtering options available for players to make best use of those larger screen sizes. I'd also like to make it easier for you to adjust display options whilst the game is running so players can easily skip through options to find the one that best suits them. With so many people running larger displays now it's not really acceptable for me to limit development to only a couple of window sizes. Emulation front ends like RetroArch make use of some very high quality filters and scalers it would be great to introduce these into ARX if it wasn't going to be too much work. I also want to introduce some new (optional) display elements along similar lines to the automap that may add to players enjoyment or reduce frustration. 

Multiple Media Packs

One of my original goals was to have multiple media packs for ARX and thanks to the superb work from Ted Cox and Furious we're pretty much there. Due to a few different reasons I'd temporarily removed these but I'm keen to reinstate these in the next few months and hopefully expand them further.

Mac OS X version

There are quite a few Mac ARX players and I've now reached the point where a native Mac OS X version will no longer be the big piece of work it once was - partly because I'm just much more comfortable with coding and development tools than I used to be. I have another couple of versions in mind for other platforms but I'll see how well the items above progress first.

Release 1.0 of Alternate Reality X?

You may well have looked at the list above and thought "When can I expect to see X?" or "Will Z be included in ARX?". As you can see from the list above I have a LOT of ideas for areas of work planned for development and completion. Sometimes I think something will be difficult and it comes together fairly quickly, other times the opposite happens.  So I'm going to hold off on any release 1.0 date predictions - at least for the time being. What I can promise you is that I have lots of plans for further developing ARX in 2017, making it a lot more complete and hopefully more enjoyable to play.

Finally I just wanted to say a massive thank you to so many of you for sticking with me on my Alternate Reality remake project through the years of development.  I know it's been a bumpy and sometimes inconsistent ride along the way. I've often been amazed by your kindness, support and sheer enthusiasm for what I've been doing and for Alternate Reality in general. I'll do everything I can to try and deliver on the promise of the original project. Wishing you all the best for 2017.

Sunday, 8 January 2017

CRPG Dev - 2016 Review

I hope you had a great Christmas and New Year. Mine was fine though I was left with less time than I had hoped due to a leaking hot water system and helping my son build himself a PC - something I knew was going to take more work than he expected. I'm pleased to say that both hot water system and PC are now fully working.

As 2017 is now upon us I've been giving some thought to my CRPG Dev activities in 2016 and my achievements against my goals. I'm planning to talk about my plans for 2017 in a separate post but will inevitably touch on a few items here as some goals and projects carry over into 2017.

I think the biggest change in 2016 was that I now feel much clearer (and happier) about what I am trying to achieve with Alternate Reality X. I went back to the roots of the project and put aside some of the diversions I'd explored in 2015 to try and make some solid progress. After the lack of any new "classic" builds for ARX in 2015, I released four builds during 2016.

These builds weren't massive advances in features or content but they added some very important and long overdue items such as including all the Dungeon encounters as well as their encounter animations. The project took a big step by starting to pull a lot more real AR data into the game which I think we'll really start to see the benefits of this year. I also began the major task of expanding the inventory and item systems which was essential to recreating Alternate Reality.

I also chose to focus solely on my use of C\C++ for programming rather than Unity 3D and decided for ARX to stick to my procedural coding "style" - I use the word loosely - rather than try and move ARX to an object oriented programming approach - I'll keep that for a new project. Basically I'm trying to do what I think works best for me and my productivity rather than what I think I should be doing. I have cleaned up and restructured a lot of the code and I hope to continue that gradually as I add new features and revise existing ones where necessary.

I had planned to complete the 1.0 release but some of the major rewrites of core sections of code took a lot longer than anticipated. I'd also become preoccupied with some important personal issues I'll talk more in my follow up post about what the next steps for ARX are but I think I'm just going to focus on adding and prioritising the remaining features rather than talking too much about dates for a 1.0 release.

I actually played and completed a game at the beginning of the year (Fallout 3) as I inherited my son's old Xbox 360. This felt like a new game to me as it was only 8 years old! I played a bit of some of the other games from the 360 collection but struggled to get into a groove with any. Maybe this year.

My YouTube channel now has two Alternate Reality X videos uploaded to it. These weren't great but allowed players to see the game developing and are likely to bring a few more people into the ARX community. Expect some more in 2017.

On the personal side I have some big challenges ahead of me in 2017 on the family and financial side so they will take priority but I expect to be able to continue with some very solid ARX development. Another ARX release is well on its way so watch out for that.

A big thank you to everyone who has supported my efforts for CRPG Dev and Alternate Reality X, whether through your emails, Patreon, Paypal, here on the blog or on Facebook. As always I greatly appreciate your interest, your time and support for what I'm doing and it really keeps me going and allows me to continue doing this and gives me the inspiration I sometimes need.

Wishing you all the best for 2017.

Sunday, 16 October 2016

Alternate Reality X - Release 0.8, Items and Inventory

Following the release of 0.75 of my Alternate Reality X (ARX) project I have been working on the next release. As this will be a big release and add a lot of content (item wise) this is likely to be the 0.8 release. The main focus here is to complete a lot of the remaining programming around items and the player inventory in the game with a particular focus around Dungeon items. If you look at my existing code for ARX a significant portion of it focuses on inventory and item handling. A lot of what makes Alternate Reality a great series for me is the excitement of what items you might find after a successful encounter or in the case of the Dungeon a special unique item at a certain location (E.g. Sword of the Adept, Robin's Hood).

The existing ARX item code is probably the area of development that was most time consuming to develop to date and cuts across so many different areas of the two scenarios. AR had a very sophisticated system of inventory and items compared to other games of the time but this makes it much more of a challenge for someone like me to recreate for a remake :) I had planned to make some very major changes to the item and inventory system, very closely mirroring the internal representation used by the Dungeon.

Why change it you might ask? It seems to be working ok? The current system does work ok but it lacks the ability to allow for items to be truly unique or modified in game easily. A good example of this are the clothes items in the City shops. These are currently limited to a subset of the original games options. In the original City these items were made up of a handful of randomised attributes which meant that the City could have dozens if not hundreds of different variations of clothing. My current system doesn't allow for this. The other key areas which I can't implement with the item system in 0.75 are the enchanted weapons from the Weapon Enchantress where she will (for a hefty price) add a number of enchantments to your items. modifying their existing attributes and the Dwarven Smithy who I also believe will create varying qualities of weapon depending on how well you pay him.

Some of the goodies you can find in the Dungeon for release 0.80

In the original Dungeon a block of binary data was used to represent all "active" items in the game. These included items on the ground, carried items, curses, diseases, spells and monster corpses. I was planning to recreate this system in ARX but I've now come to the conclusion that you probably wouldn't see the next release until 2017 and I'm not even sure people would really see or recognise the benefits! The key things for me are to be able to obtain the flexibility of the original system above, minimise the amount of changes I'm having to make just now and be able to make full use of the original binary data (which I've done successfully with the monster data).

I've already written code to read all the original item data into ARX for release 0.8 so that part has gone well. I've extracted all the item names and addresses so it's relatively straightforward now to pull out additional information for items as required. I'll also be able to use this code to extract all the weapon data for the Dwarven Smithy items as well which will save a lot of time and messing around with text files to represent objects which I'm moving away from with the last few releases.

My original item / inventory system used a similar premise to the Dungeon with a single "Item Buffer" type array which holds all the active items in the game including what I call "volume items" (E.g. gold, silver, torches, compasses) that are effectively represented in the player structure as a single numeric value. The only issue with the current system is that it doesn't directly hold lots of the attribute data representing items directly instead pointing to a fixed representation of the item - this need changing.  I've decided to expand and build on this existing system rather than directly copy the Dungeon internal system. This should save me a LOT of time changing existing code and systems that work well already. The existing system probably addresses about 70-80% of the item requirements for AR so it doesn't seem like a good use of my time to rewrite lots of code for that extra 20% of functionality.

The "Item Buffer" in use showing carried items as well as "volume items" on the Dungeon floor

I've thought of another way to expand the item system to allow for the dynamic items such as enchanted weapons so these features will still be in the game, just using a different internal representation to the original Dungeon. The current system will still be able to access all that new binary item data that I've read into ARX as well so item effects for special items will still be accessible within the game.

Sunday, 25 September 2016

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.

Friday, 26 August 2016

Alternate Reality X - August 2016 Dev Update

Here's a new video providing a glimpse of the new encounter animations and further plans for development.