Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics

Java Build

A topic by Programmer2004 created Mar 15, 2017 Views: 379 Replies: 8
Viewing posts 1 to 7


There's a line in rules which says:

"Your game must have a Linux build".

And I've got question: Can I build game to Java Bytecode, which will run under JVM on Linux? Is it allowed?


GCC (or more clearly, GCJ) can be used to compile Java into a native format, although GCJ got discontinued when Sun open-sourced the JDK.

I doubt that this would be required, but it would be interesting where people draw the line on this. (Basic+Dosbox anyone?)


aren't we splitting hairs here? im sure if i did it in python-pygame it woudl be legal, so why not another high level languange which has a native command + arguments to run?


Of course it's splitting hairs. Python can (and probably should) be compiled into a native binary, however. That's why I brought the basic/dosbox example up, which describes the essential problem here better. Another issue could be anything web-based.
"Native" is also a generally problematic as a term, especially on the Unixes.

I don't think technicalities like that will disqualify anyone.


I view bytecode as "assets" (ducks behind a chair) the natives are the native libs and binaries of your engine or platform.


Personally I think a java game is fine if the JVM is provided so the player can just click to play without having to install java, just like C/etc. games should provide the libs they need (SDL, etc.), and love2d games should be playable without having installed love2d (especially since different versions of love2d are incompatible). But then it’s a 4 days game jam and unless someone has already done this distribution work before it’s something that takes time to get right…


When I said "Linux build" I meant "it runs on Linux."

First my two cents: Software has requirements, which could be hardware, other software, or even access to external services (eg. OpenGL 2.x capable GPU, wget binary in $PATH, or a Twitter access token, respectively). I don't see how requiring a Python or Ruby interpreter or a Java runtime environment would be different.

That said, pragmatically, you can easily have very good reasons to statically link and/or bundle as much of your requirements into your final distribution as possible. If we're talking Java, you could check out LibGDX's wiki on Bundling a JRE (there's not much LibGDX specific on that topic). The wiki page warns that your distribution's file size will grow abou 30 Mb, which may improve with Java 9.


I really like the bitrock install builder. Its Free for open source projects. But you need to apply so its probably not enough time for any of the projects here to use it. I use it with my keyboarding master project and nautdrafter.

For this contest, I agree with Northburns, just bundle the jvm. Its easy. Just grab the latest JVM 64-bit from here and write a simple bash script that uses the jvm. If anyone is using jmonkeyengine, I think their IDE creates an installer. I think I saw one of the projects including the jmonkeyengine monkey asset.