-
Notifications
You must be signed in to change notification settings - Fork 288
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
Test Duality on MacOS #287
Comments
I've tested with my friend's MacBook Pro, and all the sample project(Input, Shader, Audio Handling) threw same error regarding Following is the very error log.
You can check full log at following link. |
Plus, those project file are same thing which had been tested by my Ubuntu(Linux). |
Thanks for testing!
Hmm.. not sure what's happening here. Seems like there might be a problem with the underlying Edit: Some links from a quick research on this:
|
I just tested the gravity demo on my apple mac air and it worked perfectly. Mono ver 4.2.3 😄 |
OS X 10.11.5 Mono JIT compiler version 4.4.0 (tarball Wed Jun 15 18:28:03 BST 2016) I tested a SpaceInvaders sample I got from @RockyTV and got this:
|
Looks like it didn't locate a single plugin, and potentially some other core binaries as well. What does your folder look like? Is the sample you tested available somewhere online? |
|
Huh, that's strange. All the dll files are there, but the log looks like it couldn't locate a single plugin, and even some of the core files, which are defined in the Duality main assembly. I'll throw in some extra debug logs in future versions to help us track down this sort of issue. Until then, just guessing here: Could this be some sort of security / access issue? I've seen Duality run on a mac before. |
I've added some logs that could help us find the cause of this. Can you try again with the latest packages? |
@RockyTV If you're up for it would you build and host these again? |
|
Okay, so I must admit I'm stuck here. I'll write up what I think to know, maybe it will make sense to someone and help us clear things up. What we know
What seems a bit odd
Theories
How to proceed?Part of the problem debugging this is that I'm really not very proficient with Unix and MacOS. Ideally, someone who is able to reproduce the issue would check out the Duality source, open it up in Xamarin Studio, compile the parts that do compile and debug it with the launcher as startup project. I suspect that this option is currently not available though. So instead, I'll start guessing some things based on gut feeling and ask some silly questions in order to rule out potential external causes.
To the more Unix-savvy people here, is there any scenario where an application would be prohibited from enumerating files in a directory because of security configs / issues? |
Absolutely. If a directory doesn't have In both reports I ran this with
I get the exact same logfile with
All files and dirs are already marked as executable by everyeone (thank Windows for clobbering that) but I went ahead and
|
Allright, I've added some more logs. If you're up for another test, I've prepared another package. Should be roughly equal to what @RockyTV gave you. I've also moved some code around, so resolving types no longer depends on the system backend plugin, but on the plugin loader directly. It doesn't help us with the root problem here, but it makes more sense anyway. |
I'm so relieved to see this working. Thanks for your testing efforts and the fix you've come up with! Edit: I believe this might solve the problem that @sappho192 had before as well.
What does this line do exactly, and do you have an idea why it's necessary? |
Without it you will get:
So your application will pickup the local libgdiplus.dylib which System.Drawing asks for (but the local is just a link, not a copy, so when mono is updated this link will point to the most-current version). |
Ah, nice. Thanks! What I don't get though, this sounds like it's an entirely different issue than the one before. That log error you posted also wasn't in the previous logs - so, is this a new issue that came up after the first one was out of the way? If yes, how did you solve the first issue with Duality not being able to locate plugins? |
Is what a new issue? Having to link this file is just a bit of a wart in Mono. I simply unzipped the file you provided, |
I'm talking about the one you just solved by adding the symlink 😄 Just trying to make some sense of what happened under the hood, because the
Okay, so either the gdiplus one was somehow causing Duality not to be able to locate its plugins, or we somehow fixed the plugin one by accident. Weird. But anyway, I can settle with that for now. Thanks again. |
A friend has been trying to run using mono (Mono JIT comiler version 5.0.0.100) on a macOs 10.11.6. We tried @ilexp Did you add anything special to this package ? |
Nope, there shouldn't be anything special in there, except maybe for a few preview changes that weren't in any stable release back then. So that package worked, but your game didn't?
|
Hmm.. could this be a permissions issue? As we can see in line 29 and 30 of the logfile, the Duality launcher isn't able to find any plugin directory or assemblies to load:
This (expectedly) leads to not having a system, graphics or audio backend available:
So the core question is, why can't it locate the plugin directory? The working directory seems to be correct, assuming that's where the plugin folder is:
The source code where that folder should be identified is here, with the crucial (and default) bit here, which seems trivial. Can you check file permissions and other OS-related security measures that might prevent the launcher from accessing the file system structures around it? |
I don't know if it can't load plugins, since this only happens with games which contains .png files. |
What has changed between the non-working and the working version? Was it a security / permission issue?
Given the first logfile you posted, it seems unlikely that the error only exists when there are images in the project. Even though there is an image-related error in the log as well, that's a symptom of the underlying issue of not having any backend / plugin available. With no graphics, audio or system backend nothing can be loaded, displayed or played, even though the game logic itself might run fine otherwise. |
Hold on. |
What does "there aren't any folders because of \ instead of /" mean? I'm aware that the primary path separator char differs between Windows and Unix, but the Duality system backend should handle this internally once the system is up - however, in the non-working example the launcher didn't even get there. Are the folders physically missing...? And if yes, how did that happen? |
I think I found the culprit ! Results : Why ? Because it seems the zip file created by Dualitor uses \ instead of other caracters, which is not interpreted as a folder, but a huge file name. |
Ah, great find! Filed this as a separate issue, see #536. |
Duality runs with latest Mono (5.2, probably 5.0 too) on macOS 10.11 without any issues. |
Closing this issue, as it has been shown that Duality games can generally run on MacOS. Open separate issues for specific work items or bugs as they come up. Thanks to everyone who participated in testing this! |
Create a small project with Duality (or just use one of the sample projects) and check if it runs on MacOS using Mono. It will likely not - determine the breaking point and document it here, so it can be evaluated how to fix it.
This is specifically about launcher and core, not the editor.
Related: Issue #288
The text was updated successfully, but these errors were encountered: