Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiplayer Beta #774

Open
wants to merge 194 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
194 commits
Select commit Hold shift + click to select a range
dd1f515
WIP UI
mikeskydev Oct 13, 2023
a0ad425
Fix panel spawn
mikeskydev Oct 16, 2023
774196c
Add MP panel to list
mikeskydev Oct 16, 2023
ed48bef
Oculus connection logic for testing
mikeskydev Oct 16, 2023
52c54ff
Join logic
mikeskydev Oct 16, 2023
a23f473
WIP panel
mikeskydev Oct 16, 2023
5d45586
Setup new button type, fix close button
mikeskydev Oct 17, 2023
99b54d1
Change instantiation point of photon runner
mikeskydev Oct 18, 2023
87c9a62
beta tag prefab
mikeskydev Dec 7, 2023
3ee080a
Add alpha tag to multiplayer
mikeskydev Dec 7, 2023
2fbf009
Merge remote-tracking branch 'origin/main' into multiplayer/ui
andybak Dec 21, 2023
3882616
Remove duplicate "using" block
andybak Dec 22, 2023
33efddc
Merge branch 'main' into multiplayer/ui
mikeskydev Feb 11, 2024
2e03443
Merge remote-tracking branch 'origin/main' into multiplayer/ui
andybak May 19, 2024
e90d5dc
Merge branch 'main' into multiplayer/ui
mikeskydev May 21, 2024
b4cc4ec
Merge remote-tracking branch 'origin/main' into multiplayer/ui
andybak Sep 26, 2024
de5499a
Trigger CI workflow
sbanca Oct 3, 2024
4fe8071
Minimal UI Implementation for multiplayer room
sbanca Oct 7, 2024
defb047
Merge remote-tracking branch 'origin/main' into multiplayer/ui
andybak Oct 7, 2024
ad8281b
Merge branch 'multiplayer/ui' of https://github.com/icosa-foundation/…
andybak Oct 7, 2024
cf83975
Numeric keyboard popup for multiplayer room
andybak Oct 7, 2024
16d3746
Buttons were too close to panel
andybak Oct 7, 2024
1637dc9
Don't init XR manager on start
andybak Oct 7, 2024
ba14137
OpenXR should be the default in the editor
andybak Oct 7, 2024
ada058c
Admin panel label tweaks
andybak Oct 7, 2024
7a2b832
Initialize keyboard with room name and refactor room name handling
sbanca Oct 7, 2024
02dbcfe
Does Room exist
sbanca Oct 7, 2024
af158cc
Update MultiplayerManager.cs
sbanca Oct 7, 2024
af7a389
Merge remote-tracking branch 'origin/main' into multiplayer/ui
andybak Oct 9, 2024
50e7266
Merge branch 'multiplayer/ui' of https://github.com/icosa-foundation/…
andybak Oct 9, 2024
3e3bc6f
Remove graphview reference
andybak Oct 9, 2024
562b5bd
dotnet format
andybak Oct 9, 2024
a8e177b
Add Disconnection Handling for Multiplayer Mode Update
sbanca Oct 10, 2024
438a276
Add Leave Room button
sbanca Oct 10, 2024
f2d2108
Update PhotonPlayerRig.prefab
sbanca Oct 13, 2024
b9fcd27
Update MultiplayerPanel.prefab
sbanca Oct 14, 2024
fc4d431
Editor UI to test connection to the room
sbanca Oct 14, 2024
3213254
Reducing payload per Stroke Chunk
sbanca Oct 14, 2024
0c07316
update Build GitHub Actions workflow (build.yml) to use the new photo…
sbanca Oct 15, 2024
eed2b6a
Update PopUpWindow_NumericKeyboard.prefab
sbanca Oct 15, 2024
0bb5dfe
Include Photon Fusion project-specific assets in version control
sbanca Oct 15, 2024
ba5a48d
Include NetworkPrefabAssetCollection.asset in version control
sbanca Oct 15, 2024
29ce9ff
Update PhotonPlayerRig.prefab
sbanca Oct 15, 2024
f45546b
removing the NetworkPrefbAssetCollection
sbanca Oct 15, 2024
20e4a8b
Track PhotonAppSettings
sbanca Oct 17, 2024
2543d85
Rebake PhotonPlayerRig
sbanca Oct 17, 2024
69f666b
Update SketchControlsScript.cs
sbanca Oct 20, 2024
6f13bb7
Update MultiplayerPanel.cs
sbanca Oct 20, 2024
ee77722
Handle the removal of the player rig when leaving the room
sbanca Oct 20, 2024
8a589a0
Update PhotonManager.cs
sbanca Oct 20, 2024
e7843f2
Update SketchControlsScript.cs
sbanca Oct 20, 2024
e5de53b
Create NetworkPrefabAssetCollection.asset
sbanca Oct 21, 2024
c93c7ba
Update build.yml
sbanca Oct 22, 2024
0febc5f
Fix reconnection issue by re-initializing NetworkRunner after shutdown
sbanca Oct 22, 2024
be87fc0
Lock panels to beginner mode when a user enters a multiplayer room
sbanca Oct 23, 2024
ea32df6
Update MultiplayerPanel.cs
sbanca Oct 23, 2024
70a829f
RPC Implementation of the Switch Environment Command
sbanca Oct 24, 2024
c9b0d08
fix pre-commit yml
sbanca Oct 24, 2024
da36f78
fixing RPC Implementation of the Switch Environment Command
sbanca Oct 24, 2024
dca4e65
Add Photon Voice Secrets
sbanca Oct 24, 2024
c37fe15
Update AndroidManifest.xml
sbanca Oct 25, 2024
f79c346
Photon Voice Integration
sbanca Oct 25, 2024
93ae3a2
Update tag icosa-mirror/photon-fusion on build.yml [skip ci]
sbanca Oct 25, 2024
daec52c
Trigger CI build
sbanca Oct 25, 2024
2a9a33a
Update list of symbols
sbanca Oct 25, 2024
ef6c585
Update MultiplayerManager.cs
sbanca Oct 26, 2024
15a6992
Trigger CI Build
sbanca Oct 27, 2024
69179af
[CI BUILD] Trigger CI Build
sbanca Oct 27, 2024
d31bd45
Merge branch 'main' into multiplayer/ui
sbanca Oct 28, 2024
88d92e3
Tiding Up Interface Connection Handler
sbanca Oct 29, 2024
ecf162d
New Icons
sbanca Oct 29, 2024
c3926e7
Updates To The Multiplayer UI
sbanca Oct 29, 2024
d3a8189
Adding Disconnect Logic
sbanca Oct 30, 2024
5d3073f
Fixing logging messages
sbanca Oct 30, 2024
6921487
Add Alerts/Errors to multiplayer UI
sbanca Oct 30, 2024
21d659d
dos2unix
mikeage Oct 31, 2024
981175a
Changes to MultiplayerManager
sbanca Oct 31, 2024
d66509c
more dos2unix
mikeage Oct 31, 2024
0bdd4ec
Force Windows to use LF line endings for .cs and .py files
sbanca Oct 31, 2024
c99e7c5
Update BaseCommand.cs
sbanca Nov 4, 2024
09c20cf
Fix the mirror for multiplayer
sbanca Nov 5, 2024
4770165
Fix Check if Room Exist
sbanca Nov 7, 2024
18560a7
Room Owner
sbanca Nov 7, 2024
22e7df7
Implement basic history synchronization
sbanca Nov 8, 2024
2eaac25
Clear scene for non-room owner players on join
sbanca Nov 8, 2024
ff80520
Improving Remote Player Registration
sbanca Nov 8, 2024
cd2eab3
Fix Remote User List Clearing
sbanca Nov 8, 2024
3445c02
Update MultiplayerManagerEditor.cs
sbanca Nov 8, 2024
31e1fff
Merge branch 'main' into multiplayer/ui
sbanca Nov 9, 2024
88447de
Introduce coroutine for sending command history via Photon network
sbanca Nov 11, 2024
4517258
GUIDs check and consistency between peers
sbanca Nov 11, 2024
bdcea97
Networking isRoomOwner
sbanca Nov 11, 2024
ac4c240
Room Ownership logic updated
sbanca Nov 11, 2024
00033e2
Room Ownership logic updated
sbanca Nov 11, 2024
5ca5b49
Merge branch 'multiplayer/ui' of https://github.com/icosa-foundation/…
sbanca Nov 11, 2024
2ba33c7
Room Ownership logic updated
sbanca Nov 11, 2024
15e1f1a
Headset scale added to player rig
sbanca Nov 13, 2024
c3e3ce6
Controllers Added to the player rig
sbanca Nov 13, 2024
8beeb04
Set Undo and Redo unavailable while connected
sbanca Nov 14, 2024
72936ea
Updating Connect and Disconnect Logic in the UI
sbanca Nov 14, 2024
b38b663
Display Room Ownership on the UI
sbanca Nov 14, 2024
d1fc5cd
Fix display of room Ownership
sbanca Nov 14, 2024
3b4ba55
Fix null reference issues in PhotonPlayerRig
sbanca Nov 14, 2024
5454676
Fix invalid localScale assignment due to extreme SceneScale values
sbanca Nov 14, 2024
548057e
Updating UI command descriptions for Multiplayer UI
sbanca Nov 15, 2024
1d51791
Resolve Controller Flickering
sbanca Nov 15, 2024
4f84db6
Update MultiplayerManager.cs
sbanca Nov 15, 2024
fd31d00
Prevent Access to Networked Properties After PhotonPlayerRig Despawns
sbanca Nov 15, 2024
f670ae1
RecieveData to ReceiveData
sbanca Nov 15, 2024
01f78c5
Disable Undo/Redo in Multiplayer specifically Controller buttons
sbanca Nov 15, 2024
72c68ca
Disable loading sketches when in multiplayer mode
sbanca Nov 15, 2024
91fec4f
hiding extra button on prefab
sbanca Nov 15, 2024
9c96f86
[CI BUILD]
andybak Nov 19, 2024
fae21b9
Removing m_GuidCache
sbanca Nov 27, 2024
e831cca
Separation of Command Stacks
sbanca Nov 27, 2024
e51d1b2
Update to SendCommandHistory() to include the network command stack
sbanca Nov 27, 2024
e59470a
Introduce networked timestamps for commands
sbanca Nov 27, 2024
aa8d3d4
Clear NetworkStack in ClearMemory() to prevent command reception iss…
sbanca Nov 28, 2024
c5498cb
Update BaseCommand.cs
sbanca Nov 28, 2024
62222a7
Updating to Room Owner Logic
sbanca Nov 28, 2024
0ad6d4f
Implementing Reference StrokeData to BrushStrokeCommands
sbanca Nov 28, 2024
993812f
Identify Command-less Strokes
sbanca Nov 28, 2024
7907807
Implementing command-less Strokes Synchronization
sbanca Nov 28, 2024
d8304b1
Implement Estimation of Command-to-Network-Message Conversion
sbanca Nov 29, 2024
1094b98
Reducing log level for pun fusion and voice
sbanca Dec 2, 2024
d7eb820
Limiting sequential execution of the SendStrokesAndCommandHistory co…
sbanca Dec 2, 2024
9b25897
Test reliable for brush commands
sbanca Dec 2, 2024
356fd22
Disable edit room and nickname buttons when in room
sbanca Dec 3, 2024
38722e9
Add a button to erase all text
sbanca Dec 3, 2024
93790d0
Implementing Sync Information for Users Joining Multiplayers Room
sbanca Dec 3, 2024
987764b
Implement Environment Synchronization for Sketch-Loaded Environments
sbanca Dec 3, 2024
2cdd501
Move History Synchronization Logic to his own class
sbanca Dec 4, 2024
146fd6f
Update HistorySynchronizationManager.cs
sbanca Dec 4, 2024
389c704
Update PhotonRPC.cs
sbanca Dec 4, 2024
2ea415d
Implement Acknowledgment-Based History Synchronization to Ensure Reli…
sbanca Dec 4, 2024
7f921f9
Switching to Photon Fusion 2 [skip ci]
sbanca Dec 5, 2024
59a94b5
Implementing Large Data Streaming [skip ci]
sbanca Dec 5, 2024
3eba50f
Update build.yml
sbanca Dec 5, 2024
330aa5b
Update UnityGLTFSettings.asset
sbanca Dec 5, 2024
0192aac
Fix formatting in Multiplayer defines
mikeage Dec 5, 2024
d517cb2
Update PhotonManager.cs
sbanca Dec 5, 2024
3e996ee
Multiplayer Stroke Serialization
sbanca Dec 6, 2024
181ee34
Merge branch 'main' into multiplayer/ui
sbanca Dec 6, 2024
0b4bdc4
Multiplayer Scene Sync
sbanca Dec 10, 2024
7d2f22f
Merge branch 'multiplayer/ui' of https://github.com/icosa-foundation/…
sbanca Dec 10, 2024
330e69e
Implement display of progress for stroke synchronization
sbanca Dec 10, 2024
de58f16
Merge branch 'main' into multiplayer/ui
sbanca Dec 11, 2024
65d3a8a
Change Label on menu alpha->beta
sbanca Dec 11, 2024
5d623a2
Implement failsafe logic for GenerateUniqueRoomName
sbanca Dec 11, 2024
7c5c333
Hide nickname
sbanca Dec 12, 2024
2a249a5
Update MultiplayerPanel.cs
sbanca Dec 13, 2024
dbb7a8a
What's New Button On Admin Panel
sbanca Dec 13, 2024
26cf8c7
Implement avatar speaking feedback
sbanca Dec 13, 2024
e70f887
Implementing nickname display on remote avatars
sbanca Dec 13, 2024
7c322d1
changing TAB to beta
sbanca Dec 13, 2024
34d3153
Simplify connection state ConnectionState.IN_ROOM -> "In Room"
sbanca Dec 13, 2024
dcf37cb
Implement PhotonRPCBatcher to Reduce Network Congestion and Ensure Re…
sbanca Dec 14, 2024
21391ed
Revert unintended get_license.yml change
mikeage Dec 16, 2024
8aaa1a0
Merge remote-tracking branch 'openbrush/main' into multiplayer/ui
mikeage Dec 16, 2024
6dddd5b
Remote player controller size fix
sbanca Dec 18, 2024
2dca59a
Synch -> Sync
sbanca Dec 18, 2024
7c0a610
Sync not reaching 100% on display
sbanca Dec 18, 2024
6bbbbec
Nickname disappearing from panel after disconnection
sbanca Dec 18, 2024
914d5fd
Persistent nickname
sbanca Dec 18, 2024
f52e95c
What's New" button string overwritten Fix
sbanca Dec 18, 2024
5e9fe05
New Define -> MP_PHOTON
sbanca Dec 18, 2024
6c55e12
Update README.md
sbanca Dec 18, 2024
3bc4043
Missing En Description
sbanca Dec 18, 2024
c017b45
Fix Labs and Scripts panels
andybak Dec 18, 2024
6f494e5
Disable clear sketch when in multiplayer
sbanca Dec 18, 2024
c464d92
Merge branch 'multiplayer/ui' of https://github.com/icosa-foundation/…
sbanca Dec 18, 2024
29ee1e0
Update PhotonStructs.cs
sbanca Dec 18, 2024
350bc06
Merge branch 'main' into multiplayer/ui
sbanca Dec 18, 2024
ae2de6c
Update MultiplayerPanel.prefab
sbanca Dec 18, 2024
6519cd8
Merge branch 'multiplayer/ui' of https://github.com/icosa-foundation/…
sbanca Dec 18, 2024
ba44b0f
Localization Added for Multiplayer Panel
sbanca Dec 19, 2024
f7ea16e
InitialiSing -> InitialiZing
sbanca Dec 19, 2024
5988e9c
UnamedUser -> UnnamedUser
sbanca Dec 19, 2024
66de97c
Update README.md
sbanca Dec 19, 2024
997dae2
Disable passthrough in multiplayer
sbanca Dec 19, 2024
38a2c88
Runtime switching for experimental brushes
andybak Dec 19, 2024
c05a7b6
Photon does not join (room full) Realtime Voice joins anyway
sbanca Dec 19, 2024
d20bc4c
Localization fix
sbanca Dec 19, 2024
f6bbc94
Icon experimental badges need to update all the time
andybak Dec 19, 2024
7b9f6a1
Add alert to check if passthrough environment is active
sbanca Dec 19, 2024
4712b79
Remove hardcoded passthrough GUID
sbanca Dec 19, 2024
0967bd5
Multiplayer admin menu string fix
sbanca Dec 19, 2024
a3185a0
Disable Join Button if in PassThrough mode
sbanca Dec 19, 2024
de95baa
PhotonPlayerRig -> TextMeshPro -> autosize
sbanca Dec 20, 2024
491519d
UnnamedUser -> Unnamed
sbanca Dec 20, 2024
98fd79f
Sync reaching 100% and complete
sbanca Dec 20, 2024
a3f963d
Merge branch 'feature/runtime-experimental-brush-switching' into mult…
sbanca Dec 20, 2024
a8f606d
Grey out the 'What's New' button on the admin panel.
sbanca Dec 20, 2024
fe7e9ed
Sync reaching 100% and complete
sbanca Dec 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 10 additions & 12 deletions Assets/Scripts/GUI/MultiplayerPanel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,24 @@
using OpenBrush.Multiplayer;
using TMPro;
using UnityEngine;
using static TiltBrush.SketchControlsScript;

namespace TiltBrush
{
public class MultiplayerPanel : BasePanel
{
[SerializeField] private TextMeshPro m_RoomNumberTextLobby;
[SerializeField] private TextMeshPro m_RoomNumberTextRoomSettings;
private PanelManager m_PanelManager;

public void SetRoomName(string roomName)
public string RoomName
{
data.roomName = roomName;
UpdateRoomNumberDisplay();
get { return data.roomName; }
set
{
data.roomName = value;
UpdateRoomNumberDisplay();
}
}

private RoomCreateData data = new RoomCreateData
Expand Down Expand Up @@ -60,16 +66,11 @@ public enum Mode
{
Null,
Lobby,
Joined,
//Create,
//RoomSettings,
//GeneralSettings
Joined
}

[SerializeField] private GameObject m_LobbyElements;
[SerializeField] private GameObject m_JoinedElements;
//[SerializeField] private GameObject m_RoomSettingsElements;
//[SerializeField] private GameObject m_GeneralSettingsElements;

private Mode m_CurrentMode;

Expand Down Expand Up @@ -115,8 +116,6 @@ private void UpdateMode(Mode newMode)
m_CurrentMode = newMode;
m_LobbyElements.SetActive(m_CurrentMode == Mode.Lobby);
m_JoinedElements.SetActive(m_CurrentMode == Mode.Joined);
//m_RoomSettingsElements.SetActive(m_CurrentMode == Mode.RoomSettings);
//m_GeneralSettingsElements.SetActive(m_CurrentMode == Mode.GeneralSettings);

// Update room number display if switching to a mode that shows it
if (m_CurrentMode == Mode.Lobby || m_CurrentMode == Mode.Joined)
Expand Down Expand Up @@ -153,7 +152,6 @@ public void OnMultiplayerPanelButtonPressed(MultiplayerPanelButton button)
break;
case SketchControlsScript.GlobalCommands.MultiplayerJoinRoom:
JoinRoom();
Debug.Log("Joining room");
break;
}
}
Expand Down
13 changes: 11 additions & 2 deletions Assets/Scripts/GUI/MultiplayerPanelButton.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
// limitations under the License.

using UnityEngine;
using static UnityEditor.Experimental.GraphView.GraphView;
andybak marked this conversation as resolved.
Show resolved Hide resolved

namespace TiltBrush
{
Expand All @@ -21,15 +22,23 @@ public class MultiplayerPanelButton : OptionButton
[SerializeField] private bool m_CommandIgnored = false;

override protected void OnButtonPressed()
{
{

MultiplayerPanel popup = m_Manager.GetComponent<MultiplayerPanel>();

// For some circumstances on mobile, we want to ignore the command, but still
// notify the popup that we were pressed. Which happens below.
if (!m_CommandIgnored)
{
if (m_RequiresPopup & m_Command == SketchControlsScript.GlobalCommands.EditMultiplayerRoomName)
{
KeyboardPopUpWindow.m_InitialText = popup.RoomName;
}

base.OnButtonPressed();
}

MultiplayerPanel popup = m_Manager.GetComponent<MultiplayerPanel>();

Debug.Assert(popup != null);
popup.OnMultiplayerPanelButtonPressed(this);
}
Expand Down
3 changes: 1 addition & 2 deletions Assets/Scripts/SketchControlsScript.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4514,11 +4514,10 @@ public void IssueGlobalCommand(GlobalCommands rEnum, int iParam1 = -1,
case GlobalCommands.EditMultiplayerRoomName:
{
var panel = (MultiplayerPanel)m_PanelManager.GetActivePanelByType(BasePanel.PanelType.Multiplayer);
panel.SetRoomName(KeyboardPopUpWindow.m_LastInput);
panel.RoomName = KeyboardPopUpWindow.m_LastInput;
DismissPopupOnCurrentGazeObject(false);
break;
}

case GlobalCommands.ShowWindowGUI:
break;
case GlobalCommands.Disco:
Expand Down