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.

Topics - alexchandel

Pages: [1]
1
DF Suggestions / Key binding for muting sound
« on: January 07, 2019, 11:32:23 pm »
A keybinding option for turning sound on/off.  Currently this can only be done from the init file.  There isn't even a keybinding option to raise or lower volume.

2
What would it take to run DF in dwarf-mode without actually running the game loop? In other words, to populate the memory structures in df::global (for example, using data from RemoteFortressReader) and to allow in-game menus to operate, but not to spin the game-logic loop (i.e. no pathfinding, no combat simulation, no time progression whatsoever), nor to let the in-game menus write to df::global (ideally), rather capturing the user's requested changes (e.g. enabling a labor on a dwarf) and sending them elsewhere (for example, over RemoteFortressReader).

Is DFHack currently capable of this?
  • Is DFHack capable of preventing the game-logic loop from running, and populating/updating df::global with data from RemoteFortressReader between frames?
  • What about intercepting user actions from the UI (e.g. a designation, adding a new task for a workshop) and sending them over RemoteFortressReader? Can DFHack at least copy user actions and send them over RemoteFortressReader (with the local result later overwritten by an update, as described above)?

Note that blocking the game-logic loop isn't exactly equivalent to pausing (although presumably it would happen via the same code), because whether the "*PAUSED*" label is displayed on the UI would depend on what is populated into df::global. Even if it isn't displayed (if RemoteFortressReader is reading from a remote game that is unpaused), the local game-logic must not run.

Note also that since game data is coming from elsewhere (RemoteFortressReader), there are no local save files. So DFHack needs a way to get the program from the main menu to a state where it's running dwarf-mode on data whose initial state was supplied by DFHack.

This builds off another thread about simultaneous multiplayer and a Dwarf Fortress network client.

Edit: presumably dwarf-mode's core loop will still run, but the portion that runs when a normal game is *unpaused* should be suppressed. This amounts to DFHack keeping the game "paused" regardless of whether it says it's paused or not.

3
DF Dwarf Mode Discussion / Simultaneous multiplayer is feasible
« on: December 17, 2017, 02:23:24 am »
Now that Remote Fortress Reader exists, simultaneous multiplayer is finally possible to implement well. Specifically, you could design a client that queries a running fortress via RFR, displays the same menus/information DF displays, & submits changes back to the game with RFR.

The primary questions are how pausing works (Should it pause when either player opens a menu? Should pausing be decoupled from menus in multiplayer?), and, assuming time can pass in simultaneous multiplayer when one player's in a menu, whether the existing menu can code cope with background changes. (Does drafting a dwarf who died in the background merely have no effect? Will he be dynamically removed from the menu as he dies? Will the menu just close? Will the game crash? Will DF eat your laundry?)

A game that runs in the background while you're busy inspecting the status screen could lead to unique/unusual amounts of "fun," so I'm all for it.

Also as a side concern, one might want to pump the gamelog updates over RFR too, so remote clients can use SoundSense.

Edit:

I'm imagining a client-server model, where only one player runs the game logic. The others just connect with "viewers" that merely let them remotely view slices of the game state & manipulate it, as the real DF window does.

Pages: [1]