Advertisement

questions about Ultima Online iso engine

Started by January 20, 2001 11:40 PM
14 comments, last by RomanticWarrior 24 years ago
No no, you still use 2D tiles as you were thinking, but you render the ground differently. Let''s say, making it easy, that you have a large bitmap that is the ground (actually two - one is a heightmap).

When you''re ready to draw a single tile, grab that portion of the ground bitmap and heights and draw it. Then draw an tiles sitting on that section. Go to next and so on.

Or

Draw entire ground in view, fastest is with polys and keeping a zbuffer, then switch to drawing tiles (with zbuffer). The bad part is the tiles have to be 3d as well (drawn on a poly face) to get the zbuffering right.

Jim Adams
I am not totally sure but the current Ultima Online looks very much like
it is tile based. They are however moving to a full 3D engine with Ultima
Online 2.

However there is nothing to stop you using what Jim has
suggested either.


Advertisement
Ultima Online does not read in the whole map and decompress it on the fly. UO uses tiles for it''s background aswell. How UO does it is this: It reads in ''blocks'' of the map at a time, 9 of them. each block is slightly larger then the size of the screen. It loads them into 9 arrays and calls upon them to draw. As your character moves, it loads the next section of the mpa in the direction you are walking. So it basically keeps loading from the same file (map0.mul) the whole time, just loads different parts at different times. THe only part that is compressed and decompressed in UO is the data sent through the network.
UO cannot read the entire map. The map is a few hundreds of megabytes worth. You can see that if you run and have a slow disk subsystem. Even without dynamic tiles and similar terrain it still uses the disk a lot.

Gaiomard Dragon
-===(UDIC)===-
Gaiomard Dragon-===(UDIC)===-
I am 99.999% sure UO is tile based. I used to play that game and ran my own server for quite a while, you add tiles all over the place and even the items are tiles (transparent edges obviously), that why when you drop items on the ground they snap to a space a little bit away from where you drop them (so they aren''t between tiles). When you stick stuff in containers that isn''t tile based..but thats not isometric it''s just a little side thing.



-=Foible=-
-=Foible=-
UO is definitely a tile based system. It works on a seperated terrain/item file structure. It''s an area of 6144 tiles wide and 4096 tiles high. The base terrain is fairly simple, represented in map0.mul. The world is broken up into 8x8 tile areas, with 32 of these areas to a land group. Each tile entry in map0.mul consists of an ID/Z height pairing. Z is signed char, ID is unsigned short. More information on the file structures themselves can be found here: http://dkbush.cablenet-va.com/alazane/file_formats.html

That information is fairly old and has been updated since. However, not in a useable online source. I actually work on one of the UO Emulation projects, UOX3 (www.uoxdev.com if anyone''s interested). It''s open source, so if you have any interest in how it''s treated, you can grab the source and examine the files for information on reading/writing.

Map viewers and editors exist for the UO files. The buildings and bridges found in the game are represented by statics. More information can be found at that URL specified above.

There are a few freely available tools for UO, which are geared at interrogating the files. There''s InsideUO that looks at all the information. You can find a BMP->MAP program that takes a 768x512 BMP and turns it into a UO map. You''ve got tiledata extractors, tile viewers, and general display programs for all items/tiles. You can even dump the entire contents of all the pictures from UO into their own directory/BMP.

There are also some open source clients being worked on for the UO community. One was done in Java, can''t remember it''s name off hand. The author decided to go to a SDL/C++ route, and that''s further along, called Arachnide. That one can be found at http://arachnide.sourceforge.net/ That''ll probably help you when it comes to displaying them, and reading the information in.

Hope that helps the discussion

Abaddon
UOX3 Developer


This topic is closed to new replies.

Advertisement