Open mgiuca opened 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?
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:
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".)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.)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.)
(There's no mention of moul-assets other than a "related project".)
[...]
You still need to copy the
avi
,dat
andsfx
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.
@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.
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.
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:
Pending merges to H'uru: These are often resolved quickly. In order to prevent conflicts, our policy has been to wait until MOULa merges a new update before merging those changes onto the H'uru repo, but this is not always done immediately as we have our own (often more stringent) requirements that need to be met. For the most part, however, AFAIK the game data content here should match (outside of a short delay) in every way that matters for compatibility. MOULa has been extremely permissive with accepting fan Ages regardless of whether they fit into the game's aesthetic or quality level or are consistent with game lore and while the H'uru repository has tried to keep parity with MOULa due to the engine's design, the repository for Gehn is more selective.
Pending merges to OpenUru: These remain sitting in the queue. MOULa is many years behind on important upgrades to the engine as OpenUru has still not integrated the changes necessary for using modern versions of Python, PhysX, and other libraries, causing incompatibilities in the game scripts. These problems should go away once MOULa catches up, but OU's administrative reluctance has delayed resolution on this issue. For the last decade, this repository was the only one with meaningful work being done on it, and there was every reason to forge ahead (and updating scripts as necessary as we went). Now that OpenUru is accepting submissions on a regular basis and MOULa is receiving updates, it's hoped MOULa will adopt these crucial engine updates sooner rather than later. Otherwise, the OpenUru team is only creating even more maintenance headaches going forward as an increasing amount of new content using old Python or untested with modern physics is added and will require even more rewrites in the future. There was a commitment made last year at Mysterium to resolve this issue by OpenUru, but it has not yet come to pass. We've tried to make adopting the H'uru codebase for MOULa as accommodating as possible, but cannot force the issue.
That all being said, due to the engine's design, you should always use the game data and scripts from the server you are connecting to regardless of the executable you are using. The game assumes everything is built together as a single unit, and while we've decoupled some of that, it's a major assumption running through the entire game's design. Additionally, while the game engine executable itself should be generally compatible you'll need to modify the server.ini
to connect with different servers, and it is not recommended to connect to a Live server with a build not authorized for use on that server.
Our binary can absolutely be used to connect with other players (as it is used on the Gehn server, among many others). MOULa is unfortunately years behind, and has not treated this issue as a priority despite countless offers of assistance and the additional work it has created, and continues to create, for both teams.
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):
569ee14
UruLive.Live.1.918.OpenUru#211
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:
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
, theIDrawLinkPanel
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 thosekYeeshaPage
codes became wrong at some point, and these are having no effect?I tried deleting all the "
show()
" calls except for the one forkYeeshaPage25
to see if it would hackily fix it, but it didn't have any effect.