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.
I think you’ve made pretty good choices overall. Keeping this as consistent as possible between the two scenarios is very wise. Most importantly, you’ve kept the original ‘feel’ of the game, the mood, the atmosphere. That is what I personally missed most, over the years, and what I’ve rediscovered playing ARX.
All sorts of refinements could be added, of course (and probably will be, in time). But I think you should go forward in confidence, creating your own version of what you hoped the game to be when you were playing it so long ago.
Thanks for commenting. I added you into the acknowledgements 😉 Let me know if you’d prefer a different name.
your doing great man. I am just so happy someone has the time and skill to complete this project.
Thanks Danny 🙂
You’re doing a great job on it. I first played Alternate Reality, The City back in the 80’s on my Atari 800XL. My brother-in-law and I spent months playing the City and then The Dungeon. We had a blast! We always wished that you could freely pass back-and-forth between the two though and sadly, the series never made it to completion. It was a great disappointment.
So, with you making that possible, I really have no complaints. The time I have spent playing your Alternate Reality X has been a lot of fun and I very much appreciate what you’ve done. I certainly understand how difficult some of the “integration challenges” have been for you.
Thanks for all your efforts Acrin!
Hi Jim, Good to hear from you. Hope things are going ok. Thanks for your kind words.
You’re not a professional programmer?!
I thought it not possible, but my appreciation just went up.
I did have the job title of “Programmer” once for about 3 months but didn’t do anything I would describe as programming 🙂
What’s your build environment for this? I’ve looked at some of the source and it’s very “C” style. You could really use some modern arrays and a little object hierarchy. I could assist in a little refactor.
Hi, I’m using Code::Blocks under Windows with the mingw compiler option and SFML as a media library. The 3D view uses legacy OpenGL.
I have considered some fairly major rewriting of parts to use more modern methods but I suspect it could become a lot of work. I think I’m still very stuck in a procedural mindset. did you have a particular area in mind?
Redo all of the following:
All creatures
All objects (weapons, clothes, food, water, etc)
Creature has stats, weapon has stats vs player stats with weapon stats. I just noticed you have pretty good sized if statements for things, and that’s usually a sign you might need a different approach. You’ll end up with spaghetti code.
I played the original 8 bit version on the Atari 800 (or XL) as a kid also. Always liked that game, it was so far ahead of it’s time.
I really only quickly looked through the code, nothing more than about 10 minutes. Here’s a game I made about 10 years ago, Java and C# server, multiplayer billiards.
https://www.youtube.com/watch?v=fKqRtLIea28
Just a fan video, site is offline now a days, java applets were killed.
Thanks for your suggestions. Your game looks good – reminds me of a game I had for my Commodore Amiga back in the 90s. Shame it’s not online anymore.
I’m a little wary of trying to move existing things over to an object oriented approach as I think it will probably require too many changes elsewhere (a problem with the way it’s evolved and my coding I realise).
I’ve read quite a few modern books on game programming using C++ and SFML and I find the abstraction (if that’s the right word) quite difficult to follow a lot of the time. I have considered restarting a few times but given that I’ve been working on and off on this for many years I’m tempted to push on to try and finish it. I am making small changes as I go along to try and clean things up and modularise it more sensibly. I’d welcome any suggestions or examples of changes that you think would be beneficial. Thanks.
The if statements in shops/modules are something I’m aware of but not too sure how to deal with the special cases that come with them without creating some sort of scripting language.
I’m planning to start an original CRPG shortly which will have quite a bit in common with Alternate Reality (among other classic CRPGs) and I’m planning to take a fresh approach to that project as it’s a totally clean start.
Many times, not in games, I’ve used Reflection from XML to customize things. The XML is in a file that contains the objects, etc. It can even be in the code as a long string…
//Event
You are cursed
Player.AddCurse
Player.DropItem
You have been fully healed!
Player.HealComplete
Sometimes you’ll have to add a function to the player to support a special feature, but it will be clearly named and no if statements, it’s just part of the object, etc.
You don’t even need if statements to parse it, just have a class that has functions:
Exec, IfLess, Message and use Reflection to find it. Doesn’t matter if it’s slow for single events, etc. (And it isn’t slow compared to drawing the screen.)
OK thanks I’ll give that some thought and do some reading up.
It stripped my XML notation… Lol
I didn’t realise it would do that but then I haven’t posted any code yet in comments! You can always email me at acrin1 gmail com. Thanks.
Between City and Dungeon, there were changes because the project chose to make them, yet all of the set of Alternate Reality games were supposed to be part of one mega or meta game.
Choosing a single interface, font, currency scheme, etc is all normal with consolidating and updating. I doubt few of us expect it to be an exact replica, otherwise we’d just be playing it through DosBox.
I for one would rather see the realization of what it was meant to eventually become, even if that means changes, upgrades, etc. Besides, these days I hate jaggies, so any graphics updates and antialias is welcome to my eyes. 😉
Heck, the only thing I complained about was a really high encounter rate when I could even get out of the starting square without 3 or 4 encounters. Sure, I know, when you’ve got your character equipped and want to go hunting, you don’t want to hang around for hours to beat on an undead or something, but that encounter rate affects everyone, even the newly created level 1 got nothing noobs. So I sent a message pointing out what was happening and the dev (Acrin1) responded. 🙂 Did the encounter rates go down some? I don’t know, I’m not sure if that change has been made or the version with it released yet. Either way, the dev responded and makes his choices. I can live with that. (Trust be, testing stuff for someone and getting no feedback is a thousand times worse than getting feedback you don’t like.)
It’s true that not everyone will be satisfied with anything that is ever made. But that’s life. There are still a ton of us fans who’d like to play the whole story, and have fun doing it. I still want to find out what secrets lie at the base of that great waterfall. 😉
One more thing, you could take a character from the City to the Dungeon, but it was bugged. Though I’ve heard a few people say they did it successfully, myself and everyone I’ve ever seen actually try it get attacked by (some kind of police using) Long Arm of the Law. They are undefeatable and will kill you, bye bye character. I talked with the devs back then, possibly Philip Price but I don’t know for sure, and it was a glitch they hadn’t fixed yet. Never heard of a patch for it, so I guess it remained. My only guesses were that it was either a flaw in the character conversion method that caused it, or a flaw in the character save/load routine.
Oh well, I’ve babbled more than enough. Keep up the good work, and waiting impatiently 🙂
Thanks for posting your comments and thoughts – greatly appreciated. The encounter rates have been a strange one for a LONG time – some people reported that they were too frequent, others that they never got an encounter. I have totally changed the way encounter frequency is timed now and I think the results are more predictable and sensible but if not let me know 🙂 I still plan to add some sort of configurable option to set the starting encounter frequency rate.
Lousy typing/typos… “couldn’t even get out of the starting square”
Sheesh.
🙂
You’re doing a Phenomenal Job Acrin! I think you’ve made the right decisions, I do believe a single system for currency would be better where you can have both options or city and dungeon merged into one system. My opinion is to leave the graphics and music as is, since they are what draw many to the game and give it, it’s uniqueness for instance when you die in the dungeon “now that you’re gone, some will grieve on on and on,” and of course the songs from the taverns are the stuff of legend. As to the future scenarios (Which I dream that you will develop) I think so improvements might be added in music and graphics to those since they were never created but they should mesh with the other scenarios of the game for uniformity. I think the merging of the two is a Great Idea, I believe that Data soft and Phillip Price would have done that down the line if they continued the series, but having some new things also made the dungeon what it is “special” so nothing wrong with adding new things (treating it as one game was the way to go). I think having potions throughout the game will be much better and also the guilds that was the most annoying thing of the city that you couldn’t do anything in the city guilds and you couldn’t have potions in the dungeon.
Thanks as always JN 🙂 The graphics are going to be revisited soon but I’m thinking of making it easier for players or contributors to easily drop in their own image files rather than do them myself. I will be keeping in the original graphics and hope to offer at least 1 complete alternate set. In ARX we already have a full set of new AR music by Furious in addition to Gary’s originals. I’m doing some checking on the guilds just now but to my knowledge they work pretty well in both the City and the Dungeon in ARX. Potions still need some of their effects adding though.
I like the choices you’ve made. You’re doing a fantastic job and it always puts a smile on my face when there’s an update. I don’t care if it’s a perfect replica in fact I prefer if it isn’t. Even back in the day playing The City on an Atari 800, I found the encounter interface clunky. Keep making it how you want. I’m really having fun with it and I see your changes as improvements.
Thanks Wedge that’s good to hear. Really appreciate the support.
I’m happy to see there is a bigger number of people supporting you now. Or at least there seems to be more activity in the posts. I love alternate reality so much, I have the best memories of playing it as a kid. These days there is so little time in a day (somehow?) that I have not had enough time to really play through your new version a good chunk. I had a little play around once in a while, but once it has reached a sort of final state I am sure I will do a complete playthrough. I do hope you will at some point decide to add the missing episodes though. I think there has been enough information released in old email threads to sort of outline what was going to happen in those other episodes, right ? I do understand you want to stop at some point and not develop this for the rest of your life though 😉 Maybe you could release some kind of dev kit / editor so others could take it upon themselves to release the other episodes.
There’s been a really good response recently which is great. No worries about playing through I know what you mean about time 🙂 The additional scenarios are still something I#d like to do but I really need to finish the City and Dungeon first 😉 I’m thinking that once the first two scenarios are complete then the sensible thing would be to create some simple tools which would allow people to create their own scenarios or make it easier for me to develop them.
The only thing I did not like was that the options for trick, charm rely on the monster wanting to trade. That must be a 800xl thing. I only ever played the Amiga, ST versions. Trick and charm were pretty much the only way I could ever get a foothold in leveling a character.
Yes I know what you mean I’m not 100% happy with them in the Transact menu – one of the issues of combining the different combat approaches 🙂 I’ll have a think about moving them out of Transact onto the top level. I did always wonder how you could trick a ghost in the City though!
Question: Do you feel it is easier or harder to try and recreate someone elses game as opposed to creating your own?
I think it’s probably been harder for me as I’ve had to put lots of time into better understanding how the original games worked and then trying to replicate in coding some features or mechanics which I wouldn’t feature in my own game. I find that game ideas come quite easily but I don’t necessarily have the skill to recreate them quickly in code. I’m starting an original game so I’ll see how that goes. It will be interesting to compare the difference.