Can one make a game without extending Application?


I want to use jME to make a game, but in Clojure (a programming language). In Clojure it is possible to extend Java classes, but not to access protected members, and then extending Application or SimpleApplication doesn’t really do anything useful.

Is it possible to make a game by just instanciating an Application and using public methods to do stuff? For example, is there a way to get the root node of the scene graph by using public methods? In the tutorials SimpleApplication is used, and it has a protected rootNode, but Application does not. But Application has a lot of public getters, so maybe I can somehow get the root node with them?

Even if I was programming in Java, how do I get the root node if I use Application instead of SimpleApplication? And what’s really the difference? It sounds like SimpleApplication is somehow inferior, just going by the names.

As a last resort, I guess I could make a Java class that extends Application and makes stuff public, but I wanna know if I have to.

SimpleApplication extends Application. It’s like Application but “simpler” to use… thus SimpleApplication.

Your easiest route would probably be to extend SimpleApplication and add a public getter for root node. You can do it other ways but they get more complicated.

SimpleApplication and Application should be the same really, the “Simple” name is misleading. You should always use SimpleApplication.

Nah actually it doesn’t matter. You get some built-in stuff with Simple so its nice.

Also, there are getter methods for most of the protected fields in SimpleApplication/Application so you should still be able to use it