Giter Site home page Giter Site logo

Comments (10)

jminor avatar jminor commented on June 3, 2024 2

It fails to launch on M1/M2 based Macs because the application binary is universal (x86_64 and arm64) but the bundled libwebrtc_native.osx.release.64.dylib library is x86_64 only.
You can force it to run under Rosetta, by selecting the app icon in the Finder, pressing Cmd-I to open the inspector and then checking the "Open using Rosetta" checkbox. After that it will run properly.
Such a cool project! Thanks for making it :)

from tabletop-club.

jminor avatar jminor commented on June 3, 2024 1

I believe the command line tool lipo can combine two separate x86_64 and arm64 binaries into one universal one. Something like this should work: lipo foo_intel.dylib foo_arm.dylib -output foo_universal.dylib -create

from tabletop-club.

drwhut avatar drwhut commented on June 3, 2024

Yeah, I currently do not own certificates for Windows or macOS - but it is still possible to run the game on macOS by right-clicking the application and clicking "Open" (this may need to be done twice the first time around, and it should be possible even with the quarantine flag). Let me know if this works for you!

from tabletop-club.

MaximilianSiess avatar MaximilianSiess commented on June 3, 2024

Unfortunately the Problem remains, even when removing the flag and adding an exception, as far as I can tell. The error changes to "Tabletop Club quit unexpectedly", but the Report I get is identical to that posted by OP.

If I find the time I'll compile the Godot fork and try to take a look what the issue might be.

from tabletop-club.

drwhut avatar drwhut commented on June 3, 2024

Darn. Yeah, any help with getting the standalone macOS build working on other machines would be appreciated 👍 For those on macOS I recommend playing the game through the Itch app for the time being until this is fixed.

from tabletop-club.

doc-halo avatar doc-halo commented on June 3, 2024

I have a mid 2014 Macbook pro with Big Sur. It opens and runs fine when you right-click and choose open. I would assume this problem only occurs with newer apple products then.

from tabletop-club.

drwhut avatar drwhut commented on June 3, 2024

It fails to launch on M1/M2 based Macs because the application binary is universal (x86_64 and arm64) but the bundled libwebrtc_native.osx.release.64.dylib library is x86_64 only.

Ahh, that explains why the game works on older systems, but not newer ones!

Looking at the official webrtc-native library, it does look like there is an arm64 version of the library, but it is in a separate file:

[gd_resource type="GDNativeLibrary" format=2]



[resource]

singleton = true

reloadable = false

entry/OSX.64 = "res://webrtc/lib/libwebrtc_native.osx.release.64.dylib"

entry/OSX.arm64 = "res://webrtc/lib/libwebrtc_native.osx.release.arm64.dylib"

Since the main binary is universal, here's my initial solutions from nicest to not nicest:

  • Include both the x86_64 and arm64 libraries as separate files in the universal build, and have the binary pick the correct one at runtime.
  • Create a universal library containing both x86_64 and arm64 architectures, and include that instead. Would mean having to compile the library from scratch.
  • Create separate macOS builds of the game for x86_64 and arm64. Not ideal, would like to avoid if at all possible.

I'll do some research on how to solve this in the near future, I can't be the only one who's had this problem surely?

from tabletop-club.

drwhut avatar drwhut commented on June 3, 2024

I've been tinkering with this today - I initially attempted to merge the two dynamic libraries together, but failed when I realised there is no second library 🤦 Even though the .tres file references an arm64 library, only the x86_64 one exists: libwebrtc_native.osx.release.64.dylib.

So I attempted to build it from source on my MacBook, and lo and behold, I can't get it to even compile for x86_64, let alone arm64 😭 There's several issues with building the original WebRTC library in the same branch that the rest of the platforms use.

However, that's all for version 0.5 of the library (the current stable version) - at the time of writing, there is a v1.0.0-rc1 release that includes both x86_64 and arm64 libraries for both Godot 4 and 3. I was planning to use it for v0.2.0 of the game since it will use Godot 3.5.2, but I may attempt to use it for v0.1.x to get this error fixed, even if it says Godot 3.4.x is not officially supported.

Will keep you all updated on this 👍 I'm really hoping I can get the game working on ARM sooner rather than later...

from tabletop-club.

drwhut avatar drwhut commented on June 3, 2024

No such luck with the v1.0.0-rc1 build... the library loads fine on macOS (after correcting a spelling error), and it sends offers, answers and candidates to my Linux machine, but it just... doesn't establish the connection:

Joining game with room code IVDG...
Connecting to master server at 'wss://tabletop-club.duckdns.org:9080' with room code 'IVDG'...
Connected to the room as peer 236816019.
Peer 1 has connected.
Creating a connection for peer 1...
Joined room IVDG.
Received offer from peer 1.
Created answer for peer 1.
Received candidate from peer 1.
Received candidate from peer 1.
Received candidate from peer 1.

Unless someone can find a fix for this, I'm not sure if I am able to include an arm64 version of the WebRTC library until the game uses Godot 3.5 (which will be in v0.2.0) - until then, it looks like you can run the x86_64 version via Rosetta.

from tabletop-club.

belthesar avatar belthesar commented on June 3, 2024

Thanks for all of the information. Looking forward to v0.2.0!

from tabletop-club.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.