Portability

Monkey Forums/Monkey Beginners/Portability

En929(Posted 2016) [#1]
I remember back when I used to program in Java and Javascript, I used to be able to do everything FROM the USB flash drive. With the Eclipse IDE, I didn't have to download anything nor install anything. The entire executable, jpg files and everything was on the flash drive. Thus, I could just go to any computer, plug in the USB flash drive and continue working on my project as normal ALL from the USB flash drive. Thus, I didn't have to leave any folders, files, or anything on computers that I used.

I wish Monkey-X had this feature. What are some suggestions for doing the same thing in Monkey? Can the Jungle IDE make this possible? Has anybody tried it? Portability was a very valuable feature in Java and Javascript (I'm sure as many of you would image). If it can't be done in Monkey X, I wish this could be a considered feature for Monkey X2.


ImmutableOctet(SKNG)(Posted 2016) [#2]
Well, Monkey itself is about as portable as it comes. Everything's self-contained and all required paths are local. The big problems come from the tools needed to build the translated source. For HTML5 (And Flash, I'm pretty sure), you're 100% portable. 'MServer' versions are available for all three major operating systems, and they come with Monkey. The only part that isn't contained in your Monkey installation is the build folder. Well, besides your source code and assets, anyway. Those can be placed anywhere you want.

What you're probably talking about is using the GLFW target, or something similar. This is also completely portable (When done right). You've got a few options: You could install MinGW in a sub-folder, and change the path to it via "config.winnt.txt". For Linux and OS X, you'll need to use something like apt-get, or otherwise find an appropriate distribution. I haven't messed with OS X in a couple of years, so I can't really help there. I know 'C++ Tool' builds are GCC, though. You may need XCode for GLFW. Linux is as simple as it gets, though; just install GCC and run.

It all really depends on what you're using. If you want to deploy to Android, for example, you'll need appropriate drivers and SDKs. At the end of the day, GLFW and HTML5 should work with little hassle. If you don't want to store certain tools with Monkey, or with a relative path, you could always install the tools on each machine, and have your installation reflect that. Jungle would also need to be installed separately if you intend to use it. Although, your settings could be synchronized on Windows if you opt into it. Plus, it's not like a one-time setup is all that big of a deal. Just keep your source code and assets (And/or your Monkey installation) on the flash drive, and set the path up with your IDE (Jungle).

Monkey's actually a decent bit more portable than some toolchains, so I don't see the issue. Sure, it's not quite Blitz-level of portable, at least not without bundling MinGW, or using HTML5. Still, there's very little that wouldn't work with this.

I recommend installing your SDKs on the machines you use, then keeping the software you right on a flash drive, DropBox, or wherever you want to put it. The same generally goes for Monkey as well.


Gerry Quinn(Posted 2016) [#3]
And don't forget that the multi-targeting ability of Monkey means that in many cases you don't need 24/7 access to your target system. For example, if developing for Android you can do most stuff just fine in the Flash target (HTML5 will slow to a crawl if you are using SetColor when drawing images).


ImmutableOctet(SKNG)(Posted 2016) [#4]
Unrelated to the portable development discussion:

@Gerry Quinn:That's only an issue with Mojo 1, and only if you're not using Devolonter's WebGL backend, or my 'mojoinmojo2' module. In other words, the 'SetColor' thing isn't as big of an issue anymore.


Gerry Quinn(Posted 2016) [#5]
Thanks - that's useful to know, if I need to do HTML5! (Or if someone prefers it - it is a little faster to compile than Flash.)