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.
So, off I go and fix the final bugs and issues I had remaining with the escape menu and close out a bunch of other small items. But I noticed a few more things I just had to do before release. Namely, I had to have a web page that was more than an “Under Construction” / “Coming Soon!” billboard. Doing web pages are a little more than just text, pictures, and links — it takes some designing. So with the code stable (or so I thought) I turned my attention to whipping out a HTML5 webpage using all the tools I knew — some graphics, a bit of HTML5 text, a little javascript, a design in mind, and a bunch of trial and error. Yep, the webpage at www.amuletsandarmor.com was hand tuned in one night and, considering I’m no graphic artist, I thought it came out fairly reasonable. I’ll be sprucing it up as time goes by, but for a first run, its not too shabby.
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.
Now what?
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 support@amuletsandarmor.com 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
Any timeline for releasing the source?
My original goals have been to release Classic, then release the level editor tool(s) with the Community Edition (with some changes to the data formats), and then put the source code out. However, I might be encouraged to do so sooner if someone is wanting to help out. I’m thinking a GitHub release might be order and allow the community to branch it several times. I think I’ll make that the topic of my next post.
It’s also Quest 2, Level 2 as well. Same problem.
Is that with Classic v1.00 or the newly released Classic v1.01?
Alright, with Classic v1.01, the problem seems to have magically disappeared. However, now I’m having a different issue. I’ll post it on the forums instead though.
Wow! It’s incredible to think that after all this time, A&A is getting some love! I remember finding it on the Home of the Underdogs Website back in the early 2000s, and thinking it was such an awesome game.