Released into the Wild
Plenty has happened since my last post and it is time to give an update on what has been happening — some exciting (A&A Released!), some good (Contests!), and some not so good (Bugs!). Let’s start with the best part — the release of Amulets & Armor Classic v1.00.
Amulets & Armor finally got released on 4/21/2013 and it was a whirlwind to get it out. The somethingawful.com Let’s Play had come to an end and I found myself needing to rush out something … anything. I wanted to get it out a few days before their finale, but I misjudged when that would happen and had to quickly go to release mode. At my day job, we call this a “forcing function” or generally an event that forces you to get off your butt and make things happen immediately.
The forcing function was in full force and after staying up way too late, the game was released. A mass mailing went out to all the subscribers and the next day I started seeing game downloads. Very cool! This was exciting! And I was glad to see people were talking on the new A&A thread about it. On to the next phase ….
Trials and Tribulations
The next phase was to get some good contests running to celebrate the release of the game. I had wanted the contests to be announced with the game, but it took all my energy to get the game out and I was out of time. Why? I had to go on a week long business trip out of town. Writing contest rules is harder than it sounds. So I held off until my business trip was over and then posted the two contests in a separate mailing. If you have not heard about the Fan Art Contest and the Speed Run Contest, check them out. No entry will be rejected (unless it breaks one of the rules). I’ve got some really neat ideas for more contests, so if these are not your favorite choices, stay tuned.
So getting the contests going was good, but then the problems hit …
Back to the Drawing Board
Players were reporting erratic movement problems and especially when the speed was ratcheted up for the runs. Okay, I admit it, I did most of my testing in the Windows version and then only lightly tested the DOS version. It was running — surely it was producing the same code, right? Right? Sort of.
Warning Programmer Talk: DOSBox is still an emulator and it can only work so fast. What had happened is I decided to adjust the accuracy when calculating a player’s velocity. I wanted the game to run smoother and started changing some of the integer fraction math. When A&A was built, we were spec’d to run on 386 machines. The problem with 386 machines is they don’t always have a floating point coprocessor, so doing floating point math is very (time-wise) expensive. Either an exception (effectively interrupt) occurs each time you try to do a floating point math or you have to compile in the software libraries to do the floating point math instead of the super fast hardware commands to do it. In any case, speed is speed, and for maximum speed A&A does no floating point math. Instead it uses what is called fixed point math. Basically what you do is split up a 32-bit value into a integer part and a fractional part. In most of A&A’s code, we use the upper 16-bits as a signed integer and the lower 16-bits as a fraction. There are all types of wonderfully neat tricks you can do with fixed point math that I won’t go into here, but the key to note is that the upper 16-bits is limited to signed 16-bit numbers of values of -32,768 to 32,767. In computer terms, this is not a huge range of integers and it is easy to overflow.
And in my attempt to smooth out the movement just a bit more, I decided to change the math in one of the calculations by using 3 more bits in the fractional part. But when you use 3 more bits in the fraction, you lose 3 bits in the integer. What this did is change the already small range of -32,768 – 32,767 to an even smaller range of -4,096 to 4,095. Because the original math gets up to 8,000 fairly easy, and even easier on DOSBox (lower frame rate), this was out of range. What does a computer do when it gets out of range? It rolls over. In the world of computer math, adding one to 32,767 rolls over to -32,768. So, in a sense, by the power vested in digital computers, going forward turns into going backwards.
Alright, enough computer speak, I think either you get the picture … or could care less ….
Amulets & Armor + 0.01
And, as to be expected, a new version has been uploaded to the download page with the proper fix to movement. But while I was in there, some more changes were put in place:
- Thanks to JossiRossi, he made the music loop much nicer. Nothing jars me more than to have music just stop and immediately replay. He figured out the proper break spots and made them loop much nicer.
- By popular demand, there is now a Mouse Invert Y command in the menus to allow those who think the world is upside-down to use a mouse again.
- Quest 7 Level 1 now let’s you continue. Imagine that. You get to this level and the exit takes you … nowhere. Embarrassing. I think whoever pirated A&A on the abandonware sites gave it some love and fixed some of the original levels.
- The Multiplayer Guild now correctly shows the list of adventures and descriptions. An old set of text was used and needed to be updated to the proper ones.
What? You want more?
Well, so do I.
Networking code for Windows is in progress but delayed. I just couldn’t let people not play the game since I had a contest for speed runs that was doubly denied (bad speed movement and unconnected levels). It may be delayed, but definitely not forgotten. Let’s hope the schedule stays cleared for this one.
If you do find any bugs, please email firstname.lastname@example.org with any problems found or post them on any of the community forums. One of the players is reporting a problem with exiting Quest 1 Level 2 (see picture). Are you having this problem?
Music of the Day: “Down” on the Album “Illumination” by Tristania