Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

k555263

3
Posts
1
Topics
2
Following
A member registered Aug 09, 2017

Recent community posts

Yeah the location of application data on Windows is a mess, and you make a good point about users potentially wanting to hide the game.
To be pedantic, there is documentation from Microsoft as to where files should be placed, and there are standard locations for macOS and Linux as well.
Not a my hill to die on, just pointing it out :smile:

Fingers crossed that updated dependencies and Java will fix the memory leak without any extra effort - memory leaks can be really *fun* to track down :laughing:

Great game, love the writing, love the art!

### Memory leak

There is a memory leak when running on Ubuntu. Memory usage climbs until the process is killed or the system crashes - I have seen ToA use 6GB+. Could be loaded resources are not being released?

### Borked Linux packaging

When attempting to run the Linux version, the following error occurs. Note that running the jar directly using the system-installed Java works just fine.
```

$ ./TalesOfAndrogyny  

jre/lib/amd64/server/libjvm.so: cannot open shared object file: No such file or directory
Error: failed to load VM runtime library!

```

### System info

Ubuntu 21.04, OpenJDK 1.8.0_292, with OpenJFX installed.
Note that the game will not run using OpenJDK 11 due to JavaFX not being bundled with the JDK anymore.

### Suggestions

I am a software engineer, so I have a couple of suggestions if you are interested:

1) Bump the Java version to latest LTS release. Java 11 is supported through 2026, Java 17 (the next LTS version) will be released in a few days.
  - This may or may not fix the memory issue, but newer versions of Java do bring other nice things - language features, packaging, etc.

2) Pull in JavaFX dependencies via gradle. There is a gradle plugin for doing this that you may be interested in: https://openjfx.io/openjfx-docs/#gradle
  - Newer versions of JavaFX have many new features and bug fixes, potentially improving memory usage.

3) The `jpackage` tool was introduced in Java 14. This tool can create installers for any platform and bundles the JRE with the application. This is very nice from a user perspective since ToA would behave like any other app - no need to download Java first, able launch from spotlight/start menu, etc.
  - I have used a gradle plugin to package JavaFX applications and it went very smoothly: https://badass-jlink-plugin.beryx.org/releases/latest/

4) Place save/config data in the expected platform-specifc directories instead of dropping data in the current directory. There's even a library to fetch these directories:: https://github.com/harawata/appdirs

Love the game! Just a couple of minor suggestions.

I would like to suggest changing the name of the save data folder. I run Linux, and I have other applications using a 'data' folder in my home directory. Something like 'toa-data' would be great, or even better '.toa-data' - note the starting period - as that would make the folder hidden by default on Linux and Mac.

Could we have a library of encounters similar to the gallery for encountered characters? Sometimes during encounters I double tap my touchpad and skip a page or two on accident. Another idea could be a simple game log.

Finally, do you need/want any help with development? I have a fair amount of Java experience - I've built and deployed Java/JavaFX desktop applications before.