Trying to run a game made in 2015-2016 on Mojave

Howdy,

First of all: thanks for the great jMonkeyEngine! It was a piece of cake to get started. :purple_heart:

However, I’m trying to run a game that I last coded on in 2015, or so. I haven’t started it since February 2016. It seems. When I run this now some graphics are missing, as well as the sound effects. The music is still there.

As far as I remember this was running on macOS back then, but it might have been made in Windows, originally. It’s been a while.

I’m running:

masOS Mojave 10.14.6

java 15.0.1 2020-10-20
Java™ SE Runtime Environment (build 15.0.1+9-18)
Java HotSpot™ 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)

This is not going well and I’ve tried a few versions. Any ideas?

The reason I’m running Mojave is mostly because my Cubase-version (paid etc.) stopped working in Catalina, and overall I didn’t like Catalina (Planned obsolescence?) and had to reinstall this iMac.

EDIT: It may have been made in Windows 7, originally. I can’t recall really.

1 Like

Thanks for the like. But it doesn’t help me a whole lot. I’m going back in. The main problem is that some sound effects, background effects and the resolution/full screen selections are missing. I don’t have a clue what’s going on but it seems like there could be some static file issues.

How are you launching? From the SDK, or from a standalone, like you would with a game you had bought/downloaded?

If you’ve got a standalone, can you launch from the terminal, to see if there is any output that might give you a clue?

Slow progress here. I’m getting a java/util/jar/pack200 error when running the installer. Currently I’m so sick of the internets that I can barely search on these results, and Google seems to be seriously messed up this time. :grimacing:

NetBeans have problems with the jdk-14, because I suppose that you have install the jdk-14 so uninstall it and try it with the jdk-13.0.2.

I can sense a couple of days with Java-issues here. I have no idea what will break if i change Java-version, and I haven’t programmed any Java in 4-5 years, or so.

The most sensible solution could perhaps be running Catalina on an external drive? Or a Virtual Box-thingy?

Note, you need to provide the full stack trace of error in details so others can help.

And note, pack200 is removed since Java 14 (see JEP 367). Maybe you should try with Java 8 or 11.

Note, you need to provide the full stack trace of error in details so others can help.
And note, pack200 is removed since Java 14 (see JEP 367). Maybe >you should try with Java 8 or 11.

NOTE: I don’t get it, how you quote correctly here? And I got some kind of bug while editing. Neverheless…

I don’t want to “downgrade” Java on my main OS. Who knows what will break? Isn’t my solution above with Catalina or running a virtual something a more sensible solution? If not, why? How would it be possible to know what might/will go kaputt Java-wise on my Mojave if i downgrade Java?

Running multiple versions, probably not. I have PSTD-experiences of similar things. :slight_smile:

I have no idea what-so-ever regarding different Java-versions. I haven’t worked with Java professionally since 2016. And most of it were getting old at that time.

So my idea is: running the Latest - Latest. But I do have a jMonkeyEngine-project that hasn’t been touched since 2016. As far as I remember it was originally made on Windows 7, and the first Java 3D-version (eeeh… I had to - university) was made in 2005.

FYI : If you donot want to downgrade java , but you wanna run a game(must be in a jar file or .desktop form ) download the java version you want to try , then run the game using a specific version using java executable (jre) bundled with the jdk tar file :

to run a jar using this version :

[✗]─[[email protected]]─[~/JmonkeyEngineProjects]
└──╼ $/home/twisted/jdk1.8.0_201/jre/bin/java -jar MyGame.jar
/home/twisted/JmonkeyEngineProjects/databases/userName.json (No such file or directory)
null
/home/twisted/JmonkeyEngineProjects/databases/userName.json (No such file or directory)
SQL Connected
[SQLITE_ERROR] SQL error or missing database (no such table: options)
null
Can't read input file!
Feb 11, 2021 12:25:51 PM com.jme3.system.JmeDesktopSystem initialize
INFO: Running on jMonkeyEngine 3.3.2-stable
 * Branch: HEAD
 * Git Hash: 1a05e3f
 * Build Date: 2020-04-27
Feb 11, 2021 12:25:52 PM com.jme3.system.lwjgl.LwjglContext printContextInitInfo
INFO: LWJGL 2.9.3 context running on thread jME3 Main
 * Graphics Adapter: null
 * Driver Version: null
 * Scaling Factor: 1
Feb 11, 2021 12:25:52 PM com.jme3.renderer.opengl.GLRenderer loadCapabilitiesCommon
INFO: OpenGL Renderer Information
 * Vendor: Intel Open Source Technology Center
 * Renderer: Mesa DRI Intel(R) Kabylake GT2F 
 * OpenGL Version: 3.0 Mesa 19.3.3
 * GLSL Version: 1.30
 * Profile: Compatibility
Feb 11, 2021 12:25:52 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio Renderer Information
 * Device: OpenAL Soft
 * Vendor: OpenAL Community
 * Renderer: OpenAL Soft
 * Version: 1.1 ALSOFT 1.15.1
 * Supported channels: 64
 * ALC extensions: ALC_ENUMERATE_ALL_EXT ALC_ENUMERATION_EXT ALC_EXT_CAPTURE ALC_EXT_DEDICATED ALC_EXT_disconnect ALC_EXT_EFX ALC_EXT_thread_local_context ALC_SOFT_loopback
 * AL extensions: AL_EXT_ALAW AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_LOKI_quadriphonic AL_SOFT_buffer_samples AL_SOFT_buffer_sub_data AL_SOFTX_deferred_updates AL_SOFT_direct_channels AL_SOFT_loop_points AL_SOFT_source_latency
Feb 11, 2021 12:25:52 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
WARNING: Pausing audio device not supported.
Feb 11, 2021 12:25:52 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio effect extension version: 1.0
Feb 11, 2021 12:25:52 PM com.jme3.audio.openal.ALAudioRenderer initOpenAL
INFO: Audio max auxiliary sends: 4
null
Libbulletjme version 9.0.0 initializing
Feb 11, 2021 12:25:54 PM com.jme3.material.Material checkSetParam
WARNING: Material parameter being set: Texture with type Texture2D doesn't match definition types TextureCubeMap
Feb 11, 2021 12:26:02 PM com.jme3.input.InputManager addMapping
WARNING: Attempted to add mapping "ChaseCamDown" twice to trigger.
Feb 11, 2021 12:26:02 PM com.jme3.input.InputManager addMapping
WARNING: Attempted to add mapping "ChaseCamUp" twice to trigger.
Feb 11, 2021 12:26:02 PM com.jme3.input.InputManager addMapping
WARNING: Attempted to add mapping "ChaseCamZoomIn" twice to trigger.
Feb 11, 2021 12:26:02 PM com.jme3.input.InputManager addMapping
WARNING: Attempted to add mapping "ChaseCamZoomOut" twice to trigger.
Feb 11, 2021 12:26:02 PM com.jme3.input.InputManager addMapping
WARNING: Attempted to add mapping "ChaseCamMoveLeft" twice to trigger.
Feb 11, 2021 12:26:02 PM com.jme3.input.InputManager addMapping
WARNING: Attempted to add mapping "ChaseCamMoveRight" twice to trigger.
Feb 11, 2021 12:26:02 PM com.jme3.input.InputManager addMapping
WARNING: Attempted to add mapping "ChaseCamToggleRotate" twice to trigger.
Feb 11, 2021 12:26:02 PM com.jme3.input.InputManager addMapping
WARNING: Attempted to add mapping "ChaseCamToggleRotate" twice to trigger.
Feb 11, 2021 12:26:11 PM com.jme3.audio.openal.ALAudioRenderer updateInDecoderThread
WARNING: Buffer starvation occurred while playing stream
Feb 11, 2021 12:26:12 PM com.jme3.audio.openal.ALAudioRenderer updateInDecoderThread
WARNING: Buffer starvation occurred while playing stream
Feb 11, 2021 12:26:12 PM com.jme3.audio.openal.ALAudioRenderer updateInDecoderThread
WARNING: Buffer starvation occurred while playing stream
Feb 11, 2021 12:26:12 PM com.jme3.audio.openal.ALAudioRenderer updateInDecoderThread
WARNING: Buffer starvation occurred while playing stream
Feb 11, 2021 12:26:13 PM com.jme3.app.LegacyApplication handleError
SEVERE: Uncaught exception thrown in Thread[jME3 Main,6,main]
java.util.NoSuchElementException
	at java.util.ArrayList$Itr.next(ArrayList.java:862)
	at java.util.Collections.max(Collections.java:669)
	at main_WorldMap.GameLifeCycle.cleanup(GameLifeCycle.java:30)
	at com.jme3.app.state.BaseAppState.cleanup(BaseAppState.java:230)
	at com.jme3.app.state.AppStateManager.cleanup(AppStateManager.java:392)
	at com.jme3.app.LegacyApplication.destroy(LegacyApplication.java:756)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.deinitInThread(LwjglAbstractDisplay.java:200)
	at com.jme3.system.lwjgl.LwjglAbstractDisplay.run(LwjglAbstractDisplay.java:239)
	at java.lang.Thread.run(Thread.java:748)


Exception: java.lang.RuntimeException thrown from the UncaughtExceptionHandler in thread "jME3 Main"
AL lib: (EE) alc_cleanup: 1 device not closed

& collect your log as shown above(if you have a jar).

(Note : i am running an old version of my game , & out of its real context , so it gives bad logs)

Java 11 is the current LTS. Users should not be running non-lts versons of java with the expectation that there will be no differences in how the versions run. Downgrading to java 11 will almost certainly still work just fine, as jdk 14 does not add anything major that would cause backwards compatibility issues unless you or the code you are running are using jdk 14 specific features. Using them is highly unlikely for third parties at this time, and if you are using them, perhaps you should rethink that approach as those features are in flux until jdk 17.

Until jdk 17, which is the next LTS, version specific features are generally not set in stone. A good example of this is the new JEP 361, which even has multiple syntax variants within jdk 12, and was changed again for jdk 13 (I think this one is fairly concrete now?)

To summarize, there should be little to no consequence to downgrade to jdk 11, which is the current LTS. I am running 11 on all of my machines, and setup specific dev environments for anything requiring newer versions.