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.

Alternate Reality X – Modifying the display

Example Dungeon screen (672×480) from the Atari 800 Emulator

As mentioned previously I was investigating a possible move to using SDL as an alternative to the SFML media library. Whilst I’m not a 100% certain I’m going to stay with SFML it’s looking extremely likely. The main reason for this is that I understand from what I’ve read that unlike SFML, SDL isn’t able to easily mix it’s native graphics with an OpenGL view. One of the things I found useful with SFML was that I could limit my use of OpenGL to just drawing the 3D City / Dungeon view whilst using SFML’s 2D functions for everything else. The disadvantage I’ve found with SFML is that a number of people have had issues with the OpenGL support and video drivers on their Windows machines. There are a couple of changes I can make which might address the problems under Windows and flag up the possible impact on gameplay at start up for the player.

I’ve been spending some time trying out the City and Dungeon using the Atari 800 emulator (version 3.0.0). This emulator seems reliable and hasn’t yet crashed on and lost my emulator settings which I found to be a problem with Atari 800 Win Plus. One of the first things I’m doing is making some changes to simplify the display options to make Alternate Reality X look more authentic and make best use of the original Atari 800 graphics as I didn’t like the way some of them appeared when stretched by my multiple screen options. In practice this is likely to mean more limited screen display options (at least for the next release) but will hopefully make for a better Atari 8bit look which most players are apparently using when playing ARX. I will still be leaving in the support for alternative media but it’s not going to be a focus in the next few releases. 672 by 480 pixels is likely to become the base resolution for the game from the next release with options to have black borders or not. This will give you a very accurate, double sized version of the original and will allow me to match the display very accurately with the original versions.

One of the benefits about my investigations into the SDL media library was that I’ve been reading a SDL game programming book and this has made me rethink some of the ways the game programming could be improved to make better use of the features of C++. These would probably simplify development, improve my code reuse across multiple shop type modules and reduce the risk of crashes due to my ill informed programming techniques. These are general C++ game programming techniques – just as applicable to a SFML game as a SDL one.

These might seem like very trivial points for me to be focusing on but having the display “look right” for me will make a big difference to me. Release 0.8 is now under development so watch this space.

Alternate Reality X – Back to Basics

As I’d said previously I wanted to review what I’d achieved with Alternate Reality X (ARX) and what I needed to do to take it a step closer to completion. I’ve given the project a lot of thought and wanted to post an update.

I found some of my early AR images on the internet dated 12th June 2004. Eleven years ago! These are very old when I was using Mike Robert’s excellent TADS 3 Interactive Fiction system to read the AR binary map files and display an overhead view. Thanks to Mike for answering my often off topic questions when I should have been using TADS 3 to write more adventure games 🙂 Here are the images:
My early Alternate Reality port using TADS 3!

Another screenshot but with a different font and a very simplistic 3D view
My next move after moving away from using TADS 3 was to post a little SDL based demo of some randomised Dungeon combat with various Dungeon denizens things have changed a lot. My original demo looked very authentic and just worked. I liked that version 🙂

My original goals for my Alternate Reality remake were to:
  • Produce an easy to use version of AR that would run on modern systems
  • Allow players to move seamlessly between the City and Dungeon scenarios

It was not my original intention to improve the graphics and sound or to try and complete the other scenarios. The display and audio options as well as multiple screen resolutions have all added to the development time for me. Not ideal when this is really my first proper programming project 🙂
Since then a lot of time has passed and over the years the project has started and paused a number of times due to other commitments and changing ideas about direction. My conclusion now is that the best direction for now is to return to my original goals for the project and try to bring it to a sensible conclusion, or at the very least bring this stage to completion so that there is a solid foundation for myself or others to build on (e.g. adding a new scenario).
The original Alternate Reality:The City
The other conclusion I’ve come to from the emails and messages I’ve received over the years is that the vast majority of people are really looking for a fairly faithful port of the original games – including the original 8bit graphics and sound. I really need to pair back the project to its core so that I can rewrite some of the dubious code in the background. This is turn would provide a solid platform for possible future scenarios to be added – once the City and Dungeon are 100% implemented.
There are a couple of other things I’ve considered. SFML’s use of OpenGL causes a lot of issues foe people who don’t have fully compliant OpenGL video drivers on their Windows PCs. This is a big concern for me with Windows 10 now on release.  A switch to the SDL media library which I believe doesn’t use OpenGL would probably help a lot with this. I’ve also decided that for ARX any ports to Mac OS X or Linux would probably have to be carried out by someone else. Unity 3D I’ll use for new projects rather than ARX.
So where does that leave the project? 
Here’s my current plan and thoughts for Alternate Reality X development:
  • Microsoft Windows only
  • Staying with C++ and a media library (SFML or SDL)
  • Review each section of code, rewriting where necessary
  • Concentrate on adding the remaining functionality
  • Stick to the original 8bit look and feel for now

Two Paths to Alternate Reality

Over the last few months I have been giving a lot of thought to my two Alternate Reality related projects and with the move into 2015 have been thinking about my next steps. I think I’m now fairly clear on how I’m planning to develop during 2015.

I’ve spent many years working on my original project (Alternate Reality X or ARX) which was originally focused on bringing the City and the Dungeon together into a single game which could be played on a modern PC without the inconveniences that sometimes come from using emulation such as swapping virtual floppy disks. I think I succeeded in meeting the majority of those goals allowing players to move seamlessly between the City and the Dungeon as well as making a number of adjustments so that (hopefully) moving between the two scenarios isn’t too jarring. Over the years I introduced a variety of display and audio options with replacement art from Ted and myself and music by Furious. However the flexibility in the options has meant that a lot of time has been spent on say for example making display elements appear in sensible positions across multiple resolutions. Whilst some people will appreciate all the effort that went into these, I suspect may just want to play the game. In addition I found myself in a slightly odd position where I was trying to please everybody retaining the old and new. In a single game there were limits in how successful I could be with this approach.

ARX had become a bit tangled code wise and needed some significant work to make it more stable and less buggy before I could really complete it. This in part made me decide to put a hold on it last year and start work on a new version of Alternate Reality which used the Unity 3D game development system. I’ve released a couple of short demos using Unity and I like it as a system. It’s relatively easy to use but provides a lot of power for someone like me that I couldn’t hope to develop myself. In addition it’s cross platform support is amazing. I was able to create Mac OS X versions of my Alternate Reality demos with a few mouse clicks compared to the weeks of work it took me to produce one Mac build from my ARX SFML / C++ code.

The conclusion I’ve reached is that I would like to continue to work on both projects but change the focus of each of them so that they are more clearly . From the feedback and comments I’ve received from players it looks like there are a sizeable number of people who enjoy ARX with its traditional graphics and sound but with the flexibility of the City and Dungeon being a single game. There are also a lot of people who are looking for a much more dramatic update to AR. This just wasn’t possible to produce whilst retaining the old look and feel in a single game. I’m now considering focusing ARX on its original Atari 8bit roots whilst my Unity 3D project (with a working title of Return to Xebec’s Demise – RXD) can focus on new graphics and sound, an updated map and a more flexible environment closer to more recent games but still attempting to retain the classic Alternate Reality atmosphere and spirit. The wonderful encounter graphics and music Ted and Furious produced can hopefully be used within the Unity project. This approach will make the ARX downloads much smaller as well.

So what can you expect to see? Firstly I’ll be updating both SFML (now on version 2.2) for ARX and Unity 3D (now up to 4.6) for Return to Xebec’s Demise so that I can produce small updates of both to get my development environment up to date. Internally things like items, encounters and the player are likely to be very similar so I’m playing with a few ideas as to how to possibly re-use some code between the two. One option would be to use the C# language with SFML as this is the language I use for scripting in Unity 3D.

Hopefully what I’m describing above makes sense and will be pretty clear once you have an update of both projects to try out. Let me know what you think and any better titles you have for the two projects. Thanks as always for your interest and support.