PDA

View Full Version : Zonewalk - Panda3D based simple zone viewer


Aengor
12-06-2012, 02:38 PM
Hi Guys

Not at all sure if this is the correct place to post this. I hope it is.

I've created a simple zone viewer program using python and Panda3d. Its not very feature rich yet and also limited to "old" zones (up to Luclin). It will barf on newer zones (will be supported at some point). Currently the program just displays the bare zone (no placeables etc) its still fun to play around with I think.

Since zonewalk is built with Panda3D it can potentially run on Win32, Linux32, Linux64 and various flavours of OSX. I've been developing it on Win32 though and so far have only tested it on that platform too. In addition to the win32 version I've uploaded the linux 32bit deb installer that the Panda3D build tool automatically created to the google code site too but I dont even know if that works. Maybe someone adventurous wants to give it a try :)

You can find the installers and the source at http://code.google.com/p/panda-zonewalk/

http://panda-zonewalk.googlecode.com/files/zonewalk-qrg.jpg

When you first start the program it will prompt you for a path to an everquest install (from where it will then load the s3d files). This info is stored in a configuration file. Under Windows 7 The Panda3D runtime places this file under C:\Users\your_user_name\AppData\Local\Panda3d\star t\zonewalk.cfg. You can manually edit this file if you want to change the base directory etc.


Have fun!
Aengor

Aengor
12-08-2012, 09:05 AM
Just uploaded the next iteration (v0.0.2) to the google code site. Has improved texture loading support and can now load&render all version 1 wld based zones (most zones up to and including god). Also made it a little more user friendly.

Next steps will be sorting out the texture transparency and animation issues and add support for placeables. After that I'll look into supporting the newer style zones (.zon/.ter)

Once all that works (and I still got the motivation to hack on ;) ) I might start looking into adding network support so that it can connect to eqemu and actually spawn mobs etc where they belong.

Have fun
Aengor

Aengor
12-10-2012, 11:26 AM
Small update: making some progress (only availalble as source from the google code svn at the moment though). Wld version 2 zones (like povalor, postorms etc) work now too (kindof, still need the to get multitexuring in, but at least they are not completely untextured anymore), fixed some issues (issue log on google code too) and finally got around to verify that it actually DOES WORK ON LINUX :)

The following screenshot shows zonewalk 0.0.2 rendering NFP in a Ubuntu VM (very surprised as to how well Panda3D performs even in a VM). Seems to all work as it does on Win with one small issue: mouselook is a bit awkward ( the code that resets the mouse to the center of the screen under windows seems to simply do nothing in the Linux version)

Have fun!

http://panda-zonewalk.googlecode.com/files/zonewalk-linux-0.0.2.jpg

Drajor
12-10-2012, 07:28 PM
Nice work Aengor, keep us posted with updates!

Aengor
12-11-2012, 06:43 AM
Thanks for the feedback Drajor.

The latest stuff from the svn now has animated textures support. So finally zones like for example kedge (where the entire "underwater" effect is based on texture animations) look as they should. I'm working on the transparency issues now, a real "walkmode", that allows exploring the zone as if you were actually in game, is next. I'll probably package up new binary installers at that point and upload them to the google code site. If interested, anyone can also track progess via the issues log at http://code.google.com/p/panda-zonewalk/issues/list.

Aengor

Aengor
12-11-2012, 12:11 PM
Hi folks

V.0.0.5 is now available on google code (link in first post) as binary installers for windows and linux. This latest dev build adds animated textures, texture transparency and some minor fixes. Enjoy.

Transparent, animated water (ok, the "animated" part is not really visible in a screenie)
http://panda-zonewalk.googlecode.com/files/qrg-0.0.5.jpg

Annoying zone boundary polys gone (not everywhere yet though, this is wip)
http://panda-zonewalk.googlecode.com/files/freportn-0.0.5.jpg

Aengor
12-16-2012, 10:32 AM
Zonewalk 0.0.7 with placeables support is available on the svn.

http://youtu.be/YQ8R5wIrCxQ

Have Fun!

Aengor
12-17-2012, 11:35 AM
V0.1.0 Milestone build binaries available on google.code now. http://code.google.com/p/panda-zonewalk/downloads/list

This has all the stuff in I wanted for this stage. Not sure where the project is headed next. Either I fix the outstanding (largely minor) issues and add support for more features (newer container formats and zones ) or I will go straight out and take a shot at trying to connect it to the eqemu server in order to test the waters as to how viable turning zonewalk into an actual client is. Lets wait and see ... ;)

rhyotte
12-17-2012, 12:07 PM
Would certainly be nice to have an open client ... one I hope would be usable on linux natively. :)

Aengor
12-17-2012, 01:45 PM
Zonewalk (and what ever might become of it) is being developed using the Disney/Carnegie Mellon Game Engine Panda3D and Python. That means right out of the box it runs natively on Win32, Linux and OSX

Caryatis
12-17-2012, 03:47 PM
Would certainly be nice to have an open client

Straight up will never happen. People like Aengor work on the coding portion of a client because they are learning new things. There is nothing similar for asset creation. If you have the skills to re-create the assets in EQ(models, textures, animations, particle effects) then endlessly creating things is a job, if you don't have the skills then nobody is going to want to use your shitty assets. Its not even like a modeler or animator would want to increase their skillset by re-creating EQ assets as they are so old and primitive.

The only way a non official client will exist is if somebody finds a way to import eq's assets and then ignores the lawsuits that are sure to come.

rhyotte
12-17-2012, 06:56 PM
Point Taken.

DrWIggly
12-18-2012, 05:28 AM
There are other free assets out there but yeah they're not great quality. Would have to do some digging to get good stuff. Worldforge and other projects have been creating OSS stuff I think. Btw nice viewer I'm perusing your code when I can.

Aengor
12-18-2012, 09:01 AM
Btw nice viewer I'm perusing your code when I can.

Thanks. Its all open source, so be my guest :)

I've taken the decision to give myself a few days for exploring the network side of things. So some of the most glaring outstandings (most notably the non existant multitexturing support required even for the old s3d based zones from POP onwards) will have to wait a little. WRT to networking: after a first pass at digging through the eqemu netcode I've got zonewalk to establish a session with eqemulogin server. Wohooo ... that means that only about 99% of the network mystery remains to be solved I guess :D

Aengor
12-18-2012, 10:31 AM
The only way a non official client will exist is if somebody finds a way to import eq's assets and then ignores the lawsuits that are sure to come.

Thanks for your comments! I'm interested (and pretty much clueless wrt to the legalities involved) Would you care to elaborate on the above a bit? Or anyone else? Considering that zonewalk (or any of the other converter, viewer, whatever, tools being talked aout/linked to on this site) already exactly do that (reading "importing eq's assets" as "using as is" in this case)

a.) a software, like zonewalk, that allows the user to view file contents (EQ zones in this case) that he has (legally obtained hopefully) on his hard disk. What about the legality of that? Not talking about the EULA (which it probably violates, but in my understanding that, at maximum, warrants an account termination since its a license violation but does not infringe on any copyrights)

b.) does the picture change (and why) when said software can connect to eqemu and allow you to play the game? I mean, its still not distributing copyrighted materials (the user has to have them already) Loss of business, because people could decide to play on eqemu (using the open client and soe's client side content) instead of the official servers? But if so, how is this different from playing on emulated servers as people are doing already?

Interesting.

Regards
A

DrWIggly
12-19-2012, 12:34 AM
The main issue is redistribution of assets you didn't create, that is a straight up no no. Making something to read and use assets is somewhat of a grey area, you'd think it would be ok but, blizzard put the smack down on the guys who made WoWGlider. That program did a bit more, in order to avoid their warden system, WoWGlider would load the wow.exe binary into memory and hard jump to an address and start executing. In the technical sense the Judge ruled that loading the program into computer memory was copy-write infringement and then executing the program from a non authorized copy was abuse. Now this is super stretching things here, I'm not sure if they talked about the culpability of the user doing the action, but it just proves if you care enough and have enough money you can twist things anyway you want.

Btw I've made a few tweaks while poking around. I notice DDS assets we're coming in inverted, and placeables weren't animating. I was going to look into what is going on with the alpha on DDSes soemthing looks weird with the fire. If you want me to send you a patch I can, haven't tested it too much, its working in ecommons.

Aengor
12-19-2012, 12:01 PM
Thanks for your comments dear Dr. :)


Btw I've made a few tweaks while poking around. I notice DDS assets we're coming in inverted, and placeables weren't animating. I was going to look into what is going on with the alpha on DDSes soemthing looks weird with the fire. If you want me to send you a patch I can, haven't tested it too much, its working in ecommons.

Sure, I'll gladly accept any support I can get! And you seem to have drilled down straight on some of the more glaring issues :). Fires&Torches looking strange probably has something to do with the way I am setting up partially transparent textures (leaves, fire etc) by using the colour of the top left pixel in the texture image as a "transparency indicator" and setting up the alpha channel that zonewalk adds to the bmp images in memory. Dont think I have seen dds textures in pre-pop content yet.


Cheers!
A

DrWIggly
12-19-2012, 02:42 PM
Ah I think i have the higher res assets from another client then. Its loading DDSes for everything of my install. I think I remember obtaining the higher res assets.

As far as the fire not rendering right. Its the blend mode, it needs to be MAdd, at least for DDS textures. I suppose I'm not seeing the BMP versions. I'll have to make another install folder with the titanium assets.

I was looking for some kind of flag on the polygroup to tell me the blend mode, but alas either I haven't found anything documenting it, or its unknown.

I'll pm you my patch tonight when I'm back on that machine.

Aengor
12-20-2012, 10:49 AM
Great Stuff DrW. Love that new mouselook control. Many thanks, greatly appreciated. I'll do a commit with your additions in later.

A

DrWIggly
12-20-2012, 03:13 PM
NP over the holiday I hope to have some more time. You've sparked my interest some. I'm curious to see if I can find any kind of render settings for objects. Also I'm curious on characters. Would be nice if there was a wiki or something that explained all known values for data assets. So far I'm finding I have to dig around here or in various code repositories.

Aengor
12-22-2012, 09:26 AM
I've started some work towards animated models support (needed to display placeables like those swaying trees in Kunark for example anyway). Building the fragment decoders (0x10, 0x11, 0x12 and 0x13) currently. Going to be slow going due to x-mas family business for a while though I guess :)

SpEE2k6
03-06-2013, 06:28 AM
Hi there, at last someone has made a program that views EQ zone files easily!


The only things i have to say are:-

The controls are a little to twitchy/not precise enough, would it be possible to add a way to move by degree by say holding down the shift key and using the movement keys, which would then allow exact positioning with the heading and location. (might be a little bit specialist this i don't know if anyone else actually needs it lol, id like to be able to look in an exact direction like say -90 degrees looking straight down easilly)

Also having a strafe modifier so we could side step like in EQ its self rather than having to turn all the time would be great :)

Otherwise this program is absolutely brilliant!! KUDOS!!