I asked chatGPT about jmonkeyengine, what do you think?

I finally get to use this service I asked it a few questions in hurry and I might asked it more in future, and this are my questions:

What is jmonkeyengine?

JMonkeyEngine (JME) is a free, open-source game engine written in Java that is designed for creating 3D games. The engine was initially developed by Mark Powell, Paul Speed, and Mark Kennedy, and was first released in 2003. Since then, it has undergone several major updates and improvements.

JME is designed to be lightweight, easy to use, and highly modular, making it a popular choice for indie game developers and hobbyists. It is built on top of the Lightweight Java Game Library (LWJGL), which provides low-level access to the capabilities of the computer’s hardware, such as the graphics card and keyboard. JME also includes a built-in physics engine, support for advanced lighting and shading, and support for importing and exporting various 3D file formats.

JME is built with Java and supports development with Java, and popular language like Python, Ruby, and Lua using Jython, JRuby and LuaJ respectively.

The JMonkeyEngine community is an active, vibrant community of developers, artists, and other enthusiasts who are constantly working to improve and expand the capabilities of the engine. If you want to learn more about the engine, you can visit the JME website which includes a number of tutorials and guides to help you get started.

can I build a complete commercial game with jmonkeyengine alone?

It is possible to build a complete commercial game using JMonkeyEngine alone, as it provides many of the features you would need to create a 3D game, such as a built-in physics engine, support for advanced lighting and shading, and the ability to import and export various 3D file formats. However, JMonkeyEngine is primarily a game engine, which means that it provides the basic building blocks for creating a game, such as a rendering engine and a physics engine, but it does not include all of the tools and assets you would need to create a complete game by itself.

To build a complete commercial game, you would also need to use other tools and assets. For example, you would need to use a 3D modeling program to create the models and textures for your game, and you would need to use a sound editing program to create the sounds and music for your game.

That being said, JME community offer large amount of community made assets and tools to use, however depending on the complexity of your game, you may find it necessary to use other external tools or libraries to achieve your desired feature set.

In summary, while it is possible to build a complete commercial game using JMonkeyEngine alone, it is likely that you would need to use additional tools and assets in order to create a fully-featured game.

can you provide me some examples of simple games that I can build them myself to earn money using jmonkeyengine?

There are many different types of simple games that you can build using JMonkeyEngine that could potentially earn you money. Here are a few examples:

Endless Runner: This is a type of game where the player controls a character that automatically runs forward and the player must jump or slide to avoid obstacles. This type of game is simple to build and can be very engaging for players.

Platformer: Platformers are games where the player controls a character that can jump and run on platforms. This type of game can be simple to build, but can also be very challenging to play.

Puzzle: Puzzle games are games that require the player to solve a problem or challenge. There are many different types of puzzles, such as matching games, physics-based puzzles, and more. These type of game are relatively simple to build but can be very entertaining

Top-down shooter: is a type of game where the player controls a character and must shoot enemies while navigating through the level. These types of games can be simple to build and can be a lot of fun to play.

Virtual Pet: Virtual pet games allow players to take care of a virtual creature. You can create a simple virtual pet that players can feed, groom and play with.

These are just a few examples of simple games that you can build using JMonkeyEngine. Keep in mind that in order to make money from these games you need to find a way to monetize them, for example you can use ads, or in-app purchase, or offer a paid version of the game with extra features.

Also, the key to success with making money from games, is not only the game itself, but also the marketing and promotion strategies.

can you give an sample game code of endless runner using jmonkeyengine?

I’d be happy to give you an example of Endless Runner game using JMonkeyEngine! However, JMonkeyEngine is a complex engine and building a full game involves a lot of code, also providing a complete code for an Endless Runner game would be quite involved, and would likely take a significant amount of time to write.

Instead, I can give you an idea of what the code for an Endless Runner game in JMonkeyEngine might look like, and some tips on how to get started building it.

To begin, you would need to create a main class that sets up the basic elements of the game, such as the player character, the camera, and the game world. This would involve creating a SimpleApplication class and overriding the simpleInitApp() method.


public class EndlessRunner extends SimpleApplication {
//create a variable for player character
private Player player;
//create variable for the obstacles
private Obstacle obstacle;
//create variable for the background
private Background background;

public static void main(String[] args) {
    EndlessRunner app = new EndlessRunner();
    app.start();
}

@Override
public void simpleInitApp() {
    //initialize player character
    player = new Player();
    //initialize obstacles
    obstacle = new Obstacle();
    //initialize background
    background = new Background();
    
    //attach player and obstacles to the scene graph
    rootNode.attachChild(player);
    rootNode.attachChild(obstacle);
    rootNode.attachChild(background);
    
    //set up camera and lighting
    flyCam.setMoveSpeed(5);
    viewPort.setBackgroundColor(ColorRGBA.White);
    //create a keybinding for the player to jump
    inputManager.addMapping("jump", new KeyTrigger(KeyInput.KEY_SPACE));
}
//update loop
@Override
public void simpleUpdate(float tpf) {
    //update player position
    player.update(tpf);
    //update obstacles position
    obstacle.update(tpf);
    //update background position
    background.update(tpf);
    //check collision between player and obstacles
    if(player.collidesWith(obstacle)) {
        // game over
    }
}

}


This is a general idea of how the code for an Endless Runner game in JMonkeyEngine might look like, where you have the main class that creates the Player class, Obstacle class and the Background class, and you will update these class in the simpleUpdate() loop, and you check the collision in the same loop.

Keep in mind that this is a simplified example, and building a complete Endless Runner game will involve a lot more code and many more classes, such as classes for handling input, displaying the user interface, and managing the game’s state.

Also, this is a rough example just to give you an idea of how JMonkeyEngine works, and the actual implementation will be much more complex, for a more detailed and informative examples, I suggest you to check JMonkeyEngine documentation and tutorials on the official website, and also the community examples as well.

how much can I get from such a game?

The amount of money you can make from a game like an Endless Runner, or any other type of game, can vary greatly depending on a variety of factors. Some of the main factors that can affect the potential revenue of your game include the quality and uniqueness of the game, the size of your target audience, and your marketing and promotion strategies.

A common way of making money from mobile games is by using in-app advertisements and in-app purchases. In-app advertisements can generate revenue by displaying ads in your game and paying you for each ad that is displayed. In-app purchases can generate revenue by allowing players to purchase in-game currency or other virtual items. The revenue you make from in-app ads and purchases depend on the number of players you have, the number of ads and purchases made, and the amount of money you are paid for each ad or purchase.

Another way to make money from a game is by selling the game itself, either through app stores such as Google Play or the Apple App Store, or through other distribution channels. The revenue you make from selling a game will depend on the price you set for the game and the number of copies you are able to sell.

It’s also worth noting that the amount of money you can make from a game can also depend on the platform the game is on, as some platforms pay more than others. For example, you may make more money on PC or console platforms compared to mobile platforms.

In terms of how much money you can make, it’s difficult to give an estimate without more information about your specific game and how it will be marketed and sold. Some indie games make very little money, while others can make hundreds of thousands or even millions of dollars. But keep in mind that many factors must be aligned, it is not just the game itself, but also the timing of the launch, marketing, distribution channels, and many more.

To sum it up, the revenue generated from a game can vary greatly depending on the game, the target audience, the platform it is released on, and how it is marketed and promoted. it’s always good idea to have a clear strategy and realistic expectations.

can you provide me some examples of simple games that I can build for pc?

Sure! Here are a few examples of simple games that you can build for PC using JMonkeyEngine:

2D platformer: A 2D platformer is a game where the player controls a character that can run and jump on platforms. This type of game is relatively simple to build and can be a lot of fun to play. You can use JMonkeyEngine's built-in 2D rendering capabilities to create the game's visuals, and you can use the engine's physics engine to handle the character's movement and collision detection.

Top-down shooter: A top-down shooter is a type of game where the player controls a character and must shoot enemies while navigating through the level. This type of game is relatively simple to build, and can be a lot of fun to play. You can use JMonkeyEngine's built-in 3D rendering capabilities to create the game's visuals, and you can use the engine's physics engine to handle the character's movement and collision detection.

Puzzle: Puzzle games are games that require the player to solve a problem or challenge. There are many different types of puzzles, such as matching games, physics-based puzzles, and more. These types of games are relatively simple to build but can be very entertaining to play.

Text Adventure: Text adventure games, also known as interactive fiction games, allow players to interact with a story using text commands. These type of games are simple to build but can be very engaging to play.

Chess: chess is a classic board game that can be simple to build using JMonkeyEngine, you can use the engine to create the chessboard and the pieces, and use the engine's physics engine to handle the chess piece's movement and collision detection.

These are just a few examples of simple games that you can build for PC using JMonkeyEngine. As I mentioned earlier, JMonkeyEngine is a complex engine and building a full game involves a lot of code, however the engine provides many features to help you to build your games.

Keep in mind that building a complete game will require a significant amount of programming, as well as game design, art, and sound work. And it is a good idea to start small and gradually build up the complexity of the game, as you gain more experience with the engine.

I want to make the game’s visual in Anime style in jmonkeyengine, what are shaders I must use?

The server experienced an error while processing your request. Sorry about that! You can retry your request, or contact us through our help center at help.openai.com if the error persists.

To create an Anime-style visual in JMonkeyEngine, you can use shaders to achieve the desired look. Shaders are small programs that run on the GPU (graphics processing unit) and are used to control how the graphics are rendered.

To achieve an anime-style look, you can use a combination of different shaders.

Toon Shader: A toon shader is a type of shader that simulates the look of cel shading, which is a technique commonly used in anime and cartoon animation to give a 2D-like appearance to 3D models. JME includes a built-in toon shader that can be used to achieve this effect.

Outline Shader: Many anime-style characters have a visible outline around the characters and objects. You can use an outline shader to add this effect to your 3D models.

Soft Particles Shader : Many anime style games have a lot of particle effects, such as dust, smoke, and fire. JMonkeyEngine includes a built-in particle system, but in order to have a softer look you can use a soft particle shader to blend particles with the background.

4.Bloom Shader: Some anime style games have a blooming effect, where the edges of the screen appear to glow. A bloom shader can be used to achieve this effect.

Depth of field (DOF) shader: in order to add more focus to the main character, you can use a depth of field (DOF) effect, this effect can make an object in focus while the background is slightly blurred.

These are just a few examples of shaders that can be used to create an anime-style visual in JMonkeyEngine. Keep in mind that you don’t have to use all these shaders, you have to test the different shaders and see which ones work best for your game. Also you might want to tweak the different parameters of the shaders to get the exact look you want.

It’s also worth noting that JME community have a lot of free and paid add-ons that include shaders, which can also be very helpful, so it is a good idea to check the community resources before you start your work.

pbrlighting material is the default material for models and it doesn’t have toon capability, how can I achieve this effect?

You’re correct that PBR (Physically Based Rendering) lighting is the default material in JMonkeyEngine, and it is not designed to create the cel-shaded “toon” look that is commonly used in anime-style games.

However, there are a few ways you can achieve a toon-like effect with JMonkeyEngine.

One way is to use the built-in toon shader that JME provides. The toon shader is a post-processing effect that can be applied to the entire scene after it has been rendered. It is typically used to give a cartoon-like appearance to 3D models by using a limited number of shading levels. You can use the toon shader in conjunction with the PBR lighting.

Another way is to use a custom shading algorithm and the GLSL shaders. The custom shading algorithm can create a toon-like look by defining a fixed number of shading levels and then dithering the colors between those levels.

A third way is to use pre-existing third party assets or libraries. You can find a lot of free or paid assets that can help you achieve the toon look such as toon shaders or libraries, you can use these assets in conjunction with JME.

Additionally, you can also use a combination of different techniques, like adjusting lighting, adjusting the material properties, adjusting post-processing effects and many more to achieve the final look that you are looking for.

Keep in mind that it takes some experimentation and tweaking of different parameters to get the exact look you want, it also might take some time to get the effect that you’re looking for. I recommend checking the JME documentation and tutorials for more information about the available shaders and techniques you can use, and also check the community resources for examples.

can you give some of free pre-existing third party assets or libraries that deal with toon effect for jmonkeyengine?

Sure, here are a few examples of free pre-existing third-party assets or libraries that can be used to create a toon-like effect in JMonkeyEngine:

Toonify: This is a free toon shading library for JMonkeyEngine. It allows you to easily create a toon-like look for your models, and it can be used with the PBR lighting system. Toonify also includes a variety of settings for customizing the toon look, such as outline width and color, shadow intensity, and more.

CelShader: This is a free cel-shader library for JMonkeyEngine. It allows you to create a toon-like look for your models, by using a variety of techniques, such as adjusting lighting, adjusting material properties, and post-processing effects.

SimpleToon: SimpleToon is a simple toon shading solution for JMonkeyEngine. It uses a single-pass forward rendering to produce the cartoon-like look. It has a variety of settings, including toon strength, color, and outline size.

JME Toon: JME Toon is a free, open-source toon shading library for JMonkeyEngine. It aims to provide a simple, easy to use solution for creating toon-style shading in your games and applications.

CartoonFX: CartoonFX is a free, open-source library for JMonkeyEngine that allows you to easily create cartoon-like visual effects in your game.

Keep in mind that these libraries are not official JMonkeyEngine’s libraries, so you might want to check their compatibility with the version of JME you are using and their

which one is better for anime style game?

That can depend on your specific needs and preferences, each library has its own strengths and weaknesses.

Here’s a brief overview of the strengths of each library:

Toonify: it allows you to easily create a toon-like look for your models, and it can be used with the PBR lighting system. it also includes a variety of settings for customizing the toon look.

CelShader: This library allows you to create a toon-like look for your models, by using a variety of techniques, such as adjusting lighting, adjusting material properties, and post-processing effects.

SimpleToon: it's a simple toon shading solution that uses a single-pass forward rendering to produce the cartoon-like look.

JME Toon: It's a free, open-source toon shading library that aims to provide a simple, easy to use solution for creating toon-style shading in your games and applications.

CartoonFX: CartoonFX is a free, open-source library that allows you to easily create cartoon-like visual effects in your game, like particle effects and more.

It’s a good idea to try a few of them out, and see which one gives you the best results for your specific needs and preferences. Additionally, you can also use a combination of different techniques and libraries to achieve the final look that you are looking for.

Also, you might want to check their documentation, community support, and the quality of the assets, in order to have a better sense of how they can help you and how easy they are to use.

which is more profitable and easy to make an anime style runner game or a surviving horror game alone with jmonkeyengine?

The profitability and ease of making an anime-style runner game or a survival horror game with JMonkeyEngine will depend on a variety of factors, such as your experience and skill level with the engine, the complexity of the game, the target audience, and your marketing and promotion strategies.

In terms of profitability, both types of games have the potential to be profitable, but the success of the game will depend on how well it is received by the audience and how well it is marketed. Survival horror games have been popular for a long time and have a dedicated fanbase. But the anime-style runner games also gaining popularity these days.

In terms of ease of making, an anime-style runner game might be considered as an easier game to build, as it typically involves less complex game mechanics, and smaller game worlds. It also might be easier to find suitable assets to build the game. While a survival horror game is usually more complex than the anime-style runner game, it will often require more advanced game mechanics, and larger, more detailed game worlds.

Keep in mind that creating a game is a very complex and time-consuming task, regardless of its genre. It requires a lot of programming, as well as game design, art, and sound work. And it’s good to have a clear strategy, realistic expectations and also a clear budget in order to achieve the final product that you want.

Also, before diving into developing the game, it’s a good idea to do some research on the market, to see what similar games are popular, what features they have, and what their target audiences are. This can give you an idea of what you need to include in your game to make it appealing to players.

Is photo realistic hard to achieve in jmonkeyengine?

Achieving a photo-realistic look in JMonkeyEngine can be challenging, as it requires a high level of technical skill and a deep understanding of 3D graphics and the engine’s capabilities.

To achieve a photo-realistic look, you’ll need to pay attention to many different aspects of the game, such as lighting, texturing, and shading. JMonkeyEngine’s PBR lighting system provides a good starting point for creating realistic lighting, but achieving a truly photo-realistic look will require fine-tuning the lighting and adjusting various other settings such as global illumination, ambient occlusion and more.

Additionally, for realistic texturing, you’ll need to use high-resolution textures, and pay attention to how they are mapped onto the 3D models, how they are lit and how they are shaded. You’ll also need to pay attention to the details of the models themselves, such as their geometry and topology, to make sure they look as realistic as possible.

One of the most important things to consider when aiming for photo-realism is the use of real-world data to inform your lighting and shading choices. Having accurate real-world data allows you to more easily match the lighting and shading in your game to that of the real world.

It is worth noting that achieving a true photo-realistic look is a very difficult task, and is often the result of many hours of work and fine-tuning. However, with advancements in technology and the rapid progress being made in the field of 3D graphics, it is becoming increasingly possible to create highly detailed and realistic-looking games using JMonkeyEngine or any other engine.

It all depends on the amount of resources you are willing to invest and the level of detail you want to achieve in your game, it is a good idea to start with a lower level of detail and gradually build up to the final desired level of realism.

I have experience in java and some in jmonkeyengine, so for me as solo developer which is the best for me jmonkeyengine, unrealengine, unity, or godot to build profitable and easy game?

The best engine for you to build a profitable and easy game as a solo developer with your level of experience in Java and JMonkeyEngine will depend on a number of factors.

JMonkeyEngine: JMonkeyEngine is a powerful and flexible game engine that is based on Java, which means you will have an advantage by already knowing Java and have some experience with the engine, JME is known for its flexibility and for providing a high degree of control over the game development process. However, it also requires more programming and technical knowledge to use effectively.

Unreal Engine: Unreal Engine is a very powerful and widely-used game engine that is known for its high-end graphics capabilities. But it requires a good understanding of C++ programming.

Unity: Unity is a popular and easy-to-use game engine that can be used to create games for a variety of platforms. It has a large community and a lot of online resources. Unity uses C# language, you have an advantage if you already have experience in Java, as the learning curve will be relatively low.

Godot: Godot is a free and open-source game engine that is known for its flexibility and ease of use. The engine is written in C++ and GDScript. GDScript is similar to python and also provides an easy learning curve for developers with a background in Java.

I recommend evaluating each engine based on the features they offer and their suitability to your specific needs, as well as your experience and expertise. I suggest to start with the one that you feel more comfortable with or the one that requires fewer resources and time to learn, then as you learn and gain more experience, you can start exploring the other options.

Also, as I previously mentioned, creating a game is a complex and time-consuming task, regardless of the engine used. Therefore, it’s always a good idea to have a clear strategy and realistic expectations, and keep in mind that the engine is only a tool, it’s the quality of the game.

6 Likes

Amen.

8 Likes

Semi-related, I saw this video in my recommendations and took a look: I asked an AI to create Minecraft from scratch. - YouTube

…it was fun to see jMonkeyEngine popup in a completely separate context.

4 Likes

Did the AI choose jme because it is java based as minecraft built in java? cool

Dunno. To be honest, I didn’t even read the prompts he was using with any detail.

I think we may be safe in our jobs for now at least!

To give it it’s due I asked it to write me a function to find the shortest distance from a point to a 3d triangle in java and its implementation was better than mine and worked perfectly. Admittedly that probably was because its source material contained that function but still…

ChatGPT should better use jme wiki :-).

1 Like

ChatGPT’s unfaltering patience is the biggest proof it isn’t human.

I haven’t read much apart from the “this is amazing” posts that are all over the place. There are probably loads of articles like this, but this one by Stephen Wolfram popped up, and I found it interesting:

A few weeks ago I heard how chatGPT could be useful for writing code so I gave it some prompts to write code using JME. It was very good at writing single-purpose functions. But I also tried to get it to write a Tetris and Pong game, as well as a very bsaic foundation for a MOBA game and the results were interesting.

It did a good job writing the tetris and pong code, but it had to be prompted to keep going multiple times. I think there is a cap on how much code it will write in a single reply, but if I sent it another message saying “keep going” then it would continue, although often times with less accuracy so I’d have to be more specific. (For example, it provided me with the tetris pieces and the grid, but it didn’t want to write any code in the update loop until I explicitly asked it to code the game-play mechanics using the update loop). The conversation eventually bugged out and stopped replying to me so I didn’t get it to complete the whole Tetris game (it was still missing a visual representation of the tetris grid) but the code it provided was still a great foundation for a tetris game.

Then I asked it to code the foundation for a MOBA game using JME ( a complex but still fairly trivial process for a skilled human considering the basic nature of a MOBA) but it just told me that’s too complex of a request and said that it also requires lots of art.

So then I asked it the same thing but tried to tell it to not worry about art: “code the basic foundation for a moba game in JMonkeyEngine 3. ignore the art and just use a terrain for the map with color-coded spheres and boxes for everything else.”

And all it did was give me a basic terrain example with a red and blue sphere placed on it for the player and the enemy player, and it had a blank update method with the “to-do” comment in it, and then it gave me a generic reply about all the things I still need to add to make it a moba.

So i asked it to do those things for me (specifically asked it to code in player movement and a single lane that spawns creep to fight in the middle, as is expected in most mobas) and although it did write working code to handle creeps (represented as green boxes) that move towards the enemy player, the result was unorganized since it was all jammed into the main class, and it would probably need lots of refactoring to be scaled up for a working game.

So I think it would be possible to write a complex game like a MOBA in JME with chatGPT, but it would require a lot of very specific prompts and hand-holding to tell it to keep writing more code whenever it tries to keep things simple or when it leaves a “to-do” comment in a method. But it is neat to see that it could be pushed to write a full game (minus the art) if you were perseverant enough, although at its current state I think most skilled game devs would still be better off writing the bulk of the code on their own, and only reference chatGPT for help with specific things like complex math or writing code that is tedious for a human. Very interesting nonetheless and it will be even more interesting to see how things have changed in a year or two as this type of ai improves.

1 Like

I think the developers of chatGPT limit it on purpose because of server issues of handling requests and for not making problems in job industries, I think in future it will be pay for work -soon freelancers will be out of business

That would make sense. It also said my saved chat logs were deleted from 2-3 weeks ago when I initially asked it all these questions because of the high traffic they’re getting, so I mostly had to go based on memory typing up my last post, and as a result I also unfortunately never got to test any final game-code that it generated.

It has a lot of potential when I asked it about technical stuff about “how to do” in glsl shaders, the responses was great, as long as it doesn’t do itself for you you’ll get a lot of hints

Update
Even in the Art side, it has a lot of potential … just look at this AI generated art

Yeah AI art is definitely impressive right now, I wonder how long it will be until the functionality of art-generating AI is combined with the code-generating functionality of chatGPT. Then you could theoretically prompt an AI to code a game with unique art.

I imagine that one day in the future, there will be a gui-based app where “game devs” can explain their game, check a box for “rpg” or “platformer” and set a large array of parameters relating to the gameplay and art style. Then the app will just use AI to generate an entire game and the user can repeat the process over and over while they fine-tune the parameters until the game turns out how they envisioned. For our sake, hopefully this is a very far way off lol.

Yes, it is really scary future, it’ll be all over again steam engine era :sweat_smile: