Thank you guys for the positive feedback as usual.
Quote:
Originally Posted by xxbrentonxx
Very nice. Doesnt this also open the doors to map editors and isrobot style loop programs?
|
Yes, there are three main uses to this kind of work:
1.
Pathfinding/Collision detection - So you have access to terrain data to feed into some 3D path finding algorithm, perhaps something like

or use some A* variation for 3D. There are a couple of problems with this approach if you want to do it in real time though, so just having the data is not enough to come up with a solution that just works.
I'm currently doing some research to try and come up with such a system. There might be more information in the PK2s that would make this task easier, such as the zone linking information, but I'm not there yet. If worse comes to worse, you could just create some additional files by hand to link specific regions together to make the algorithm more optimized as you don't want to load it all into memory and run a search each time!
2.
Emulators - I believe this is the data the server uses for their player height checking since the client visual height is used else where. Knowing how this data is laid out will allow you to create your own new terrain files and place objects and whatever other information is located in these files. I still have some work to do to figure out what the other sections are for, but they are starting to make sense.
Back when Joymax had some new event, like 8 - 10 months ago or so where they added banners in town and new light poles outside of Donwang West gate, the NVMs were updated but the map files stayed the same. I'm pretty sure the NVMs can be used for adding new entities and whatnot to the client but if you wanted to modify the terrain as well, you'd need to modify the other map files.
3.
New clients - You could make an OpenGL driven client(less) that is a lot more primitive but would more easily run on other platforms or weaker computers. You are of course pretty much sacrificing a lot of functionality and would still have a lot of work to do, but at least you can be sure you can see some terrain!
I am also interested in this aspect to use the techniques Silkroad does in learning how to make my own game by studying an existing game's workings. Basically, by doing all this stuff, I can see one method that is actually in use that is working and I can visualize it in game, so hopefully one day I can make my own MMO, but that's probably years away and would be additional years of work, but it's what drives me to do this stuff.
I will be working on this stuff the rest of the week and will post updates later as I get them. I still need to update my other older map file works, but once I have everything done and cleaned up I think I am going to release the entire package for people to play within a couple or months or so, depending on how development goes for everything else. I don't think Joymax will be making any serious changes to the data files for the new update, but that could possibly cause a small setback, but nothing to worry about.
I know some other people are working on the Silkroad map files so I don't want to discourage them from continuing their own work just because I plan on release mine, but this is some of the last stuff for Silkroad that's not really just out there and common knowledge yet.
I know Cruor (of SRF, SRA, IGL) has published some very nice code for loading BMS files via SRF last year and I plan on making use of his work to handle the objects, so between

, which was so kindly posted publicly and this, most of the data workings of Silkroad should be known.
So, I'm looking forward to making more progress with this as time goes on!