-
Notifications
You must be signed in to change notification settings - Fork 495
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
Issue #226 fix - made inklecate and tests project depend on ink-runtime-engine #227
Conversation
…t items in exchange to direct dll dependency.
…closure of internal members to an overly generic assemblies.
…e-runtime. Renamed tests project and fixed solution file issues.
…at the tests assembly has a "ink-' prefix. - Fixed bundle scripts that would have kooked up the now removed ink-engine-dll directory, and are made to refer to the correct ink-engine-runtime.dll
- nunit-console tests/bin/Debug/ink-tests.dll |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should not have missed that, but on Linux this file was initially hidden
Thanks for this! Note that it might be a little while until I have a chance to review it - we're really busy on a milestone for our new project - but I'm definitely planning to review and merge when I have moment :) |
That is strange, I will check this |
It did not load under Xamarin on Windows as well, but did not show an error. I removed the project and added it again, then added project references for ink-engine-runtime to the other two projects. It worked on MonoDevelop on Linux though. I hope it is all well now. |
Hmmm, so that loads okay now, thanks! Right now I'm having problems running my release build script (
It's failing to find the (Sorry for the lack of investigation at my end, I'm really tight on time at the mo!) |
I will get to the bottom of this. I think failures like this are somewhat expected now as the |
… it was not immediately recognized as dependency
Figured it out - as I initially suspected, since inklecate now depends explicity on ink-engine-runtime, mkbundle commands needs to have the ink-engine-runtime.dll listed alongside inklecate.exe in order to create a valid package. Thus I got fixed the missing file error. I am now getting an error "invalid option r" from the "cc -arch i386" options when running the build scripts on Ubuntu. Looks to me that this is some Mac-specific stuff, or is it not so? I have no Mac at my disposal otherwise I would have verified this myself, sorry for this. If the ink-engine-runtime.dll was the only issue you should have the script working. Otherwise we will investigate further. Hope its all OK. |
Great, that worked! So, I was almost ready for release, but hit one more snag :-( We like to include source for the runtime in the Unity plugin so that if it crashes in Unity, there's more information about where it went wrong. So we stopped using the runtime DLL there. However, if it's a requirement for inklecate.exe, then we'd need both - but I'd assume that Unity wouldn't be happy with that. Possible (or non-) solutions:
|
OK, if I understood the issue correctly, you want more information on ink-engine-runtime when it fails in a Unity game? And you are working this around by having the sources of the runtime as part of the unity plugin you've developed. If that is the situation, my intuitive reaction would be to ship the unity plugin along with the runtime. and include the runtime I could assist you with this one as well, but I need to have a look at the unity plugin first, which I have not seen yet. |
Hello Again. From what I am initially seeing, it appears that you are keeping the inklecate.exe alongside the unity plugin so that you can compile the stories to json. You have "a copy" of the ink-engine-runtime sources inside unity in order to play the stories within Unity itself. While certain reuse of the compiled ink-engine-runtime can be made, I do not see any reason for not keeping the sources within Unity as they are now. Anyway, here are some important things to notice, and to consider: Unity uses its own version of the .NET framework. It is likely that .dlls will not work well (or even not at all) in Unity if they have been compiled against the default .NET runtime, or if they use higher version of the framework than .NET 3.5. Therefore, having the ink-engine-runtime.dll in the Assets folder is not likely to contribute to reusing its functionality (since it is compiled against a standard v3.5 profile, not for the Unity subset). A possible side effect would also be that Unity still detects the runtime dll, and complain about it not being complied in a compatible way. The latter should not be a blocker, could be seen as bad user experience for not-so-adept Unity users. So, here are a few workarounds I believe would do the job without much changes:
I still have not played yet with these options but my experience with Unity and compiled dlls tells me we'd better not use dlls for Unity in this scenario. I will write again here if there is a more impact-less solution |
Okay, so Unity can have folders that aren't interpreted as assets, if their name is prepended by Edit: To hide folders from Unity, they need to be appended by |
Anyway, everything's merged and working nicely - just need to do a new round of releases now. Thanks! |
Nice, glad it worked out well. I am happy I've made a somewhat meaningful contribution |
Well, that's the problem - it does load the DLL and give duplicate definitions, so we had to do somewhat crazy things when the Unity plugin is loaded to get around it. But at least it's working now...! |
Issue #226 Fix. Changes including:
ink-engine-runtime
to its own csharp projectink-tests.dll
. Justification -tests
is a too general name to allow internal member visibility to. Instead,ink-tests
feels more confined to the ink project.ink-engine-runtime
to expose internals toink-tests
andinklecate
inklecate
to expose internals toink-tests
projectink-engine-dll
project and references in bundle scripts -- it is now completely substituted by the ink-engine-runtime.dllAll unit tests are passing
Due to being limited on working on an Ubuntu machine, I was not able to check whether the nuget packaging project works, so it should be a subject of attention when merging this PR.