New open source game project - Animal Cards

So I have completed a working version of my first learning project, using Zay-Es and a little Lemur - all in Scala:

If anyone has any comments, suggestions, feedback, criticism, etc. I would love to hear it.


Crowd with pitchforks: “Screen shots! Screen shots! Screen shots!”

…gosh, that crowd is being a bit over-dramatic.


Torches make me nervous.

And yes, I … borrowed… heavily from Asteroid Panic.


My 2 cents.

Sounds affect, card being moved, cards flipping over. Getting the two card wrong, Clicking and etc…

Texture, add texture to back of card, to give it appearance of a card.

Track number of turns it took to solve it. Possible keep record, so someone could see themselves getting better.

Clicking on card supper fast, will freak out the game and make it think you selected 2 cards of the same thing and put them in the solved section.

Did you mean that you can click on three cards at the same time?

Jar is not an executable. I can’t get the .bat file to run. have to use

java -cp .\lib* org.cacophony.Main 1

to get it to run. otherwise I get

Unrecognized option: -XstartOnFirstThread
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.


Oct 12, 2023 10:56:53 PM initOpenAL
INFO: Audio effect extension version: 1.0
Oct 12, 2023 10:56:53 PM initOpenAL
INFO: Audio max auxiliary sends: 2
Oct 12, 2023 11:01:23 PM handleError
SEVERE: Uncaught exception thrown in Thread[jME3 Main,5,main]
java.lang.NullPointerException: Cannot invoke "com.jme3.scene.Spatial.getUserData(String)" because "target" is null
        at org.cacophony.ToyModelFactory$MouseListener$.click(ToyModelFactory.scala:163)
        at com.simsilica.lemur.event.DefaultMouseListener.mouseButtonEvent(
        at com.simsilica.lemur.event.MouseEventControl.mouseButtonEvent(
        at com.simsilica.lemur.event.PickEventSession.buttonEvent(
        at com.simsilica.lemur.event.MouseAppState.dispatch(
        at com.simsilica.lemur.event.MouseAppState$MouseObserver.onMouseButtonEvent(
        at com.jme3.input.InputManager.processQueue(
        at com.jme3.input.InputManager.update(
        at com.jme3.system.lwjgl.LwjglWindow.runLoop(
        at java.base/

Oct 12, 2023 11:01:23 PM com.jme3.system.JmeSystemDelegate lambda$new$0
WARNING: JmeDialogsFactory implementation not found.
Uncaught exception thrown in Thread[jME3 Main,5,main]
NullPointerException: Cannot invoke "com.jme3.scene.Spatial.getUserData(String)" because "target" is null

Wow! Thank you - great feedback.

I don’t have any Windows machines at all, so I have no way of knowing what does/does not work there. On the Mac, jME pretty much doesn’t work without the -XstartOnFirstThread.

Second clicking on the card - didn’t think of that. Two of the levels, the player has to match three cards, so I’ll have to make sure that the clicking works with that as well.

1 Like

It should work… I use it everywhere… Maybe @kevinba99 is using some weird JDK/JRE?

1 Like

This is what I’m using. It is Oracle Java 18.

java version "18.0.1" 2022-04-19
Java(TM) SE Runtime Environment (build 18.0.1+10-24)
Java HotSpot(TM) 64-Bit Server VM (build 18.0.1+10-24, mixed mode, sharing)

I’m puzzled. Adoptium/Temurin JDK 17 at least works and has this flag. But good to know that the Oracle release doesn’t then.