NEW: libgdx, a Java-based framework for games

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

NEW: libgdx, a Java-based framework for games

Thomas Frohwein-2
Hi,

This is a port of libgdx, a framework for games in Java. It has been
used for a variety of high-profile indie games in recent years. Notable
titles include Slay the Spire, Pathway, and others [1].

This port has been made with the main purpose to allow some of those
games to run, rather than development (although game development might
also be possible with it). It builds a number of different backend
libraries (JNI), as well as Java classes that are able to recognize
OpenBSD as a valid operating system, rather than erroring out.

This has mainly been tested with Slay the Spire, and the port comes
with 2 helper scripts (libgdx-setup and libgdx-run) that allow for ease
of use with Slay the Spire. I am hoping to expand the usability of the
port and the included scripts to include other games in the near
future.

The version of libgdx is 1.9.11 because that is the apparently last one
that doesn't break backwards compability for Slay the Spire. It can
also run the game Mewnbase (although the setup is currently much more
complicated). I anticipate that multiple separate versions of the port
may be worth having in the future to support at least some of the
better games with incompatible libgdx backend versions. I haven't found
one yet that requires a different version than 1.9.11 and runs well, so
I'm deferring multi-version setup for now.

A few technical notes on the port:

- maven pulls in a bunch of dependencies from online [2]. The way I
  work around this is with the m2repo-libgdx-${VERSION} package that
  contains all of them, and the '-o' switch for offline mode. I have
  reviewed the build logs for any hints of it still trying to download
  and have done a build with the internet connection turned off and all
  is good for offline building.
- There are many dependencies, with licenses summarized in the Makefile
  (Apache 2.0, BSD, LGPL, Eclipse Public License)

If you own Slay the Spire, you can test the port by going into the
game's directory where 'desktop-1.0.jar' is located, then run:

$ libgdx-setup
$ libgdx-run

The game works very well overall, but online features and gamepad are
not supported at the moment. There is also a high-frequency flickering
of transparent/fading objects that I haven't been able to debug yet.
Occasionally, it fails to load libopenal on startup.

On another technical note: a few of the patch-* filenames are too long
for tar(1), so I made the tarball with gtar. I was able to unpack it
with tar(1) without issues.

[1] https://libgdx.com/
[2] https://mvnrepository.com/

libgdx.tgz (23K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: NEW: libgdx, a Java-based framework for games

Bryan Steele-2
On Sat, Feb 20, 2021 at 05:49:28PM -0700, Thomas Frohwein wrote:

> Hi,
>
> This is a port of libgdx, a framework for games in Java. It has been
> used for a variety of high-profile indie games in recent years. Notable
> titles include Slay the Spire, Pathway, and others [1].
>
> This port has been made with the main purpose to allow some of those
> games to run, rather than development (although game development might
> also be possible with it). It builds a number of different backend
> libraries (JNI), as well as Java classes that are able to recognize
> OpenBSD as a valid operating system, rather than erroring out.
>
> This has mainly been tested with Slay the Spire, and the port comes
> with 2 helper scripts (libgdx-setup and libgdx-run) that allow for ease
> of use with Slay the Spire. I am hoping to expand the usability of the
> port and the included scripts to include other games in the near
> future.
>
> The version of libgdx is 1.9.11 because that is the apparently last one
> that doesn't break backwards compability for Slay the Spire. It can
> also run the game Mewnbase (although the setup is currently much more
> complicated). I anticipate that multiple separate versions of the port
> may be worth having in the future to support at least some of the
> better games with incompatible libgdx backend versions. I haven't found
> one yet that requires a different version than 1.9.11 and runs well, so
> I'm deferring multi-version setup for now.
>
> A few technical notes on the port:
>
> - maven pulls in a bunch of dependencies from online [2]. The way I
>   work around this is with the m2repo-libgdx-${VERSION} package that
>   contains all of them, and the '-o' switch for offline mode. I have
>   reviewed the build logs for any hints of it still trying to download
>   and have done a build with the internet connection turned off and all
>   is good for offline building.
> - There are many dependencies, with licenses summarized in the Makefile
>   (Apache 2.0, BSD, LGPL, Eclipse Public License)
>
> If you own Slay the Spire, you can test the port by going into the
> game's directory where 'desktop-1.0.jar' is located, then run:
>
> $ libgdx-setup
> $ libgdx-run
>
> The game works very well overall, but online features and gamepad are
> not supported at the moment. There is also a high-frequency flickering
> of transparent/fading objects that I haven't been able to debug yet.
> Occasionally, it fails to load libopenal on startup.
>
> On another technical note: a few of the patch-* filenames are too long
> for tar(1), so I made the tarball with gtar. I was able to unpack it
> with tar(1) without issues.
>
> [1] https://libgdx.com/
> [2] https://mvnrepository.com/

I tested this builds for me on amd64, and the wrapper scripts work for
me with Slay the Spire (after some self-inflicted foot injuries).

There are some improvements that can be made but that can always happen
in-tree.

-Bryan.