Hi,
I want to be able to use Ruby code in the Unity3D game engine, which
embeds GNU Mono 1.2.4 to provide support for various languages (a
ECMAScript-based language, Boo, and C# - they don't upgrade the
ancient Mono version to keep compatibility with games designed for
older versions of Unity3D).
Forgive my use of terminology, I'm new to this .NET/Mono malarky :)
I was told that I can product .NET 2 assemblies, plug them into
Unity3D, and the classes will be accessible from the other languages.
Will I be able to use IronRuby to create .NET 2 assemblies in this
manner?
Sorry for asking here, but the Unity3D people don't seem interested in
Ruby as much, and I just can't live without coding in BDD style in a
robust environment.
Thanks. Regards,
Asfand
on 2009-12-22 12:25
on 2009-12-22 13:27
You can't compile to an assembly with IronRuby at this point. But you can reference the ironruby interpreter library and host the ruby engine in your application to have it execute ruby files. http://ironruby.net/Documentation/.NET/Hosting But I don't think that will completely solve your issue though because to interop with CLR classes their definitions must exist in the CLR so you would probably have to build some bridges. the most straightforward way to do that is by defining CLR interfaces and adding them to IronRuby classes. public interface IRobot{ DeathAndDestructionMode ForgetAboutThe3Laws(); } in Ruby: require '/path/to/interfaces/assembly' class EvilBot include IRobot def forget_about_the_3_laws DeathAndDestructionMode.world_domination end end a consuming C# class could then get an object you created with your hosting code and still talk to it because of the CLR interface. If you're after testing then you can use ruby tools like bacon/rspec to test your C# code. The only thing that will be weird if you're going to use it this way is that ruby mockers have no clue what to do with CLR objects. I created a project that: a) accepts patches and contributions b) gives you mocking that knows about the CLR http://github.com/casualjim/caricature --- Met vriendelijke groeten - Best regards - Salutations Ivan Porto Carrero Blog: http://flanders.co.nz Google Wave: portocarrero.ivan@googlewave.com Twitter: http://twitter.com/casualjim Author of IronRuby in Action (http://manning.com/carrero)
on 2009-12-22 13:36
Hey, On 12/22/09, Asfand Yar Qazi <ayqazi@gmail.com> wrote: > I want to be able to use Ruby code in the Unity3D game engine, which > embeds GNU Mono 1.2.4 to provide support for various languages (a > ECMAScript-based language, Boo, and C# - they don't upgrade the > ancient Mono version to keep compatibility with games designed for > older versions of Unity3D). Mono 1.2.4 is most probably too old to support IronRuby and the DLR.
on 2009-12-22 14:32
2009/12/22 Jb Evain <jb@nurv.fr>: > Hey, > > On 12/22/09, Asfand Yar Qazi <ayqazi@gmail.com> wrote: >> I want to be able to use Ruby code in the Unity3D game engine, which >> embeds GNU Mono 1.2.4 to provide support for various languages (a >> ECMAScript-based language, Boo, and C# - they don't upgrade the >> ancient Mono version to keep compatibility with games designed for >> older versions of Unity3D). > > Mono 1.2.4 is most probably too old to support IronRuby and the DLR. Thanks for that, I can now stop chasing a pointless dream :)
on 2011-03-21 22:40
Asfand yar Qazi wrote in post #875250: > 2009/12/22 Jb Evain <jb@nurv.fr>: >> Hey, >> >> On 12/22/09, Asfand Yar Qazi <ayqazi@gmail.com> wrote: >>> I want to be able to use Ruby code in the Unity3D game engine, which >>> embeds GNU Mono 1.2.4 to provide support for various languages (a >>> ECMAScript-based language, Boo, and C# - they don't upgrade the >>> ancient Mono version to keep compatibility with games designed for >>> older versions of Unity3D). >> >> Mono 1.2.4 is most probably too old to support IronRuby and the DLR. > > Thanks for that, I can now stop chasing a pointless dream :) Well, a long time has passed since I asked the previous question. Unity3D now uses GNU Mono 2.6, and I hope IronRuby has made progress too. Is it now possible to compile Ruby files into assemblies to use with Unity3D's Mono 2.6? Thank you for your help. Regards, Asfand
on 2011-03-22 02:37
We are already targeting Mono 2.10. You can try building with msbuild on Windows using /p:Configuration=v2Debug and using the resulting binaries on Mono 2.6. Mono fixed a bunch of bugs since 2.6 though so it might not quite work. Tomas
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.