Change between Menu and In-Game -> Appstates, Gamestates - Confused


I am trying to distinguish in my game between MainMenu and InGame. Additionaly there should be different Gamemodes for the In-Game part.
In the forum here I found some discussions about Gamestates, but all linked tutorials are no more available.
Then I found the Appstates in the wiki, but I am quite unsure about them. They don’t seem to handle different Gamestates, but rather adding Gameplay elements to the game.
Can you please help me by explaining how the MainMenu/Ingame/Gamemode distinction is usually done in JME?

Kind regards,

Just display another nifty screen?


I am not asking about the actual GUI.
What I want to do is divide the game into different parts. E.g. One class for the main menu which also handles only the menu update.
One class for each gameMode, like survival, campaign etc.
I know this things as GameStates but cannot find any information about them except from some questions here in the forum, which are not helpful because the links in the answers are broken.
So I thought GameStates would be now called AppStates, but it seems as if it is not quite the same.

AppStates can be used for game states. AppStates can be used for other things. They are global ‘extensions’ to the app that can be added/removed at runtime.

Look for example games that use app states for ideas. There are many… my own are Asteroid Panic, Monkey Trap, IsoSurfaceDemo, SimArboreal, etc…

Mhm, jME doesn’t force you to do a game in any way. You should have an idea on how you want to set up your code and then it should be apparent how the jME classes can help.

Thank you for this tip.
I looked through your Asteroid Panic code a little bit.
That made things clearer.

I know that JME does not force me to do it in some way. I used to write GameState classes on my own, but I saw JME has something for that and therefore wanted to know which of them (GameState, AppState) should be used and how.