Ironically, Dark Ages has always been a console style game that required a keyboard and did not support a gamepad. It was very unconsole-like
in that regard. At the time, this was mostly a limitation of trying to support peripherals the average PC user didn't have in an outdated and
abandoned programming language. I wasn't going to waste my time doing that. Thankfully, the development libraries available to game
programmers today are much more advanced, to the point that it is probably easier to support gamepads for a basic tile RPG like this one.
When I started the port of DA1, I did it more or less directly; make the gameplay identical to the original. However, under the hood the code
is a bit more dynamic (although still very basic by game design standards - not what I would do when building a new game from scratch). Particularly,
I designed it for different user inputs. With just a few basic system checks and some additional event handlers, gamepads are detected and operate
seamlessly with the keyboard. Mouse will follow shortly, although I wouldn't recommend it, and that is a topic for a different time. Each action
in the game has a key mapped to it. Simply mapping the gamepad buttons duplicates all functionality. If you have a gamepad, use it at any time.
If you prefer your keyboard, just ignore your gamepad. Both work simultaneously.
One small caveat is there are two specific places where the player is asked to provide text. The most obvious place is when entering the name
of the hero at the start of a new game. Keyboard is still required. On a console the standard procedure is to present all the letters of the
alphabet in a table, and the gamepad navigates a cursor among those letters to select the next one to use. This is novel to the gamepad and I'm
not convinced it is worth the effort for use only twice in the entire game. After all, the game doesn't run on a console, it runs on your
computer, so you SHOULD have a keyboard or equivalent. Tablet owners trying to use their little device like a true computer may disagree, but
that was your bad decision. :) Oh well, I suppose I'll cave eventually and make the alphabet table...
Finally, above is the image of the new in-game options menu. I know, how boring. Of all the things I could possibly take a screen capture of,
why that? I promise more exiting images in the future. Truth be told, I focused my efforts the past month almost exclusively on that. Other than
displaying the instructions on the bottom, you can toggle screen resolutions and windowed or full screen mode. Believe me, it makes a world of
difference when you are playing. Feel free to toggle the music volume. I swear that works, but sadly there are no music files yet. Perhaps in
the next alpha release.
The first alpha of Darkages: The Continents has been posted. Grab it from the links on the DA1 page. For the first time, the game plays
natively in Windows environments. I'm not exactly sure which ones :) - I use Windows 7, works on that. Probably works from XP to 10, too.
Linux and source code coming soon.
Modernizing a 20-year old DOS game to work on today's computers has been an unusual experience. Part of me wanted to keep it as exactly original
as possible. But on the other side of the argument, it's hard to justify not using at least some of comforts of modern computers. In the end I
did keep the game as original as possible, with the idea of overlaying mods in future versions to modernize the game.
The most obvious differences are quite noticeable. Foremost among them is the new title screen. I just couldn't keep the original PowerPoint (!)
title screen. I'm not even sure if I'll keep the new one. Most definitely, it will be polished up some more. But I tried to keep that 8-bit NES
aesthetic, including the bulky, pixelated font. More on that down below. From the very first step in the game, you will now notice pixel scrolling
instead of tile scrolling. This was actually difficult to pull off because at 320x200 resolution, pixel scrolling is SUPER CHUNKY on a 24-inch
computer monitor. The solution, in the end was to scale the tiles from 20x20 to 40x40. It gives the appearance of scrolling through half pixels.
It's tolerable now, but perhaps I'll double down again for smoother scrolling. After all, I'm getting almost 3000 FPS. Finally, I couldn't help
modernize the interface just a little. Text boxes and menus are now translucent. I just love the effect. Menus are operational from the cursors,
instead of typing in numbers like on a PC console. The remainder of changes are even more minor, including more descriptive battle text that
everyone will probably just click-through without ever reading. But I feel it is these small touches that count.
There were times as well that I went out of my way to keep the game the same. The font is the best example. I actually created that font from
scratch to look identical to the original game. It turned out so wonderfully old school, I'll need to release it to the public domain. It's nearly
impossible to find old clunky fonts; most are actually too good looking to be true minimalist. The quirky quests, such as guessing the name of the
hermit in the mountains is still there, including typing it the name from the keyboard. I'll probably change that eventually, likely to a
selectable menu, so that the game can be played with a gamepad.
Speaking of which, there are a few features missing from the alpha. The gamepad is a new feature I added, but have not finished yet. But it is
essential for that classic console feel. Maybe alpha 2 will have it. Also missing is the music. That might be a good thing. I was able to
convert the old midi files to sheet music, and can remaster them to ogg, but I should probably rewrite them as well. At the very least, I can
now use console-like sounds instead of midi instrument samples.
So stay tuned in the next few weeks. I'll keep blogging my progress. And expect to play on Linux soon.
Consider this a birthday party! September of this year will mark the 20th anniversary of the development of Dark Ages I: The Continents. Development continued through the winter of 1997 and
was completed in the spring of 1998, and various bug fixes and upgrades followed over the next year or so. Then DA1 was shelved to begin production
of the sequel. Surprisingly, the game continued to kick around the Internet, and is still playable today through the DosBox emulator. It was this
resilience that inspired me to dust off the old QuickBasic code and do a reboot after 20 years. The end result is Dark Ages: The Continents
version 2.0! I will be posting the first alpha release in a few days. Happy 20th Birthday DA1!
I decided to do a reboot after playing around a bit with Simple DirectMedia Layer. I was playing with the graphics modules for a project at work,
but found the code so easy to work with that I could build a simple rendering engine for DA1 in minutes. After that, it was mostly a
matter of scripting the storyline and recreating the interface. I struggled for a day exporting the original BSAVE (yes, from QBasic!) formatted
graphics to bitmaps, but otherwise the whole process took only a week to build the game engine. Then I spent a few hours a week over the next
few months coding the storyline and play testing. It was amusing to play through from beginning to end after nearly 20 years. It was even more
amusing looking at my old QB code. I barely knew what I was doing back then, and it still compiled...somehow.
In the next few posts I'll explain a bit more about the upgraded features, the features deliberately not upgraded (to maintain that NES aesthetic),
and what I've learned in the process. I'll post the code to GitHub, including the original QB source, just for grins.