Multihead support #10

Open
opened 2021-01-28 17:42:52 +10:30 by birdulon · 0 comments
Owner

While multiplayer on a single monitor is technically possible (with a few more additions), it is considerably more useful to support multiple screens for multiplayer. In the case of radial, this allows 2+ players to have full-sized (43") control stations instead of compromising and shrinking, or requiring a larger touchscreen for side-by-side. In the case of dance, 2 player side-by-side is well-serviced by a single screen, but it can get cramped doing 4 or more in this manner. Being able to spread 4 players/mats across 2 screens would be very useful in this regard, especially as it would enable the screens to be physically separated to allow a much more spacious wider setup.

Multi-window is practically impossible on Godot 3.x, so any solution involving that would need to be on Godot 4.x at a later date. Our implementation should be strictly limited to a single large window spread across multiple screens, either vertically or horizontally laid out (or even in a grid which would likely be optimal if we go beyond 2 screens). These of course only refer to how the display manager arranges the displays and not to the real physical layout which can have a lot of freedom in dedicated game arrangements.

As such, the following tasks will need to be completed:

  • Make a video singleton that renders to a viewport so that every other source can copy the texture (we can't afford to decode multiple times) - Done in cda5f5ac3b

  • Finish refactoring radial game mode to allow multiple instances with master-slave control (keep potential netplay in mind when designing this)

  • Look into if i3wm can allow us to do this without making the window float and inducing headaches there (not a show-stopper)

While multiplayer on a single monitor is technically possible (with a few more additions), it is considerably more useful to support multiple screens for multiplayer. In the case of `radial`, this allows 2+ players to have full-sized (43") control stations instead of compromising and shrinking, or requiring a larger touchscreen for side-by-side. In the case of `dance`, 2 player side-by-side is well-serviced by a single screen, but it can get cramped doing 4 or more in this manner. Being able to spread 4 players/mats across 2 screens would be very useful in this regard, especially as it would enable the screens to be physically separated to allow a much more spacious wider setup. Multi-window is practically impossible on Godot 3.x, so any solution involving that would need to be on Godot 4.x at a later date. Our implementation should be strictly limited to a single large window spread across multiple screens, either vertically or horizontally laid out (or even in a grid which would likely be optimal if we go beyond 2 screens). These of course only refer to how the display manager arranges the displays and not to the real physical layout which can have a lot of freedom in dedicated game arrangements. As such, the following tasks will need to be completed: - [x] Make a video singleton that renders to a viewport so that every other source can copy the texture (we can't afford to decode multiple times) - Done in cda5f5ac3b - [ ] Finish refactoring radial game mode to allow multiple instances with master-slave control (keep potential netplay in mind when designing this) - [ ] Look into if i3wm can allow us to do this without making the window float and inducing headaches there (not a show-stopper)
birdulon added the
enhancement
label 2021-01-28 17:42:52 +10:30
birdulon self-assigned this 2021-01-28 17:42:52 +10:30
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: birdulon/RhythmGame#10
No description provided.