Publishing on Linux... Yes or No?

I’ve been toying with the idea to make the game I am making available to Linux users. The problem is that for now, I can’t test it on any Linux distribution. Should there be any problems if I just create the executable for Linux from jME? Are there any common problems? Is there anything I should look out for?

Can’t test it ? is Linux too cost prohibitive for you ? :stuck_out_tongue:



Sometimes file path stuff that works on Windows doesn’t work on Linux (or the other way around, I forget).



Just run Ubunutu off a USB stick and test away. Testing on other platforms can be annoying but trying to debug and patch issues and problems on a platform you don’t have access to can be a massive pain, so I would suggest setting up a permanent Linux distro for testing. If anything it will give you peace of mind when you do release your game, nothing is worse than the wait to hear if it did or didn’t work on untestest systems, then trying to blindly patch issues and hope your fix works.

You don’t have to install Linux on a USB stick either. Use a Virtual Machine (http://en.wikipedia.org/wiki/Virtual_machine)



Free VM software

https://www.virtualbox.org/

http://www.vmware.com/ (I dont know if its free anymore)



Free Linux Distro

http://www.ubuntu.com/download



Quick Steps to getting a Virtual Linux box running on your pc.


  1. Download VM software
  2. Download Linux iso
  3. Run VM Software, load the Linux Iso
  4. Install Linux
  5. You now are running a virtual Linux installation



    NOTE: this works for any OS, you just need the install disc or ISO

VM’s and OpenGL/lwjgl are seldom working really well… But any linux can be started from a thumb drive these days, so come on… :wink:

@normen said:
VM's and OpenGL/lwjgl are seldom working really well.. But any linux can be started from a thumb drive these days, so come on.. ;)


I have had some experience with a couple VM software and yes some VM players have trouble with Open GL. The ones I recommended should be fine to run it. I found Microsoft Virtual Machine Player (Comes by default in Windows 7) is the worst player available. Sun/Oracles does pretty well with graphics, networking and audio however input peripherals are lacking (microphone, usb, etc).

VMWare is the best of the bunch however I am pretty sure its not open source any more, it might not even be free anymore. VMware is top of the line and could run full blown opengl simulation + take input from microphone and keyboard without a problem

EDIT: It is still free. http://downloads.vmware.com/d/info/desktop_end_user_computing/vmware_player/4_0

Starting it on Virtual Machine wouldn’t be the best option for me. I once tried running Ubuntu on a VM and it was too slow - not good for testing a game. Should it work well if I boot Ubuntu from DVD and test it that way? Should I detect problems if I test it on Ubuntu running on Windows as VM or otherwise?



EDIT: I will first try “Ubuntu installer for Windows”

if you can you should use usb stick/pen drive instead of dvd (depends on your bios)

cause it is much faster than booting from dvd

use UNetbootin to create usb

Don’t have an empty USB at the moment. Will try a DVD. Thanks for the input though. Should I detect any problems now, even though this PC isn’t permanently Ubuntu?

Well for a linux it dosnt matter from where i runs, the live ubuntu is identical with the one you can run from disk.

Ok. Ran it on Ubuntu. Works very well :slight_smile: That’s that then. I will be able to test and make this game available to Linux users.

Yay! :slight_smile:

If I have time, I’ll gladly help test on Ubuntu as well.

I know how hard it is to get testers.

Yep, you don’t even need to install linux, just use a livecd/liveusb.



The other point is, since JME runs in the Java virtual machine, you really don’t need to worry too much about cross platform compatibility. If you write something that runs on your Windows machine, it will almost certainly work in Linux too, unless you’ve done something fairly deliberate to use platform-specific binaries.

@Tumaini, thanks a lot :slight_smile: I won’t pressure you or anything. If you want to test, well and good. If you don’t want to, or would want to stop testing, it’s well and good too. See game topic for more info.



@monkeychops, figured that out. I know for a fact that OSX does have common problems, and was afraid that they might exist in Ubuntu. Seems like Linux doesn’t have such problems though.

@memonick said:
I know for a fact that OSX does have common problems, and was afraid that they might exist in Ubuntu. Seems like Linux doesn't have such problems though.

What are you talking about? Like I said in the other thread, OSX is still the most consistent platform for java apps, especially SDK-created distributions.

One user already had a problem with resolution.



Also, I don’t have any means to test it on OSX.

@memonick said:
One user already had a problem with resolution.

So your application falsely sets a fixed resolution that isn't supported on that computer. That could happen on certain windows boxes just as well, like I said, you are more prone to create applications that only run on certain windows distributions if you go by "runs on my windows". Effectively you already found two bugs just by having others run it on other platforms.

The game sets the resolution to 1024X768. I have already tested it on two computers - one of which has 1280X768 (or 1024) as default, and it ran well on both. Dodikles gave me the following code:



[java]if (settings.isFullscreen() && System.getProperty(“os.name”).equals(“Mac OS X”)) {

settings.setFrequency(0);

}[/java]



The problem was with the full screen mode (my mistake - it’s not resolution).



What are the two bugs you mentioned? One is the problem with full screen. The other is what?

Well, I am not lying to you ^^ Even if you tested 3 out of a million possible windows pc configurations, what I say is true… You have to check for the available full screen resolutions first, just like the normal settings panel (why don’t you just use it?) does. You can take the code from the settings panel itself. Basically some DisplaySystem.getAdapters().getResoutions() or something. As for the other bug… I don’t know ^^… wasn’t there something else in the other thread with shaders? Whatever.

So what you mean is that first I should check whether the computer supports full screen? 1024X768 is very important for my game to compute where the user clicks etc… so that can’t change.



EDIT: How do I check if the computer supports full screen?

@memonick said:
So what you mean is that first I should check whether the computer supports full screen? 1024X768 is very important for my game to compute where the user clicks etc... so that can't change.

a) No, you check if that resolution is supported in full screen
b) Thats a design flaw, wheres the problem scaling the actual x/y values? You can even scale a NiftyGUI thats designed for 1024x768 to any size..