H-uru / Plasma

Cyan Worlds's Plasma game engine
http://h-uru.github.io/Plasma/
GNU General Public License v3.0
205 stars 80 forks source link

Corrupted / unclickable Relto page in Cleft #1381

Open mgiuca opened 1 year ago

mgiuca commented 1 year ago

I just built H'uru from source, connecting to my own Dirtsand using the Dockersand script, using the /LocalData arg.

Versions (everything fresh as of 2023-04-19):

Create a new character -> Choose Returning Character (Relto) and run the Cleft.

Basically everything is working.

When I get to the Totem Relto page, I see this corrupted image which appears to be possibly all of the Relto pages drawn on top of each other:

image

Clicking it brightens the mountain image but has no effect. There is no way I can proceed with the game (or at least, get to Gahreesen, Teledahn, Eder Gira or Kadish Tolesa).

I have not tried a Cleft start.

I have not tried any other Relto pages (I'm actually not sure where to find any since I can't get to the main ages).


I'm novice at Uru's Python code but looking in xYeeshaPages.py, the IDrawLinkPanel function appears to try to hide all 26 buttons, then show just the one needed. It looks correct, but hypothetically, if this code wasn't doing anything, that would explain what I'm seeing, right? Therefore, is it possible that those kYeeshaPage codes became wrong at some point, and these are having no effect?

I tried deleting all the "show()" calls except for the one for kYeeshaPage25 to see if it would hackily fix it, but it didn't have any effect.

Hoikas commented 1 year ago

You might be missing some of the new Relto page GUI items due to having out of date copies of the game files. This would cause execution of the script to end with an exception. Are you using the latest assets from H-uru/moul-assets?

mgiuca commented 1 year ago

Perfect, thanks for the advice, @Hoikas ! I got it working.

So this doesn't appear to be in the README at all. (There's no mention of moul-assets other than a "related project".) Could that be added? I can send a PR if you like.

Let me get this straight -- let me know if there are any unnecessary steps here:

  1. You still need to copy the avi, dat and sfx folders from the official client, right? (I first tried deleting those to just use the moul-assets ones, but I got a freeze on startup loading age "StartUp".)
  2. Then you make a checkout of the moul-assets repo. Is the only way to get those files to do a full checkout? It ended up being about 10 GB and taking quite awhile to download (and possibly costing GoW some traffic, since it's checking out all the sources as well as the compiled assets), despite the compiled folder being only 2 GB. Is there any way to download just the compiled assets?
  3. Then you copy the avi, dat and sfx folders from moul-assets/compiled into your folder. I assume that goes in after the official assets, overwriting the ones there. (There were 3194 files with the same name, but I also found files unique to both which is why I assume you need both.)
  4. Lastly, I still had a freeze loading "StartUp". On a hunch, I re-ran the Install step from Visual Studio, and it seems to have done the trick, because the game works perfectly now. (This means it might not be necessary to copy the folders from the official client, but I suspect it is based on the missing files.)

Does that about cover it?

Thanks for your help.

(PS. Now that I've got it working, I noticed a few other broken things by not having the moul-assets: the Cyan logo did not play on startup, and my Relto had blue flowers by default when I didn't have the appropriate page, probably due to the same script crashing.)

dgelessus commented 1 year ago

(There's no mention of moul-assets other than a "related project".)

[...]

You still need to copy the avi, dat and sfx folders from the official client, right?

I see that the "Running Instructions" in this repo's README and the "Running" page on the Plasma website still say that you should copy data files from a MOULa installation downloaded from Cyan. That's no longer accurate and definitely needs to be updated.

When setting up your own personal server and client, you should not need any files from Cyan anymore. In fact, it's best if you use only the H'uru repos, because the engine and scripts in H-uru/Plasma are coordinated to work with the data files from H-uru/moul-assets. Combining a client from one source with data files from another source (e. g. a H'uru client with the data files from Cyan's MOULa server) is generally not recommended. If not done carefully, it leads to mismatches between the game scripts and data files, breaking various parts of the game.

Similarly, you can't combine two sets of data files from different sources. In particular, the H'uru moul-assets repo and the data files shipped by Cyan's MOULa server have diverged currently. As far as I know, both sets of data files have some content/changes that is not (yet?) included in the other. This means that you cannot safely combine the two sets of data files in either direction - that also often breaks the game in some way, or at best does nothing useful.

(I first tried deleting those to just use the moul-assets ones, but I got a freeze on startup loading age "StartUp".)

That's strange and not supposed to happen. Do you see any errors in the DIRTSAND server console or in the client's Python.0.log file (under AppData\Local\Uru Live\Log)?

Is there any way to download just the compiled assets?

Yes, you can use git sparse-checkout to check out only a subfolder of the repo. Unfortunately this isn't documented anywhere here - this would definitely be a good addition to the moul-assets README. I think the correct sequence of commands is:

$ git clone --sparse "https://github.com/H-uru/moul-assets.git"
$ cd moul-assets
$ git sparse-checkout add compiled

But in your case it doesn't matter anymore, as you've already downloaded all the files you should need.

dpogue commented 1 year ago

@mgiuca The documentation is definitely lacking in some aspects (particularly around the multi-repo setup required to get a local client with the right data working with a local server). It's really good to hear those gaps identified by someone new to the project, because it's too easy for us to gloss over steps that we know by heart.

Total aside, personal backstory I'm pretty sure we were put in touch back in like 2004 by someone on the COBBS forums when I was totally new to programming and way over my head trying to do Uru decryption stuff in C++ (I like to think my C++ has improved slightly since then 😅). Thanks for doing that, I really appreciate that you were willing to spend the time to give tips and encouragement to a total noob, and it was cool to see your name pop up again!
mgiuca commented 1 year ago

Thanks for the follow-up. I tried it again (deleting avi, dat and sfx and just copying the ones from moul-assets). You're right: it worked this time, no need to have the Cyan assets or re-run the install. I didn't get the freeze on StartUp and so I don't know why that happened before.

Yes, you can use git sparse-checkout to check out only a subfolder of the repo.

Thanks for the tip!

I think I've got the info I need to update the Readme (so let's leave this issue open to do that). I am too tired now though.

In particular, the H'uru moul-assets repo and the data files shipped by Cyan's MOULa server have diverged currently.

This issue aside, that's a bit troubling. Does that mean H'uru is no longer able to connect to the official servers? Are there plans to synchronize it back up or is H'uru just a project for experimenting / easier development of new content? (TBH what drew me to trying to set up H'uru over OpenUru is that the build process was super simple - so thanks for all your work on it! But I wonder if it's actually going to result in a binary that can connect with other players.)

I'm pretty sure we were put in touch back in like 2004 by someone on the COBBS forums

Huh. I'm not sure that was me. I was definitely around back then (I went by the name "Eat_My_Shortz" as embarrassing as that is :)) and I might have checked out the COBBS forums a bit. I doubt I would have been able to help much with C++, at least not in 2004! If it was more around the time of the Uru open source release (2010) then that's more plausible.

Deledrius commented 1 year ago

In particular, the H'uru moul-assets repo and the data files shipped by Cyan's MOULa server have diverged currently.

that's a bit troubling. Does that mean H'uru is no longer able to connect to the official servers? Are there plans to synchronize it back up or is H'uru just a project for experimenting / easier development of new content? (TBH what drew me to trying to set up H'uru over OpenUru is that the build process was super simple - so thanks for all your work on it! But I wonder if it's actually going to result in a binary that can connect with other players.)

This is not a binary-compatibility issue; as mentioned it's the moul-assets/game data. Most of the asset compatibility issues fall into one of two categories: