Regarding dirtsand

Announcements and discussion regarding any projects related to Cyan Worlds' Plasma Engine including (but not limited to) CyanWorlds.com Engine, Drizzle, OfflineKI, PyPRP, and libHSPlasma.

Re: Regarding dirtsand

Postby johnsojc » Mon Aug 05, 2013 2:29 am

Wow! I got one right for a change :shock:
johnsojc
 
Posts: 246
Joined: Sun Dec 07, 2008 10:27 am

Re: Regarding dirtsand

Postby johnsojc » Mon Aug 05, 2013 7:49 am

I have an automated installation script that sets up a test bed version of dirtsand on a clean Ubuntu 12.04 server.

It installs the necessary software, downloads the repositories, configures and compiles dirtsand, builds the database, and creates a working INI file. For now, it only creates a minimal test bed version on postgresql8.4. I will be making a 9.1 version and hope to expand it to make a production version some day.

The only problem I have left (for the testbed version) is to create an account. Inserting the record is no problem but I can't figure out how to compute the hash for the database... I don't understand C well enough to figure how addact works. Does anyone have a simple command I can use in a bash script to generate a dirtsand compatible hash? I tried using the openssl command but could not reproduce the same hash value.

PM me a solution if you don't want to post it here.

EDIT: Hmm, I guess I need to generate a UUID as well. This may not be possible. :(
johnsojc
 
Posts: 246
Joined: Sun Dec 07, 2008 10:27 am

Re: Regarding dirtsand

Postby johnsojc » Mon Aug 05, 2013 6:01 pm

Well, I managed to come up with a couple of ugly but functional scripts that will take a new Ubuntu server and build a minimal but functional dirtsand test bed in about 10 minutes. It installs any missing software prerequisites, sucks down the H-uru repositories, configures, compiles, builds the database and sets up the INI file. I have a version for postgreSQL 8.4 and 9.1. All the user has to do is run the script, start dirtsand, and create an account. (Of course one needs a client but that's another issue.)

The only remaining problem (I know of) is with the create_score() function in functions.sql. For now, I just go into pgAdmin and edit the function right in the database after I run the script. zrax fixed the other issue with the bad CREATE INDEX in the scores table.

If anyone is interested in looking at or playing with these scripts, let me know and I'll provide you a copy. Just be aware that I haven't done any shell scripting for about 20 years and I'm a whole lot rusty. (I did mention these were ugly, didn't I?) It would be nice if I knew enough to write a script to build a production server but I have no plans to run one so... back to cleaning up moul-scripts.
johnsojc
 
Posts: 246
Joined: Sun Dec 07, 2008 10:27 am

Re: Regarding dirtsand

Postby johnsojc » Wed Aug 07, 2013 8:32 am

johnsojc wrote:The only remaining problem (I know of) is with the create_score() function in functions.sql. For now, I just go into pgAdmin and edit the function right in the database after I run the script. zrax fixed the other issue with the bad CREATE INDEX in the scores table.

Yeah! zrax fixed this one too! Thanks!
johnsojc
 
Posts: 246
Joined: Sun Dec 07, 2008 10:27 am

Re: Regarding dirtsand

Postby Tsar Hoikas » Wed Aug 07, 2013 7:49 pm

Several weeks ago, I tried to do some sanity checking on SDL blobs. From what I can tell, every blob that we receive from the client, DS can now reproduce faithfully. The base64 encoded/decode works correctly as well. What I have not tested is that roundtripping from the database yields the same blob. It sounds like that might be a good thing to test.

Congrats on getting a setup script working, btw! I've been deep inside redesigning an audio system, which has been a nice break from Plasma (hence the radio silence).
Image
Tsar Hoikas
Councilor of Technical Direction
 
Posts: 2180
Joined: Fri Nov 16, 2007 9:45 pm
Location: South Georgia

Re: Regarding dirtsand

Postby johnsojc » Thu Aug 08, 2013 5:25 am

I think there is something subtle happening. I built two identical servers with the only difference being the version of postgreSQL. Using the exact same client, I have noticed almost sublimal differences in the way the game behaves between the two. The most notable 9.1 issue is with the Teledahn pressure plate puzzle where I see the plates not depressed even though a rock is on them. I have not seen that using 8.4. I need to retest this and take names (and logs) and compare.

Now that I'm not chasing some other bug, I will try to play the two versions side by side and see what happens... (if only there was enough time and personal energy to do everything!)

EDIT: NVM. I reproduced the Teledahn prison pressure plate glitch in 8.4. I returned to the prison to find the rocks on the plates but the plates were not depressed. Knocking a rock off and then replacing it causes the plate to be depressed again. Off to analyze the log and see what's happening.

I think the problem is in tldnSlavePrisonDoors.py. At first glance, it appears the the module does not read the SDL state of the levers and plates. If I'm reading it correctly (fat chance) the SDL is only read when a second person enters the Age. I will investigate further and see if I can figure out what's going on.
johnsojc
 
Posts: 246
Joined: Sun Dec 07, 2008 10:27 am

Re: Regarding dirtsand

Postby Acorn » Thu Aug 08, 2013 11:09 am

as per my post in your other thread, looks like you're onto something here, thanks! :)
Image
Acorn
 
Posts: 724
Joined: Sun Feb 26, 2012 9:56 am

Re: Regarding dirtsand

Postby johnsojc » Thu Aug 08, 2013 3:13 pm

Acorn wrote:as per my post in your other thread, looks like you're onto something here, thanks! :)

I'm not sure a fix is possible. Although the game keeps the state of the levers, I don't think it keeps track of the stones on the pressure plate. You would think it would keep track of which plate was pressed but I see no evidence of that. I'll keep looking since there seem to be several problems in Teledahn. One with the buckets seems to occur if you enter someone else's Age but you have never solved the buckets in your own Age. The bucket brain script crashes.

I still cannot get into the spyroom. The error from dirtsand is exactly the same one I got when I (stupidly) changed the SDL file and broke the final journey cloth. This makes me think that I have a problem with the spyroom SDL but I have no tool to inspect the database blob.
Last edited by johnsojc on Thu Aug 08, 2013 4:25 pm, edited 1 time in total.
johnsojc
 
Posts: 246
Joined: Sun Dec 07, 2008 10:27 am

Re: Regarding dirtsand

Postby Deledrius » Thu Aug 08, 2013 3:48 pm

johnsojc wrote:
Acorn wrote:as per my post in your other thread, looks like you're onto something here, thanks! :)

I'm not sure a fix is possible. Although the game keeps the state of the levers, I don't think it keeps track of the stones on the pressure plate. You would think it would keep track of which plate was pressed but I see no evidence of that.

It does keep track of the position information for the stones, or at least it should. It's kinda wonky and someone else who knows that better than I will have to answer regarding it.

johnsojc wrote:This makes me think that I have a proplem with the spyroom SDL but I have no tool to inspect the database blob.

Have you tried MoulKI?
User avatar
Deledrius
Gehn Shard Admin
 
Posts: 1377
Joined: Mon Oct 01, 2007 1:21 pm

Re: Regarding dirtsand

Postby johnsojc » Thu Aug 08, 2013 4:13 pm

Deledrius wrote:Have you tried MoulKI?

No, but I'll try to compile it... I can't do much worse than I'm already doing (oh, why do I mess with code I don't understand? Because it's fun!)
johnsojc
 
Posts: 246
Joined: Sun Dec 07, 2008 10:27 am

PreviousNext

Return to Plasma Development

Who is online

Users browsing this forum: No registered users and 0 guests

cron