FakeByte / EpicOnlineTransport

A Transport for Mirror using Epic Online Services
MIT License
252 stars 52 forks source link

Update to EOS SDK 1.15.1 #35

Open bphillips09 opened 2 years ago

bphillips09 commented 2 years ago

Note that iOS Framework and macOS Dev Tool are not included in this as they are >100MB

RoxDevvv commented 2 years ago

Hi, what is the news in your commit am going to start a project and i would like to know thank you

bphillips09 commented 2 years ago

@Roxgame95 It is working fine for me with limited testing. I have only tested Device ID and P2P on iOS/Windows/macOS Catalyst. I haven't tested Lobby or other functionality yet or other platforms (Android/Linux/macOS Native) but in theory it should work fine.

cabbagegod commented 2 years ago

Can't seem to get it working. Just trying to run the developer test just to see how it goes but can't even get that. For whatever reason it wont launch the auth account portal.

dperez-sn commented 1 year ago

I was able to get it to work locally but changing line 49 in EoSLobbyUI to this netManager.networkAddress = attributes.Find((x) => x.Data?.Key == hostAddressKey).Data.Value.Value.AsUtf8;

I also changed all instances of 'Value.ToString' for the lobby address to 'Value.Value.AsUtf8' to fix the naming issues.

RealHandy commented 1 year ago

I was able to get it to work locally but changing line 49 in EoSLobbyUI to this netManager.networkAddress = attributes.Find((x) => x.Data?.Key == hostAddressKey).Data.Value.Value.AsUtf8;

I also changed all instances of 'Value.ToString' for the lobby address to 'Value.Value.AsUtf8' to fix the naming issues.

Yes! It's working for me, but Value.Value.AsUtf8 is even needed for, like, getting the lobby name out of the lobby info when you get a list of lobbies. Otherwise, Value.ToString() returns the name of the Epic namespace of the data type, or something similar.

EliasVal commented 1 year ago

After updating the SDK to v1.15.5, My editor crashes every time I exit play mode. Any ideas?

EliasVal commented 1 year ago

I managed to narrow down the error, in EOSSDKComponent.cs:502:

#if UNITY_EDITOR
            if (libraryPointer != IntPtr.Zero) {
                Bindings.Unhook();

                // Free until the module ref count is 0
                while (FreeLibrary(libraryPointer) != 0) { }

                libraryPointer = IntPtr.Zero;
            }
#endif

Commenting out these lines fixes the crash. My guess is that it's something with the while loop, probably going into an infinite loop, since this is how Unity usually behaves when a loop never ends.

UPDATE: I was right, commenting out just the while (FreeLibrary(libraryPointer) != 0) { } line stops the crashing. UPDATE 2: I was wrong, It isn't the while loop that crashes the game, it is the FreeLibrary method.

EliasVal commented 1 year ago

As I've stated in the previous comment, the FreeLibrary method is what's actually causing the crash. I don't know how to fix this unfortunately so we'd have to wait for someone with more knowledge on how this works.

I've pinged FakeByte in the Discord server.

EliasVal commented 1 year ago

also, the libc++_shared.so files should be added back to the Plugins/Android/libs/ arm64-v8a & armeabi-v7a folders, otherwise the EOSSDK won't work on Android

MadkevOP7 commented 6 months ago

Hello, EOS transport is no longer maintained by FakeByte; I'm continuing to use it for my project, tho, and it has updated to SDK 1.15.1 as well. If you are interested, I'm hoping to collab to maintain it ;)