Hello all,
As you all know I’ve been working extensively on the movement part of the game and I realized that there is more than just one character that moves around the map. In Ultima 1 you have the following travel tiles:
1. Frigate
2. Raft
3. Land Speeder - WTF?
4. Horse
5. Cart
6. The main character!
UPDATE: I've found that each of the transportation tiles have a set host of collision tiles they are unable to travel through. Here are the following tiles per transportation mode:
The Frigate: The Frigate can only travel over Ocean tiles and is restricked from traveling on any other tiles.
The Raft: The raft also can only travel over Ocean tiles and is restricked from traveling on any other tiles.
The Horse: The horse can travel over any tiles except Mountains and Oceans.
The Cart: The cart travels exactly as the horse!
The Land Speeder: The land speeder can travel over any tiles except Mountains and Trees!
So with all these different modes of transportation I had to create the new shapes for each one. I’m testing a subroutine that will swap between all 6 shapes and move around the map with each one. One of the issues that needs to be resolved is different transport modes are restricted by different types of terrain. The Frigate and Raft can only travel over ocean tiles and must have a collision check against all other types of tiles, minus the main character tile and possibly a dungeon tiles out in the ocean. The Horse, Cart, and main character can only travel over normal terrain, minus Mountains and Oceans. Then you have the land speeder, which can travel over everything except mountains! So as I see it I can implement one main subroutine that covers all types of transportation modes, plus a subroutine that will swap out the different types of tiles on the maps. The big issue I see coming up is how to maintain these transportation items on the screen when they are not being used! In the game you can buy more than one of each of these items and once they are on the map the will stay on the map unless moved or sold. This causes a dilemma in that I’m not sure if I will be using BASIC or Assembly to keep track of these items. This is a looking like a deep puzzle because they won’t be a part of the initial database but will need to be placed on the map in multiple locations with what will probably be and DIM array to keep track of the x,y placement value. So, let’s say the map is 165x80 and I buy a ship and it gets placed at 120,30. This value needs to be maintained in some variable and be checked to make sure that when the map redraw happens and the ship is at a location that is referenced on the map, it must be drawn!
This is tough with the way I setup the compression part of my map database.
The good news is that I did figure out the movement for the different types of transport tiles and there collision properties. I will be uploading a video showing the new movement characteristics with the new tiles.
Just wanted to give you a heads up on where I’m at.
Talk soon,
Joe
No comments:
Post a Comment