Wednesday, August 31, 2011

So that is what Ultima 1 looks like…



Hello all,
Well, call me stupid, but I didn't realize that I was following the wrong version of Ultima 1! I recently received an email from Bob R. who gave me some enlightening information regarding the original Ultima. "Thanks Bob!" Ultima was not called Ultima 1 at the time because Richard didn't know there was going to be a version II or III, etc...
So Bob gave me some great documents covering the game and how to see the files on the original disk images. One really cool doc was from a magazine called CORE, which showed how to create printed maps of each of the [4] Ultima world maps.  WOW! This was truly an eye opener! I didn't realize I was biasing my version on the updated Ultima version created later.  The original version was completely coded in Applesoft BASIC and had a number of issues related to game play, which Bob pointed out, such as:

·  If you died, you were often resurrected in the middle of the ocean. You couldn't move, and you'd have to starve to death or be killed by a serpent and hope to be resurrected in better circumstances.


·  There were no Up and Down keys on the ][+. Up was "Return" and Down was "/"


·  Hit ESC after any disk changes (if you select 2 drive mode at the beginning this shouldn't be necessary)


·  Movement was SLOW, especially with the dungeons redrawing themselves line by line after every step. (FYI if you're using AppleWin it has to be set to ][+ emulation mode for the dungeons to work)

I can relate to these issues because now that I have the original disk images I have played through some of the game and seen these bugs first hand.
I also found out some interesting points regarding the world map. The world map was made up of [4] binary data files that were 64x64 tiles. In my version I create [2] binary map files that are approximately 180x82 tiles. The reason my maps are much larger is because I have two map sections plus the ocean tiles that are surrounding them.  I made it so if you move around the world map 1 you had at least 11 ocean tiles surrounding that entire map section. If you moved off the 2nd map you would cause the second world map binary file to load and movement would continue on to the second world map area. I'm not sure if I want to change this to having four separate maps. I guess it all depends on memory size and if the files fit on the disk when complete. I was once told that as long as the game plays and looks like the original than it doesn't really matter how I program the internal parts.  I have to agree on this because since I’m programming the game in assembly it is going to be different from the original from the start! 

I also need to make some major changes to the tile shapes.  The shapes I created are from the updated version and they look totally different than the original shapes.  This isn’t too big of an issue because all I have to do is draw the new ones on graph paper and update the data values.
Also, I will be posting a detailed tutorial of the entire world map movement program written in assembly very soon.  I need to clean up the variables used in the program and put more remarks in the code so it will be easier for reader to comprehend.  I will try to break down each subroutine so as to explain how the program reads the data for the tiles, creates the shapes, created the maps, places the character on the map, and how it allows you to move around the world.  This to me will be very critical for programmers because once you have this code you can literally make your own world map with your own shapes and then move around it.  I plan on making a ZOMBIE game after this one that uses a different world map and city block and towns that a player can enter to find objects and fight zombies.  The game would be similar to Ultima but with a zombie theme.  It is in the works but I need to complete the Ultima game first.
Talk to you soon,

Joe



No comments:

Post a Comment