RoboVM is winding down
robovm.com
robovm.com
The BadLogic (libGDX) solution is to use the Intel Multi-OS Engine [1] but this too is a closed solution. I'm now concerned that I might spend months getting my game working in Multi-OS, marketing on iOS, building a user-base then find Intel has abandoned the project (as RoboVM have).
This has just highlighted how much risk is involved in fringe runtime environments (Java on iOS, for example), especially those relying on closed solutions.
A programming language with many compilation targets, not hard to learn and somewhat similar to Java.
Also used for a lot of (2D) games.
Some game framework based on C, C++, Rust, Swift, Go, ....
It's open source and has always been, supports all IDE's etc.
Uh, huh.
A platform vendor buys and kills closed source code that makes it faster and easier to make applications across platforms including those the new owner does not control, so the closed source product is killed and all the developers who used it now have to re-write all the their apps costing them significant resources and money.
Can anyone really wonder why developers do not like to buy closed code that acts as glue between platforms and their applications?
The only time it's smart to do is if it lets you reach the market faster than others, and then only if that buys you time to get off the cross-platform tool before it lags and degrades in the face of platform updates the tool vendor does not control or dies.
(although LibGDX was able to finagle a free license for small developers).
And I wish I could say I'm surprised that Oracle's not jumping in to buy this tech, as it seems like it would be a terrific addition to the Java toolset. But adding innovation to Java is, to say the least, not Oracle's strong suit.
Good luck with whatever you end up doing next though, seriously, whether it's libgdx-related or not. Y'all are good people, you do good stuff.
In any case, thanks! I've read your book (Beginning Android Games) and used libgdx (though nothing finished or published) and enjoyed both!
Do they not WANT anyone to know what these things are?
Why RoboVM? We love mobile. We love the Java ecosystem. If you feel like we do, you will love RoboVM:
Create truly native mobile apps for iOS and Android. Use libraries, tools and languages from the vast Java ecosystem. Share code between platforms.
It seems to be an alternative to xamarin focused on Java or at least the JVM.
RoboVM is a Java VM on iOS. It's used by some third party libraries such as libGDX - a cross platform Java game development framework which targets Android, iOS (via RoboVM) and others.
BugVM is a fork of RoboVM. In October 2015, RoboVM (a formerly open source project) announced they were making their project closed source proprietary, and as a result someone forked under BugVM.
Edit: Forgot Xamarin technically owns RoboVM, maybe Microsoft wants to avoid any legal issues with Oracle.
Assuming one is ok with a little dosis of JNI pain on Android, given that C++ is a first class language in iOS (via Objective-C++) and Windows (C++/CX and or via WRL).
And if there is the need to use something that they have yet to wrap, there isn't any difference between C# and C++.
Also in Android there is the additional pain of synchronising the .NET and JAVA GCs.
C++ is a good language, except for the warts introduced due to C copy-paste compatibility.
Sure, Xamarin has done a lot of that work--but that's also kind of the point in the first place.
However one thing that my likeness for Turbo Pascal and Oberon teached me was that making applications with languages which aren't first class on the platform SDKs opens the door to situations like these.
So I rather be more pragmatic, even if it goes a bit against to my preferences and keep my code free of company politics, which may lead to porting the application to other languages.
I doubt this is just RoboVM unilaterally making this decision. They're offering a full refund to all license holders - some decision maker somewhere is paying for this (be in Xamarin or Microsoft).
While they likely didn't make the decision to close up shop, RoboVM did unilaterally make the decision to close source the code 7 months ago. Additionally, they did make the decision to sell to Xamarin. They indicated that very few people contributed to the open source project, and with it being open source it was difficult, if not impossible, for them to make money as a business.
I understand that people want to make Microsoft the bad guy, but in this case RoboVM sealed this fate themselves a while back, and from their point of view they didn't really have a choice if they wanted to make any money.
As another comment pointed out, the old open source repository is still available on github as of now.
The writing was on the wall ever since RoboVM was closed sourced, right before Xamarin bought them. I was one of the pessimists here. Basically any project that goes from open-source to close source is as good as dead, unless forked. And whenever you see such projects, you should run. Because the most interesting aspect of any open source project is its open source nature. And a bait and switch doesn't work so well.
That said, RoboVM was open-source before October 2015 and the most interesting aspect of open source is the ability to fork the project. A fork of RoboVM can still happen, the code from before October 2015 should still be there somewhere, I just hope the license is permissive enough. And if a fork doesn't happen, it only means that the project doesn't have enough interest and so it probably should wither away.
I will say that as soon as Xamarin bought RoboVM my heart sank. I had a feeling Microsoft was going to buy Xamarin, it made perfect sense to do so, the only other choice would have been to buy Unity (which they could still do) And of course, if MS bought Xamarin, there would be no point in maintaining both a C# and Java product.
Though I do hope that they'll make the sources available. It's not like just a code dump will suddenly transform into viable competition for Xamarin.
The only thing they are supporting is some hybrid framework that wraps ADP into some Java version of Cordova.
http://www.oracle.com/technetwork/developer-tools/maf/overvi...
With offers like that, no other everyone that favours native has mostly went C# or C++.
Downsizing isn't a "Microsoft in the 90s" thing.
That said, I was just this week thinking about my next game, a Tower Defense, and now RoboVM dies... :/
Will try the libGDX response as soon as possible.
I also archived a desktop .jar file, because I doubt I'll be able to rebuild this thing in five years.
EDIT: Playable link (requires WebGL) http://feldspargame.com/
Something where you select the type of app (DB Driven Web App, Static Web Site, CMS BAsed Website, Game, Desktop App, Enterprise Server Application)
And it starts giving you a decision tree showing the options with pros/cons.
Sorry for the vagueness, but I cant put it into better words at the momment =)
Does anyone know such a thing?
The python libraries are my "backend" where I have most of the interesting code, and only the frontends change: html/css/js over flask for web, PyQt for desktop and Java/JNI for Android.
What is the future of libGDX on iOS? Tomski has already written a new libGDX backend for Multi-OS engine. Here’s the roadmap for libGDX:
Clean-up the Multi-OS backend, integrate it with the libGDX Setup UI, and update the documentation. We are at a 95% status with this, i hope to have the code drop sometime this weekend Release a new libGDX version next week, that will make Multi-OS engine the default iOS backend for newly created libGDX projects Begin creating bindings for popular 3rd party iOS libraries. This is where we hope the community can jump in Keep the RoboVM backend around until the licenses expire (April 17 2017). We’ll try our best to fix any bugs in the backend, however we won’t be able to fix bugs in RoboVM itself The roadmap of your existing apps should look something like this:
Keep publishing updates using RoboVM 1.14.0 and the corresponding backend Immediately start adding a Multi-OS engine based version of your app for iOS Test it and report bugs on our issue tracker Switch over to Multi-OS Engine as soon as possible In Closing There will be some rough edges with the new Multi-OS Engine backend. We are in contact with Intel, who have been very reactive in fixing issues we identified while creating the new iOS backend. Please help test the new backend and report issues, so Intel is able to fix problems on their end.
Multi-OS Engine is free to use, but not OSS. Before you guys start screaming for my head again, I’d like you to read the above analysis carefully one more time. None of the OSS options are even close to production ready. I will however happily merge any and all backend based on those OSS options.
I’d be grateful if everyone funnels their emotional energy created by this announcement into helping out with the new backend, e.g. testing, bindings, reporting bugs etc. I believe this is a much better use of everyone’s time. If you feel the need to vent, I understand. But please don’t expect me to vent with you. The winding down of RoboVM is already emotionally taxing enough for me. My goal is it to keep things running smoothly for everyone, I have no intention to waste time on a screaming contest.
Intel Multi-OS Engine:
Formerly known as Migeran, Multi-OS Engine is a pretty nice piece of tech that let’s you run Java bytecode on iOS. Under the hood, Multi-OS Engine is powered by ART, Android’s virtual machine, which has an AOT compilation mode Multi-OS Engine exploits.
Tooling: Integrates with Android Studio, IntelliJ IDEA and Gradle. Used to have support for Eclipse, but it seems that’s no longer available. Also let’s you build and deploy from a Windows machine (using a Mac as the build slave). Bindings: Provides a custom bridge called Nat/J, which is quite similar to RoboVM’s Bro, albeit quite a bit more cumbersome. It appears that all native APIs are accessible from Java via Nat/J, and 3rd party libraries can be bound (semi-)automatically.
Binary size: OK but not great. Bigger than comparable RoboVM binaries. Performance: Good, faster than RoboVM in some workloads, slower in others. Bitcode: Currently unsupported, but apparently Intel is working on it. Multi-OS Engine comes closest to RoboVM along all these axes.