<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="http://dk-software.com/feed.xml" rel="self" type="application/atom+xml" /><link href="http://dk-software.com/" rel="alternate" type="text/html" /><updated>2026-09-20T15:38:15-07:00</updated><id>http://dk-software.com/feed.xml</id><title type="html">Dark Knight Software</title><subtitle>Free, classic-style role playing games by Dark Knight Software, including Dark Ages, Dark Ages II, and the DKS Dev Blog.</subtitle><entry><title type="html">Site Refresh</title><link href="http://dk-software.com/blog/2026/09/20/Sitenews/" rel="alternate" type="text/html" title="Site Refresh" /><published>2026-09-20T00:00:00-07:00</published><updated>2026-09-20T00:00:00-07:00</updated><id>http://dk-software.com/blog/2026/09/20/Sitenews</id><content type="html" xml:base="http://dk-software.com/blog/2026/09/20/Sitenews/"><![CDATA[<p>Thought I’d give the ol’ website a refresh. The biggest change, other than it looking and working better, is the DA1 wiki
is finally finished. It finally provides a complete guide to the game and start-to-finish walkthrough. This was my original
intent for the wiki, never realized until now. For those familiar with the game, you’ll notice the graphics for DA1 don’t
quite match what you remember. That’s because DA1 is a few weeks out from a complete overhaul and the DA1 wiki is a little
ahead of the release schedule. More on that another day.</p>]]></content><author><name></name></author><category term="website" /><summary type="html"><![CDATA[Thought I’d give the ol’ website a refresh. The biggest change, other than it looking and working better, is the DA1 wiki is finally finished. It finally provides a complete guide to the game and start-to-finish walkthrough. This was my original intent for the wiki, never realized until now. For those familiar with the game, you’ll notice the graphics for DA1 don’t quite match what you remember. That’s because DA1 is a few weeks out from a complete overhaul and the DA1 wiki is a little ahead of the release schedule. More on that another day.]]></summary></entry><entry><title type="html">DA2 Alpha 11, Updates so soon!</title><link href="http://dk-software.com/blog/2017/11/12/DA2news/" rel="alternate" type="text/html" title="DA2 Alpha 11, Updates so soon!" /><published>2017-11-12T00:00:00-07:00</published><updated>2017-11-12T00:00:00-07:00</updated><id>http://dk-software.com/blog/2017/11/12/DA2news</id><content type="html" xml:base="http://dk-software.com/blog/2017/11/12/DA2news/"><![CDATA[<p>Just a quick update this time to fix a very important bug. Like with any classic role playing game, the more you walk along in a dungeon, the
more likely you are to be attacked. To make sure the process isn’t completely random, the first few steps are free, then each additional
step increases the odds of a random battle. In DA2, these steps are measured in pixels. Well, with the old, clunky DirectX 7 version of DA2,
a step was measured in multiple pixels to improve game speed. Multiple pixel stepping is no longer required with SDL, and apparently this broke
my old random battle code. You could walk the entire game without a single random battle. That’s no fun. Needless to say, this was the bug
that forced me to release Alpha 11 just three days after the last release. This will teach me to playtest inside a dungeon instead of in a town
where battles do not occur.</p>

<p>In the short interim, I was able to fix the scrolling color issues. Not elegantly, but that’s life. Briefly, back when DA2 was just 256 colors,
I could take some of those colors and rotate them in a sequence from dark to light. This gave magic items in the game the effect of glowing
and pulsating with an aura. Just to remind you that magic items are cooler than regular items, right? Now that everything is in true color,
there are no color palettes to rotate. Locking textures and hunting for pixels to change seems really dumb to me. I also tried a lot of different
blend modes and masks, but this didn’t quite have the desired effect. In the end, I just duplicated the bitmaps for all the items in question,
bumping the appropriate pixels in each, and now magic items are a series of 8 sprites that animate during the game. Simple right? I never would
have dared this a few decades ago with QuickBasic; memory was too precious then. Funny how easy it is to dispose of now. All the new sprites I
added are probably only a fraction of a high-res texture in a 3D game. And so DA2 continues trudging on, bringing the 80’s to modern gaming.</p>]]></content><author><name></name></author><category term="DA2" /><summary type="html"><![CDATA[Just a quick update this time to fix a very important bug. Like with any classic role playing game, the more you walk along in a dungeon, the more likely you are to be attacked. To make sure the process isn’t completely random, the first few steps are free, then each additional step increases the odds of a random battle. In DA2, these steps are measured in pixels. Well, with the old, clunky DirectX 7 version of DA2, a step was measured in multiple pixels to improve game speed. Multiple pixel stepping is no longer required with SDL, and apparently this broke my old random battle code. You could walk the entire game without a single random battle. That’s no fun. Needless to say, this was the bug that forced me to release Alpha 11 just three days after the last release. This will teach me to playtest inside a dungeon instead of in a town where battles do not occur.]]></summary></entry><entry><title type="html">DA2 Alpha 10, Big Changes?</title><link href="http://dk-software.com/blog/2017/11/09/DA2news/" rel="alternate" type="text/html" title="DA2 Alpha 10, Big Changes?" /><published>2017-11-09T00:00:00-07:00</published><updated>2017-11-09T00:00:00-07:00</updated><id>http://dk-software.com/blog/2017/11/09/DA2news</id><content type="html" xml:base="http://dk-software.com/blog/2017/11/09/DA2news/"><![CDATA[<p>Several months ago, I decided to take a break from Dark Ages: The Continents to work on the sequel. Specifically, I decided to finally port the
game to SDL for the graphics library. This is technically the third port for the game. The most recent one, to version 2.0 alpha 1 through 9,
was already dated. It still used 2D software rendering and many of the functions no longer behaved correctly, whether this was a video driver
issue or OS issue.<br /><br />
So I bite the bullet and begin the port. It is surprisingly easy. Swap out DirectX (7, I think…ick…), swap in SDL 2.0, then see which functions
break. Ninety percent of the time the broken function was just a rendering function. A simple find and replace fixed those. Keyboard and mouse
inputs were easy to wrap. Even making configurable screen modes and updating to hardware rendering and surfaces instead of textures wasn’t too tricky. 
In all, it was probably just a month of off-and-on work, then several months of life happening, and then finishing touches these last few days. Voila!</p>

<p><img src="/img/blog110917.png" width="640" height="480" alt="The Dark Ages II: Engel title screen, with New, Load, Credits, and Exit buttons." /></p>

<p>Dark Ages II: Engel, leaner, meaner, and more portable. It even works in Linux for those bold enough to try compiling from the source, although
with a few glitches I’m choosing to ignore at the moment. Overall DA2 will work better (or at all) on most computers now. The sacrifice is in
a few cosmetic issues, e.g. a few mouse cursor issues. Most noticeable, perhaps, is in moving from 256 color screen modes to true color. True
color gives me more compatibility, and allows for a few simple effects like translucent dialog windows. But it broke the palette effects. Original
DA2, back to the very first version, used 32 color indexes for effects. Those effects included swapping the colors each screen refresh, allowing
texture colors to change, glow, or sparkle. Without a palette, those pixels are no longer magical in the game. Oh well, time to get creative…</p>

<p>In any case, enjoy alpha 10. In summary, lots of big changes, and the end result is a few more things broken! Yay! Hopefully not too many new 
bugs were introduced in the port, but I’m sure you’ll all let me know. Source code is now available for Linux users or anyone who wants to see
all the wrong things I did.</p>]]></content><author><name></name></author><category term="DA2" /><summary type="html"><![CDATA[Several months ago, I decided to take a break from Dark Ages: The Continents to work on the sequel. Specifically, I decided to finally port the game to SDL for the graphics library. This is technically the third port for the game. The most recent one, to version 2.0 alpha 1 through 9, was already dated. It still used 2D software rendering and many of the functions no longer behaved correctly, whether this was a video driver issue or OS issue. So I bite the bullet and begin the port. It is surprisingly easy. Swap out DirectX (7, I think…ick…), swap in SDL 2.0, then see which functions break. Ninety percent of the time the broken function was just a rendering function. A simple find and replace fixed those. Keyboard and mouse inputs were easy to wrap. Even making configurable screen modes and updating to hardware rendering and surfaces instead of textures wasn’t too tricky. In all, it was probably just a month of off-and-on work, then several months of life happening, and then finishing touches these last few days. Voila!]]></summary></entry><entry><title type="html">Newest Features of Dark Ages Version 2.0</title><link href="http://dk-software.com/blog/2017/05/16/DA1news/" rel="alternate" type="text/html" title="Newest Features of Dark Ages Version 2.0" /><published>2017-05-16T00:00:00-07:00</published><updated>2017-05-16T00:00:00-07:00</updated><id>http://dk-software.com/blog/2017/05/16/DA1news</id><content type="html" xml:base="http://dk-software.com/blog/2017/05/16/DA1news/"><![CDATA[<p>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.<br /><br />
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.</p>

<p>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…</p>

<p><img src="/img/blog052017.png" width="640" height="400" alt="The new in-game options menu, showing music volume, screen resolution, fullscreen, and the list of keys." /></p>

<p>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.</p>]]></content><author><name></name></author><category term="DA1" /><summary type="html"><![CDATA[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.]]></summary></entry><entry><title type="html">First Alpha Release of Darkages Version 2.0</title><link href="http://dk-software.com/blog/2017/04/16/DA1news/" rel="alternate" type="text/html" title="First Alpha Release of Darkages Version 2.0" /><published>2017-04-16T00:00:00-07:00</published><updated>2017-04-16T00:00:00-07:00</updated><id>http://dk-software.com/blog/2017/04/16/DA1news</id><content type="html" xml:base="http://dk-software.com/blog/2017/04/16/DA1news/"><![CDATA[<p>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.<br /><br />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.<br /><br />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.</p>

<p>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.</p>

<p>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.</p>

<p>So stay tuned in the next few weeks. I’ll keep blogging my progress. And expect to play on Linux soon.</p>]]></content><author><name></name></author><category term="DA1" /><summary type="html"><![CDATA[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.]]></summary></entry><entry><title type="html">Version 2.0 for Windows and Linux</title><link href="http://dk-software.com/blog/2017/04/13/DA1news/" rel="alternate" type="text/html" title="Version 2.0 for Windows and Linux" /><published>2017-04-13T00:00:00-07:00</published><updated>2017-04-13T00:00:00-07:00</updated><id>http://dk-software.com/blog/2017/04/13/DA1news</id><content type="html" xml:base="http://dk-software.com/blog/2017/04/13/DA1news/"><![CDATA[<p>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!</p>

<p>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.</p>

<p>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.</p>]]></content><author><name></name></author><category term="DA1" /><summary type="html"><![CDATA[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!]]></summary></entry><entry><title type="html">Site Resurrection</title><link href="http://dk-software.com/blog/2016/09/07/Sitenews/" rel="alternate" type="text/html" title="Site Resurrection" /><published>2016-09-07T00:00:00-07:00</published><updated>2016-09-07T00:00:00-07:00</updated><id>http://dk-software.com/blog/2016/09/07/Sitenews</id><content type="html" xml:base="http://dk-software.com/blog/2016/09/07/Sitenews/"><![CDATA[<p>Well it’s been seven years since the website was updated. I suppose it was slightly overdue. DKS is still alive and well and software development continues,
although at a much slower pace. However, there are a lot of new items in the works.</p>

<p>On the site, I’ll continue building out DA2 content and walkthrough on the Wiki page. It will take a long time, so keep checking in. DA2 version 2.0
is in alpha release. It’s got a few features that need fixing, but otherwise is tons better than the version 1.2 release. And it works on modern
versions of Windows. I’ll say more on that in a future post. Finally, I think it is time to revisit DA1 and port it to Windows, possible mobile.
It might be a fun little project, particularly for anyone who hasn’t been able to play it because of its age. I still fire it up on DosBox every now
and then and I’m amazed at how well it holds up (except for the horrible music).</p>]]></content><author><name></name></author><category term="website" /><summary type="html"><![CDATA[Well it’s been seven years since the website was updated. I suppose it was slightly overdue. DKS is still alive and well and software development continues, although at a much slower pace. However, there are a lot of new items in the works.]]></summary></entry><entry><title type="html">February Updates</title><link href="http://dk-software.com/blog/2009/02/19/DA2news/" rel="alternate" type="text/html" title="February Updates" /><published>2009-02-19T00:00:00-07:00</published><updated>2009-02-19T00:00:00-07:00</updated><id>http://dk-software.com/blog/2009/02/19/DA2news</id><content type="html" xml:base="http://dk-software.com/blog/2009/02/19/DA2news/"><![CDATA[<p>The latest build in the new version of DA2 has been available for over a week, but I thought I’d officially announce it in the news. It is mostly playable now, which is good. You can find it by clicking here. I’ve also updated the link section with a new webiste, Orbital Cows, where everyone can find tons of other games to play.</p>]]></content><author><name></name></author><category term="DA2" /><summary type="html"><![CDATA[The latest build in the new version of DA2 has been available for over a week, but I thought I’d officially announce it in the news. It is mostly playable now, which is good. You can find it by clicking here. I’ve also updated the link section with a new webiste, Orbital Cows, where everyone can find tons of other games to play.]]></summary></entry><entry><title type="html">Website and Wiki</title><link href="http://dk-software.com/blog/2009/01/19/Sitenews/" rel="alternate" type="text/html" title="Website and Wiki" /><published>2009-01-19T00:00:00-07:00</published><updated>2009-01-19T00:00:00-07:00</updated><id>http://dk-software.com/blog/2009/01/19/Sitenews</id><content type="html" xml:base="http://dk-software.com/blog/2009/01/19/Sitenews/"><![CDATA[<p>I’ll start updating the website over the next few months. Most of it will remain the same because the content is still relevant, but I need to update the links and start expanding the wiki. Other players can contribute to the wiki as well. It can be found here.</p>]]></content><author><name></name></author><category term="website" /><summary type="html"><![CDATA[I’ll start updating the website over the next few months. Most of it will remain the same because the content is still relevant, but I need to update the links and start expanding the wiki. Other players can contribute to the wiki as well. It can be found here.]]></summary></entry><entry><title type="html">Dark Ages II Version 2.0 - Coming Soon!</title><link href="http://dk-software.com/blog/2009/01/19/DA2news/" rel="alternate" type="text/html" title="Dark Ages II Version 2.0 - Coming Soon!" /><published>2009-01-19T00:00:00-07:00</published><updated>2009-01-19T00:00:00-07:00</updated><id>http://dk-software.com/blog/2009/01/19/DA2news</id><content type="html" xml:base="http://dk-software.com/blog/2009/01/19/DA2news/"><![CDATA[<p>Well, it’s been years since the last update. It seems the migration to Vista will never be complete, but Windows 7 will probably change that. As a result, DA2 needs porting yet again to keep up with the modern operating systems - so much for backwards compatibility, right? Because I’m starting all over from scratch, I’m making several changes to the game interface. You can sample what’s done so far by clicking here. It is not a finished game. Many things don’t work yet because they have not been programmed yet. You can read more about the new version in the forum.</p>]]></content><author><name></name></author><category term="DA2" /><summary type="html"><![CDATA[Well, it’s been years since the last update. It seems the migration to Vista will never be complete, but Windows 7 will probably change that. As a result, DA2 needs porting yet again to keep up with the modern operating systems - so much for backwards compatibility, right? Because I’m starting all over from scratch, I’m making several changes to the game interface. You can sample what’s done so far by clicking here. It is not a finished game. Many things don’t work yet because they have not been programmed yet. You can read more about the new version in the forum.]]></summary></entry></feed>