Future CRPG Developments

Thanks to those of you who were kind enough to send me documents, resources and even your own 3D models for Unity 3D. I’ve not had the chance to go through everything yet but they look really useful and have given me a real flavour of the possibilities of development in Unity. I’ve decided that I will be moving my development projects over to Unity 3D from now on; the benefits far outweigh the negatives in my opinion.

I believe I must have spent hundreds of hours working on my Alternate Reality port development and if I’m honest it’s not as complete as I expected it to be. If I’d known when I first started looking into it and poking around with the maps that I’d still be working on it in 2013 I think I would have run a mile! It’s become very hard work at times as the project has reached a significant size. I’ve learnt a lot from working on the project and I’m still learning all the time as well as improving my skills but a lot of my time has been spent “recreating the wheel”. At this point with some significant code changes needed in ARX to properly handle objects I don’t feel it would make sense for me to continue using my current home brew system.

Trying out a free model in a Unity scene

Unity 3D has the advantage that it’s an all in one development system so I can do a search on creating a mini map, an inventory system or rain effects for example and I will get dozens of links and videos suggesting how to produce the effects or functionality I’m looking for. It’s all provided in one, nice integrated package. You only need to do a quick search on YouTube to see there are hundreds of tutorials and examples of Unity and how to use it. Compare that to my current development where I need to read up on issues relating to C++, OpenGL (for 3D), SFML for my media library and Visual Studio or Code Blocks for my development environment. That’s a long list! SFMLs use of OpenGL has also nagged me a bit as many Windows players don’t have the correct OpenGL drivers installed. I’ll be doing some tests on older kit with Unity to see how well it runs.

Once you have a working Unity game you can publish it to Mac, Linux, Web and mobile platforms relatively easily (ok I’ll need to buy into optional upgrades of Unity for Apple IOS and Android versions but it’s there ready to tap into when the time is right).

Web Player, PC or Mac?

Now I’m not naive enough to believe that Unity is going to write my game for me but I do think it is likely to make me more productive and so far I’m having fun using it which is why I started doing this in the first place. I’ll still have to write lots of code (in javascipt, C# or Boo) but there are thousands of examples online and it all appears to be well documented and a lot of the core game functionality can be handled through game objects or properties. So far it’s been a pleasant environment to work in. So far I’ve had an on screen graphical inventory up, a menu system and and my own mountains and wilderness to explore created in very little time. I think once I’ve got a better grip on the basics I believe I’ll be able to make much more rapid progress.

When it comes to creating additional scenarios or environments the other problem we’re already running into is limited art assets. Unity has an extensive asset store with a mixture of free and payable assets, many of a high quality. It also supports a variety of 3D model types. It took me minutes to find and download some reasonable free models and import them into my Unity scene.

From the messages I’ve received most people seem to think that Unity is a good move forward. I think it will provide some security for the project as Unity seems to have a large community and in the event that I stopped working on it, others would be able to pick it up and continue work. A more polished engine and game are likely to get more players interested in the game who will in turn improve the chances of the complete series being developed.

Hopefully you’ll agree that this is the right way forward and still feel supportive towards the project. One chapter may be coming to a close but I think an exciting one is about to begin.

Alternate Reality X – Release 0.61 Status

Release 0.61 of ARX will be released as soon as I fix a bug when entering guilds
which leads to a crash.

The main change in this release is that at
least on a temporary basis I’ve switched to the CodeBlocks development
environment using the MinGW C++ compiler. There were 2 main reasons for this –
firstly compile times increased significantly with Visual Studio 2010 from a few
seconds for a change to about a minute which was really making small changes
very tedious, and secondly CodeBlocks is available on Linux and Mac making
native versions of ARX much easier to produce as the same environment can be
used across all platforms. The switch of environment has raised a few new compile
bugs though which I need to deal with before releasing 0.61.

From a
player perspective the other major change I’ve made is that I’ve almost 100%
dropped the use of “RenderTextures” in the SFML media library. My use of these
created lots of problems for players with Intel onboard graphics and a few
issues on newer machines I had access to. My code was also messier and harder to
debug when I had these in. My new 0.61 version works much better on old harder
which I’m much happier with. I don’t see why a player shouldn’t be able to use
an old laptop to play something based on a 25 year old game series just because
it has intel graphics.

I’ve also added code to better handle monster
vulnerabilities and invulnerabilies to various damage types. Bit more work to do
there though to make it complete.

There are a few new encounter images
which I’ve been sent as well which are included for players playing ARX in a
full window. These will hopefully gradually replace the handful of placeholder
MM6 images I’ve used currently.

Hopefully I can have this release wrapped
up fairly soon.

All the best,

Visual C++ 2010 Express and SFML 2

Based on some issues that players of Alternate Reality X reported, I was keen to try out one of the more recent versions of SFML 2.  Hopefully this would resolve problems relating to the use of RenderTextures on machines using integrated Intel graphics. Using a very helpful tutorial by SFMLcoder over at http://sfmlcoder.wordpress.com/2011/06/15/building-sfml-2-nmake/ I was able to build my own SFML 2 binaries and libraries successfully for the first time.

I also used this as an opportunity to switch from Visual Studio C++ 2008 Express to the 2010 edition. It looks like there are a few changes between 2008 and 2010 but no major issues just now.

One thing to remember if that players will need to install the Visual Studio 2010 runtime for the next ARX or SOTC release.

Development Tools

I’ve recently made the switch from the freeware Dev C++ environment to Microsoft Visual Studio 2005. Dev C++ has served me well during the time that I’ve been playing around with this AR project but I decided to give Visual Studio a try and it seems to have worked well so far. I was really only using a bit of the functionality of Dev C++ but one feature that it didn’t seem to have was an option for “folding” bits of code that you’re not working on. Visual Studio also seems to be creating dramatically smaller executables. However these larger exe sizes in Dev C++ might have just been down to the compilation defaults which I didn’t play with much. Visual Studio also seems to have caught a number of errors which went unnoticed by Dev C++. Again possibly down to different configurations. I’m still barely using any of the facilities within Visual Studio. An experienced programmer could probably show me lots of things I should be using to make life easier. Still not sat down and tried to familiarise myself with the debugger. I still think Dev C++ is very good and would recommend it to anyone looking for a free, easy to use option for programming. Dev C++ also has stacks of pre-packaged libraries called devpacks that can be downloaded for things like SDL, OpenGL etc. You can download these from here.

I’m not a programmer by trade though I’ve done bits of programming since I got my first computer back in the 1980s (a Commodore 64 which I wanted because it had 64k of memory which seemed to more than the alternatives at the time). I’ve also done bits of programming through study and work but nothing substantial. I did hold the job title “Programmer” for a few months but moved into a different area that I preferred. Most of the AR project code is probably not very well written. I’m planning to release the source code and VS2005 project files with the next release so if anybody wants to suggest any improvements or ways of making things easier or simpler feel free! I’m planning to spend some time tidying up the code before then. The display code in particular could probably be tidied up a lot and needs some fixes to stop ghostly arches appearing through supposedly solid walls. I know what the problem is here so can hopefully fix it without too many problems.

I’ve done some more work on the character creation gate sequence but I think it will take me a while to get it to the stage where I can say it’s completed. As you can see in the screenshot the counters are roughly in the right place but don’t look right yet.

The next thing I would like to look at is setting up “zones” on the Dungeon map. The zones will identify rectangular areas on the map where different graphic wall sets should be used. I believe this is how the original game worked. If you’re unfamiliar with the original different areas had different graphics to identify them – Egyptian hieroglyphs in the Hall of the Adept, ice walls in the Crystal Caverns and so on. I’d also like to setup different light levels for different zones as this should be relatively easy to do as I’m using OpenGL. These light levels could then be adjusted if you’re carrying a torch or wearing a Helm of Light or one of the countless other light sources in the game. Currently the demo lacks atmosphere as all the corridors and rooms have the same wall textures. I also plan to use the various zones to determine which monster encounter table should be used. A few years back Ken Jordan (one of the original programmers of The Dungeon) posted some information, maps and data files for the Dungeon and he said these contained the zone information. I’ve not decoded these but if anybody has I’d be grateful if you’d let me know – I like to use the original game data where possible.