Skip to content

Add Host/Join landing page to online lobby#9899

Open
MostCromulent wants to merge 9 commits intoCard-Forge:masterfrom
MostCromulent:host-join-buttons
Open

Add Host/Join landing page to online lobby#9899
MostCromulent wants to merge 9 commits intoCard-Forge:masterfrom
MostCromulent:host-join-buttons

Conversation

@MostCromulent
Copy link
Copy Markdown
Contributor

@MostCromulent MostCromulent commented Feb 23, 2026

Replaces the current "Start Server" entry point on both desktop and mobile with a consistent landing page with Host Game / Join Game buttons, warning about bugs, and link to network play wiki page.

Host game goes immediately to lobby screen with Server URL popup, Join game prompts for server IP address and port.

Screenshot 2026-02-24 074752 Screenshot 2026-02-28 142531

MostCromulent and others added 2 commits February 23, 2026 22:24
Replace the single lobby entry point with dedicated Host and Join buttons
on both desktop and mobile. Desktop gets an info panel with warning text
and a link to the Network Play guide. Mobile uses the preferred-screen
pattern for navigation. NetConnectUtil is refactored to separate
host setup (ensurePlayerName) from join setup (getJoinServerUrl).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Mirror the desktop landing page on mobile: show warning text, guide
link, and separate Host/Join buttons before any connection is made.
Previously, tapping "Play Online" immediately started hosting with no
choice, and switching to Join skipped the IP address dialog.

- Replace Host/Join menu entries with single Lobby entry in OnlineMenu
- Add landing page components to OnlineLobbyScreen (title, warning,
  guide link, Host/Join buttons) with proper show/hide on connect
- Replace desktop JEditorPane hyperlink with FLabel for single-click
- Add setLobbyControlsVisible() to LobbyScreen for landing/lobby toggle

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@tool4ever tool4ever added the GUI label Feb 23, 2026
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@tool4ever tool4ever left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hmn, not sure I see the benefit of so much extra code for essentially adding another button click into the workflow 🤷‍♂️

but maybe another Dev does, so I'll try to sit this one out in favor of some time for eventually reaching delta sync in my backlog 😅

@tool4ever tool4ever requested review from Hanmac and Jetz72 February 24, 2026 11:29
@Hanmac Hanmac added the Netplay label Feb 24, 2026
@MostCromulent
Copy link
Copy Markdown
Contributor Author

MostCromulent commented Feb 24, 2026

No problem.

Understand if devs think this is unnecessary - basic intention was 1) get the network configuration guide in front of users at an early stage and b) the current "leave IP address blank to host server, enter IP address to join server" isn't the most intuitive at a glance. (Admittedly people get over this, but I thought may as well try and reduce friction).

(Also I don't think this adds to number of UI interactions to enter game because currently you go Online menu > Start Server > IP address screen, whereas this cuts out the Start Server interaction by putting Host/Join straight in the Online menu.)

@Jetz72
Copy link
Copy Markdown
Contributor

Jetz72 commented Feb 25, 2026

I'm in favor of it. Combining joining the join server and host server into one UI and code pipeline contingent on leaving a textbox empty made was kind of a janky design.

…ghten spacing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Resolve conflict in Network-Play.md: keep step 7 numbering from
host-join-buttons, take "(=FORGE on older phone keypads)" text from master.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
RafaelHGOliveira pushed a commit to RafaelHGOliveira/forge that referenced this pull request Apr 6, 2026
…adapted)

- Replace single "Connect to Server" button with landing page showing
  Host a Game / Join a Game buttons, a warning and a wiki guide link
- Split connectToServer() into hostGame() + joinGame() in controller
- joinGame() opens our existing favorites/history server picker
- hostGame() goes directly to server start (no dialog), then shows
  the address table so the host can share the URL
- Add ensurePlayerName() and getJoinServerUrl() to NetConnectUtil
- Remove "Host" button from join dialog (host is now a separate flow)
- Add 6 new i18n strings (lblHostGame, lblJoinGame, etc.)
MostCromulent and others added 3 commits April 9, 2026 06:06
The showLanding boolean was just a cached mirror of getGameLobby() == null:
the field was set to true/false in lockstep with setGameLobby() calls and
never read independently. Drop the field and key the layout branch directly
off getGameLobby() == null in doLayoutAboveBtnStart(), removing the only
source of truth/cache split in this class.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- HomeScreen: revert "Play Online" home button to OnlineScreen.Lobby.open().
  The previous getPreferredScreen() call could open Chat instead of the
  lobby landing if the user had last visited Chat from the in-game online
  menu — a regression from the pre-branch behavior.
- Drop dead localization keys lblOnlineMultiplayerDest and lblConnectToServer
  from en-US.properties (no remaining Java references after the Host/Join
  split).
- Localize the Eldrazi title via new lblOnlineEldraziTitle key, used by
  both desktop VSubmenuOnlineLobby and mobile OnlineLobbyScreen. The
  string was previously hardcoded in two places after being lifted out
  of lblOnlineMultiplayerDest, where it had been translated.
- Strip section-marker / restating comments from both lobby files per
  the no-restating-comments guideline.
- Add ForgeConstants.NETWORK_PLAY_WIKI_URL and use it from both desktop
  and mobile, replacing the duplicated literal.
- Mobile OnlineLobbyScreen: import com.badlogic.gdx.Gdx instead of using
  the fully qualified name, and merge the new forge.* imports into
  alphabetical order.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
RafaelHGOliveira added a commit to RafaelHGOliveira/forge that referenced this pull request Apr 9, 2026
…adapted)

- Replace single "Connect to Server" button with landing page showing
  Host a Game / Join a Game buttons, a warning and a wiki guide link
- Split connectToServer() into hostGame() + joinGame() in controller
- joinGame() opens our existing favorites/history server picker
- hostGame() goes directly to server start (no dialog), then shows
  the address table so the host can share the URL
- Add ensurePlayerName() and getJoinServerUrl() to NetConnectUtil
- Remove "Host" button from join dialog (host is now a separate flow)
- Add 6 new i18n strings (lblHostGame, lblJoinGame, etc.)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants