Not logged inGosu Forums
Forum back to libgosu.org Help Search Register Login
Up Topic Gosu / Gosu Exchange / Gosu game on Steam?
- - By kaBOOM Date 2012-04-17 17:00
Can it be done? Or has it been done already?
I guess using OCRA???

Thank you.
Parent - By Maverick Date 2012-04-18 14:32
Steam doesn't require an API unless you're using their achievements system or integrating features to interact with the Steam interface whilst your game is playing. All you basically need to do is send them your game and they can add it for downloading. If you have cross-platform version of the game, they will manage the sorting on their end for people to download the game on their computers respectively.
Parent - By jlnr (dev) Date 2012-04-19 01:49
If a Gosu game became big & serious enough for Steam and if Ocra were a problem, one could probably still port it to C++ in a matter of days. I wouldn't worry about it...(& we only know after someone tries :) )
Parent - By RavensKrag Date 2012-04-20 07:47
The only forseeable problem is that steam games must be a stand-alone executable.  (I forgot Valve's exact wording, but that's what I understood of what was on their site.)  This is why there are some games built in flash for sale on Steam, but they have to be contained in an .exe wrapper to be vended.
Parent - - By danikaze Date 2012-04-27 15:27
I think if you use Gosu with C++ there's no problem right? :)
Parent - By Maverick Date 2012-04-27 18:20
Right. It must be self-contained, I believe. (i.e. not external files like "media" or "sound" or "maps" but all bundled in the final executable)

Contact Steam if you have any questions regarding their policies on this.
- By Jwosty Date 2012-04-17 22:21
I don't see why not, but for it to be cross-platform, you could probably use Ruby2EXE
- - By Omegas7 Date 2012-05-01 16:38
I don't really understand the problem here. If Ocra creates a .exe, Steam should be fine with it, right?
Parent - - By pete_mw Date 2012-05-01 20:39 Edited 2012-05-01 22:26
Ocra temporarily installs your application along with the Ruby interpreter every single time you run it. There are three main problems with that: it could take a long time for a large game to start up; creating -- and running -- executable files under appdata could be seen as a security risk; and the player may end up facing a firewall pop-up every single time they launch the game, which would be rather annoying.

Unfortunately, I think the best answer to the OP's question -- at the moment at least -- is to either try and get Crate up and running; re-write in C++; or roll your own solution.
Parent - - By erisdiscord Date 2012-05-02 05:04
See, if I were designing ocra myself, I would have linked with a static libruby, catted a tar archive containing the user-supplied scripts and only the absolutely necessary Ruby libraries to the end of the executable and overridden require with a custom version that searches that archive instead of looking elsewhere on the system. But I'm sure there's a reason I didn't design ocra.
Parent - - By lol_o2 Date 2012-05-02 07:15
Solution may be copying Ocra's generated folder into game's directory, making a batch file that runs game through included interpreter and then using Clickteam's tool to create one-exe installer.
Parent - By jlnr (dev) Date 2012-05-02 10:44
Spooner's Releasy can also package your game by just dropping your script right next to an all-in-one Ruby EXE, if that helps.
Parent - - By pete_mw Date 2012-05-02 10:51
That's almost exactly what Realeasy does, IIRC, and Ocra also has a mode that creates InnoSetup installers.

Ocra can be useful, but something more like Crate or Py2exe would probably be more so.
Parent - By Spooner Date 2012-05-19 22:58
Yes, Releasy just wraps the Ocra/Innosetup system up and makes it considerably simpler to use (or that is the intent :) ).
Parent - By chase4926 Date 2012-05-10 10:57
This is exactly what I did in my competition game, and they didn't hate it. :D
- - By Jwosty Date 2012-05-16 01:31
Wait a minute... How could we have forgotten about JRuby?! It is a reliable solution even for distributing Ruby apps as standalone jars; the end user only has to have Java installed.
Parent - By erisdiscord Date 2012-05-16 15:25
I think the reason we've forgotten about it is because Gosu doesn't (and can't easily be made to) work with it.
Parent - - By pete_mw Date 2012-05-16 18:01
As Eris pointed out, you wouldn't be able to use Gosu -- I recall stumbling across a Google Code project that was meant to be porting Gosu to Java, but I'm not sure whether or not it ever got anywhere.

You could certainly use JRuby to write a game, and it would be a lot easier to ship it, but you'd have to use Rubygame or Slick2d.
Parent - - By Jwosty Date 2012-05-16 23:28
(also @erisdiscord) Why not? I didn't know that... :/
Parent - - By erisdiscord Date 2012-05-17 03:55
JRuby is written in Java and runs on the Java VM, so any C extension support would most likely have to be a wrapper around JNI.

There is experimental support for C extensions in the latest version, but experimental's the keyword here: most libraries that use it aren't quite working yet and there's no guarantee it won't crash. The more non-trivial a library is (Gosu is very non-trivial; most SWIG-generated bindings are), the less likely it is to work.

Also, I'd be surprised if JRuby's extension support is binary-compatible with MRI; you probably have to recompile. It's pretty hard to actually find any information about it, though.
Parent - By jlnr (dev) Date 2012-05-17 08:08
You can install JRuby on OS X with rvm and then do gem install gosu --platform ruby. The source gem can be built on OS X specifically for trying out other Ruby interpreters.

I think I tried it on JRuby and didn't even understand the error message. But I made the Tutorial work on Rubinius and MacRuby once! ;)
Up Topic Gosu / Gosu Exchange / Gosu game on Steam?

Powered by mwForum 2.29.7 © 1999-2015 Markus Wichitill