'Programming Unity Games with Ruby

So I see that unity has the support for c#, JS and Boo.

I could learn one of these but I would like to make a 'compiler' or something similar that would let me write ruby code and either output JS code or make a layer that could be read by the Unity compiler.

Is this even a possibility. Im willing to invest many hours in this and have a fair bit of experience.



Solution 1:[1]

If your question is actually "how do I compile Ruby to JavaScript" then that's easier to answer:

Opal: Ruby to JavaScript compiler

However, you're going to be mucher better off learning one of the supported languages. It's very hard to debug "your" code when what's running is a paraphrasing of the code in another language.

Solution 2:[2]

I'm not that familiar with C# but if it's anything like C, it's quite possible you could create bindings from Ruby to Unity and just use it directly. Likely you could even get some kind of community going. This would be much preferable to trying to auto-refactor languages.

Solution 3:[3]

I recommend the "play my code" site. It is possible to "conpiles Ruby to JavaScript", to operate the Ruby Game in a browser, just as JS.

http://www.playmycode.com/build/edit/6172

Solution 4:[4]

Unity 3d doesn't use Javascript, i think unity corporation call it as javascript just for marketing purposes, Unity uses UnityScript which is Boo based implementation, you can see the source here https://github.com/bamboo/unityscript

So, even if you got some compilers ruby to javascript such as Opal, you'll still compile it to JavaScript and not UnityScript, there's a big diferences between them:

  1. Javascript is a prototype based language, and UnityScript is an class based.
  2. UnityScript is more JScript.NET than Javascript.

See more at http://wiki.unity3d.com/index.php?title=UnityScript_versus_JavaScript

I think the easily way to integrate ruby language rather to write a full compiler is integrate IronRuby, which is a Ruby implementation written in C#, which will generate bytecodes for CLR that Unity can read.

I did a similar project with python, which uses IronPython (https://github.com/cesardeazevedo/Unity3D-Python-Editor), it's still very limited, such you still have to call python code from C#, but it works and there's a interpreter that can help you in your development, if you want to create thousands of game objects with simple python commands.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Voldemort
Solution 2 user1792286
Solution 3 manygods800
Solution 4 FXCesinha