Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - white-rabbit

Pages: [1] 2 3
1
^ OP of the above reddit post here. I'll make a separate thread (edit: http://www.bay12forums.com/smf/index.php?topic=178441.0), but I suppose this is a good enough spot to address some questions.

I don't know that I've "solved" any of the problems with DFPlex in a way that helps anyone that isn't willing to set up multiple levels of infrastructure in front of their DFPlex server :). For example, I added password protection by shimming all connections through a websocket edge service that performs validation of a single-use authorization token in order to gate access to the DFPlex server, which is itself running in a VPC that is not accessible to the public internet. This also solves the problem of exposing the underlying filesystem -- I've disabled the http server on the DFPlex instances and just use a single static webserver for https://play.multidorf.com/demo. Definitely want to contribute my UI changes to https://github.com/Ankoku/df-webfort upstream (the ones that allow changing the tileset/textset via a dropdown instead of url params) although those are obviously quite basic.

Dang, that's some nice work you're doing there. I'm glad to see the project is getting some love. Let me know if you need any help/advice/etc.

2
Can this be ran with a lazy newb pack like PeridexisErrant's Starter Pack? If so, how would I go about installing it?

It may be possible, but I can't personally recommend it. You should use a vanilla (plain) download for dwarf fortress and dfhack and dfplex with the correct versions, as described above.

The main reason I don't recommend it is that there is no support for running dfplex alongside other hacks. It may be possible, but many are unlikely to work correctly or at all. Furthermore, graphics sets will not appear by default, there is limited support for graphics in dfplex currently, and you can read about that in the main post.

3
I use the default Websocketpp normally.
In dfplex_server.log I also have
Code: [Select]
A new client has joined.
  Client addr: "???"
  Client is admin.

I believe an address of "???" is only possible to see when using IXWebsockets, but you say you're using Websocketpp. Try building using Websocketpp, or using the "linux-4.8" download from the bulidmaster site, which is compiled with Websocketpp.

4
Confirmed using the build that white-rabbit posted I can now connect via my local ip (192.xxx) and also my external ip. Using Firefox (Chrome still has an issue, but that's no skin off my back)

Good enough for me. I've made this version the 0.2.1 release. Not sure why Chrome is having problems, but at least it works.

5
I may have fixed the error that Hugo_The_Dwarf and LemmingDwarf are experiencing. If anyone wants to test out one of these windows build artifacts (link) and confirm that it works, I will assemble a 2.1 release.

I used firefox and it worked for localhost, I also used google chrome which worked for none of them, and I used edge which worked for ocalhost
But over the internet it doesn't work, even though like I said I forwarded the ports, the page loads but it says "connecting" then just says retry.

After further investigation, it seems the windows build never "attaches" to the port 1234, even if you change that port to any other port, it never attaches to that specific port, by attach I mean it never "Listens" to that port.

I'm kind of confused -- if it works on localhost then port 1234 must be working correctly, as even on localhost that is required. Either way, you may also see that the error is resolved if you try the above download.

6
Trying out the new version, I use Chrome (at First) and it can't seem to connect, however using Edge (new IE) I can connect fine

flabort: have you tried using a different browser?

7
I do successfully connect to the linked web server after ~30 seconds too, with orange bar the whole time. On my windows machine, though, it goes from orange bar straight to red bar with "click to retry" instantaneously. Leaving it in that state for any amount of time does not seem to help.

Hrm. I really wish I knew more about websockets so that I could have some idea of how to debug this. I hope other people aren't encountering this as well, or I may need to find yet a third library. :'(

Alright, guess it's back to trying to compile. I was having such troubles, though... ugh. And what parameters do I have to set in the build files to do this?

:/ good luck. The compile option (to pass to CMake) is -DDFPLEX_IXW=OFF. I don't really know about the other build errors you're getting (I don't really do MSVC much...)

8
Trying to connect with the host computer still gives
Code: [Select]
A new client has joined.
  Client addr: "???"
  Client is admin.
in dfplex_server.log and "New connection" in the console, but still has the display in above spoiler.

Oh, right. To get dfplex to build on windows, I had to switch it over to using the IXWebSockets library (though Websocketpp is still the default on linux, and on any OS you can select which one when compiling via cmake). While IXWebSockets does seem to work on windows, I couldn't figure out how to get the client IP address out of IXWebSockets, so it just displays as "???" for now. (I know the message is really opaque. Sorry.) Theoretically, though, if you're seeing "client connected" that should mean that the connection is going through.

Now, I've noticed on my own test windows machine that even after it "connects" it takes about 5 seconds for the websocket communication to actually start (i.e. for the graphics to appear), but it was instantaneous on the 0.44 version which used websocketpp instead. I've also noticed that it takes like ~30 seconds for me to connect to the server mentioned in the OP (and that server has been using websocketpp, not IXWebSockets). I'm not an expert in how the websocket protocol works, so I really don't understand what it's doing or why it takes so long to connect sometimes. Anyway, if you haven't tried it, you could try waiting for a minute upon seeing the orange "connecting..." bar; maybe that will work. (Or maybe you can find someone who understands websockets and ask them if they understand what's going on here -- if you do find someone, please do relay what they say to here!)

If worse comes to worst, you could try building it using websocketpp instead of IXWebSockets -- I've gotten websocketpp to work on windows on my own, it just seems the boost date_time dependency is problematic on the build server. Building on windows sure is a pain though, so I hope there's a way to solve your problem without having to build it manually.

The graphics didn't seem to install correctly (I used the all-in-one .bat downloader/installer) - i've got walls and trees... and dwarfs, but a lot of sprites are missing. (Phoebus) Is it because I f'ed up the install, or is it not fully supported, or can I manually fix it orrrr?

Right now dfplex does not support any graphics other than just tilesets. (Eventually graphics support may be added.) Furthermore, it does not use the tileset specified in the data folder. Rather, the tilesets available to use with dfplex are in hack/www/art. You can add your own tileset to that folder.

Additionally, you must edit config.js in the www folder (it might be in the js subfolder) to set the three tilesets (map, text, area/overworld). Client players will use those by default, but they can change the tileset by adjusting a url parameter if desired (see the main post for details).

9
Edit: New issue, now my browser isn't connecting, and the game isn't having any issues playing in the main window. dfhack is reporting that I'm trying to connect, but the browser only says "Connection Error - Click to retry", with an empty FPS box in the corner, and "- players" in another corner.

Edit2: dfplex_server.log has something interesting to say.
Code: [Select]
A new client has joined.
  Client addr: "???"
  Client is admin.
Further, stdout.log has no text whatsoever, while in the older version (which I installed with the batch file), the file had the lines
Code: [Select]
[2020-05-18 19:28:01] [DFPLEX] Dwarfplex websocket serving on 1234
[2020-05-18 19:28:01] [DFPLEX] (Do not connect to this in your browser.)
which I assume means something. So since that's not happening in this version... what did I break?

Hmm, try editing data/init/dfplex.txt to change the port, perhaps that will work? It's strange that you don't see anything regarding the 1234 websocket port in the stdout.

10
HI everyone. Great tool!
I wanted to use it to teach a friend of mine some basic DF, but we have a distortion on the display of tilesets no matter which one we use.

https://imgur.com/a/cb6wRES

Those green tiles appear no matter wich tileset we manage to configure. Anyone has any idea what's happening? Or how i could diagnose it?

I'm not sure exactly, but you can get some graphical problems if the three tilesets (text, area, and map) are different sizes. Make sure you've set all three in config.js, or try connecting to localhost:8000/dfplex.html?tiles=curses_800x600.png&text=curses_800x600.png&overworld=curses_800x600.png (on your machine after starting the game). This uses URL parameters to set the tileset in the browser.

Additionally, you can try using a different browser -- I've had no problems with Firefox.

11
Version 0.2 is out! Compatible with DFHack 0.47.04-r1.

Changelog TBA.

12
Been working really well for us, though the most disheartening thing is we often crash (pressing backslash doesn't do anything in that scenario)... we have to save every 5 minutes or so in order to make sure we don't lose too much gameplay as a crash happens once every 10-15 minutes at least.

Is there anywhere useful I can look in the event of a crash to provide logs and hopefully try to narrow down why it is happening? I've looked into stderr and it seems mostly empty, dfhack doesn't help much either.

That's unfortunate. Other than those two places, there isn't really anywhere else to look in the event of a crash, unless you're willing to run the game under gdb and print a backtrace when it crashes. I've just now gone and wrapped the main update in a try/catch which should help with error reporting in the future -- starting with the next version release though, of course.

13
Then I open a Chrome window and connect to the local host.  It works, and I get whatever tileset I added to the init file.  But it doesn't show any menus.  In the main game, (Win64) pressing tab will cycle through showing menus, a mini-map, or a mini-map and a menu.  The tab key on Chrome doesn't register at all for my connection.

I think CHANGETAB is the key that you want to remap in data/init/interface.txt. You could set it to a different key, like "f", if tab is giving you problems. You can also try using Firefox. I'm not sure exactly what the problem is though.

14
Some of the features you requested and bugs you've reported have already been fixed/implemented, there's just been some trouble getting the windows build working for version 2.

Also, I noticed all the tilesets in the /hack/www/art/ folder are 256x256, so I resized the tileset I was trying to make work to that, and it works. No more garbled mess. It's a bit less clear than it had been, but I can make it out now.

Arbitrary tileset size is now possible (thanks to BenLubar and algane on GitHub).

The following things also work in V2:

Reports screen (r), cannot navigate or view individual reports.
Follow (v>f), does not close units screen or follow dwarf.

Building (not engraving) track (b>C>T)
Uniform creation - selecting Legs, Materials, Helmets, etc, resets back to Armor (A) menu.

Ability to lock or unlock "cycle zoom" to follow other clients (so when they move their view while you're looking at them with it locked, yours moves too)

Your other suggestions are all really good. I'll try to implement/fix all those for version 3.

15
Well, on the off chance Putnam ever (EVER) decides to return to the fortbent project (which is a huge ask, and a big if), and these two projects ever happen to be compatible with the same DF projects, I will try to combine them. :P Knowing that they will likely fail, as hivebent has a massive amount of dfhack scripting afaik.

Is this an attempt to recreate the true SBURB experience in dwarf fortress? :o

Thanks for the detailed write-up. So if I understand well, things like set-and-forget tweaks would work, but advanced UI modifications like manipulator would fail?

One-off commands are very likely to work. I think manipulator partially works, last I checked. At least, it opened and I could scroll.

Also, would it be possible to render different tilesets depending on the client?

It already is possible if the client enters something into their URL. It's a temporary solution. See this explanation by the authors of webfort. Not all of those parameters are still valid.

Pages: [1] 2 3