I understand this cannot produce the best, but im wondering if it can make decent graphics like half-life 2
Sure. If you have an artist to make all of those nice assets.
ahh ok. right on.
Actually JME3 has better and more features that the source engine at that point ever had. This starts with supported texture resolutions, and end with non fixed level limits (Source engine is somewhere <1milex1mile (varies depending on version)).
Then we support features like tesselation, the source engine could only dream about.
I’ve been doing some research and testing, the engine can go 6.
see these videos to see how far it can go
PS : forgot to say this is the result of some research and testing from @thetoucher that shows the engine can go 6.
You dare to underestimate Java?
Actually, this goes to 11
So can i do the over 9000 joke or will i get a outOfBound Exception? xD
Here’s how my game is looking so far:
I also made a plane game, though currently discontinued because of my car game:
Nothing I have made yet is available for download, just showing you what I’ve done with the engine.
Everything was with free models found on the internet. Terrain was created with the L3DT terrain editor.
Edit: actually, the plane was made by a modeller. Everything else was off the internet though. The hover tank is from JMETest’s “TestHoverTank”, and the trees are from JMETest’s “TestTransparentShadows”.
Good graphics with jME only if you know shaders and are an OpenGL expert.
There are some strong individuals here who make decent stuff (mostly their own prop software, some free).
Usually jME games have outdated graphics, with more polygons but the same poor lighting.
Good models and textures make this less obvious but it can’t compete with UE4 even with good assets.
But it’s a little bit better than starting a custom OpenGL engine from scratch - you save some time with jME.
There are other things to consider aside from graphics:
I’m still looking for a sound-subsystem similar to FMod for jME - I’m currently designing my own.
Pathfinding seems to be very poor too - you may need to write your own or integrate Recast properly.
The 3D computations seem to be Float and you need custom code for Double physics and rendering.
There seems to be no tutorial on how to make a jME game ready for Steam and support auto-update.
All in all you need to code a lot of custom code or try bad open source plugins made by others.
The community is very small and consists of one or two person teams, hobbyists and mostly amateurs.
There is no market place but a lot of (mostly prototype-stage) open source plugins and some assets.
If you have a 3D model, you need to write custom code, especially for better animations and meta info.
Some people made simple frameworks, like MonkeyZone and OpenRTS and others.
You might better start with these things, since jME is only a rendering engine and not a framework.
If you are a very good coder, you might grab some pieces here and there and rewrite your own framework.
If you are heading for the best graphics and sound and other things, you better use $$$ software.
Problem is that they want some of the profit you make and that their tools are very sophisticated.
But if you make non-profit indie games, it might be worth a look.
I’ve started to learn UE4 yesterday and am still not sure if I will abandon my 10 month work with jME.
Regarding path finding (using JME-AI library) I recently worked with and i think i can share my idea about it.(even though it wants another thread to talk about this but i think it worth to say my idea)
Yes using NavMesh generator i got poor Navigation mesh but then decided to use blender to create NavMesh for terrain and set it to PathFinding system in jme and …WoW… it’s working flawlessly and actually works more better than what I thought also runs multi threaded. So you can count on JME path finding.
I can put some video of the result if anybody wants.
Well lets reparse this, JME is good, if you can code and have not so much money.
If you have a small loan of a million dollars, rent a team and use UE4 or similar.
Anyway as the initial questions stated it, all that the hl2 engine is capable would be possible with jme3 as well.
HL2 has barely any dynamic lighting, veryvery limited shader useage (eg mostly diffuse models).
But yes if all you want to do is stuff like any unity game ever (survival) use it, because with jme you won’t get all that stuff for free. However if your game is not compatible with the base concepts of those engines (Eg Actor system in UE4), JME can actually be faster on the coding side, as you do not have to fight against the engine.
Regarding the looks - you get a very profound deferred rendering (i.e. “many lights”) and a well engineered PBR (i.e. “realistic reflections”) and good looking shadows from UE. Many thousand work hours by expert people.
Also a very versatile level editor is part of UE (jME just doesn’t have a good level editor).
As for the money aspect - yes, FMod costs. Not having something similar like FMod costs even more (a lot of time and hacking and reinventing the wheel - or a very very poor self-made sound engine that no sound designer knows how to operate).
If you don’t generate any income, UE4 might be the better choice (and also 1000$ income per month is free). If you plan to make a living from game development, UE4 is good too because you gain the opportunity to participate in industry teams. Unity might be even a better choice since most companies want Unity developers now.
A pro argument I see for jME is that you don’t run into legal problems using the source code of jME.
For the part with the Actor-concept, I’m not experienced enought with UE to say how hard it is to make something different (e.g. a turn based strategy game - where the mouse cursor is the Actor). Typically I would expect that you can make any type of game with their software too and that there are some standard solutions for little money in the market place. Will need to explore this a little bit more.
It was an interesting time I had with jME. Especially people who only know Java or are expert corporate devs with Java as their main language will like it. I’m not in one of these two groups and lost a lot of time leading to poor results. Currently I have many open questions how to do some specific things with Java and I feel that these things are much easier with C++. Problem is, that I don’t have time and need to make money from games as soon as possible. I somehow feel that I spent 10 months for almost nothing and must restart from almost zero now. I hope that problems will disappear once I start using pro software with a big community behind it. Maybe I bet on the wrong horse a second time, who knows…
About JME, graphically it is in the range from “Good Enough” to “Very Impressive”. It is quite capable and the flexibility I think is second to none since many other game engines work with a framework or paradigm. It does not have the latest bells and whistles but with what it can do one can make really good games and make people doubt that they were actually made with the Java language.
UE4 is quite an interesting engine to evaluate since the fit for a developer or group of developers is not that clear and many jump ship because of the features thinking of what they can do with it. In my opinion, UE4 is only good for talented or large teams and people that plan to be working for another game dev company in the industry. For other cases is a bit of an overkill since there are many other engines that can do exactly the same job and a lot easier.
Alright UE4 is better… obviously… Not sure we needed you for that analysis.
But I guess OP already looked into the alternatives like Unity and UE4. If he’s asking that question here it’s that JME caught his attention for some reason (free, open source, Java based, w/e).
Also, we have PBR in the master branch now. Probably not as polished as in UE4, but damn… it never will. Though it’s decent. Also, we can do many lights with decent perfs since 3.1 with the single pass lighting, and IMO deferred is not as attractive as it was before with 4K screens getting on the shelves, and the industry is gonna go back to something more hybrid between forward and deferred.
Alright, I didn’t entirely read on why UE4 has a 1.3273% better Graphics but fact is that you CANNOT EVER DAMN say “X is better than Y”.
It simply depends on the Context.
Ask any of the Core-Guys about the “lower-levelness” of the Engine. They’d tell you that that’s what they like where a beginner would love to have everything premade and just has to drag everything into his GUI and rename the Actor. Voilà, le jeu est fini.
For those Guys which don’t want to code, JME is definitely the wrong choice. You have UE4 with Blueprints or Unity with Childs making YouTube Tutorials.
Personally I (and many other people trying to achieve complex things) love that JME doesn’t add game-specific stuff. That way you can fully control the behavior. Also it doesn’t prevent you from doing things different.
Let’s just assume Engine X offers the Ability to Shoot at someone. Now, how are the Shots calculated? Out of the Weapon? Where does the Engine know the muzzles position and rotation? Automatic? Never.
It’ll shoot out of the Camera into the Direction it’s facing. Now try to cast a ray from the real muzzle in that Engine. You end up re-doing all the stuff you’d also do in JME. Plus it could also be that the engine doesn’t allow you to use
#getAttachementNode() since the 14-yrd-olds never needed that.
I can only speak for Unity since I was forced to work with it the last 5 months but what I can say is: Taking away the regular crashes and the lack of code to execute on Startup (No Main Method in that way):
THAT DAMN THING! has NO way to specify Parameters on a Controls (MonoBehavior) Constructor.
THAT DAMN THING! has NO way to simply attach/detach Objects to the Scene Graph. Upon
new they get added and on Destroy they get removed. Try to re-add that object? HA-HA.
THAT DAMN THING! is good for artists or people buying stuff off the asset store. I’m not saying Unity is bad but from a Developers side it’s just no real help. JME IS better in that regard. But not when you ask the Artists of course.
What I currently do is like coding my own Collection of Controls and AppStates (Like a Library), so I could use them in future games. The Pro here is that I completely know what they do and what I had in mind when doing it this way. This also makes your game feel more complete and authentic.
If you’re in a rush there are also pre-made libraries, they simply aren’t stock JME. I think the name was SiO2 by Simsillica GitHub - Simsilica/SiO2: Base pack of useful reusable game code that can help bootstrap any JME game project.
Now two last things:
a) JMEs Graphics Quality depends on you: Your Assets, your Shaders and your Motivation to implement something (Someone already implemented Deferred Shading on his own. Try to do such a thing with Unity without using tons of Reflection and wasting lives of brave men).
b) JME is rather a Graphics Engine than a Game Engine by Design. That makes it easy to be used for scientific projects. Who needs WASD when he is displaying the result of his depth-scan of a room and his calculated position therein?
Taking aside Pointer Arithmetics I can’t imagine any thing being easier in C++. Structure-wise it’s pretty much equal to java.
However try to do an MD5 Hash in a C++ Project. You see yourself downloading a library, compiling it and then add the resulting dll, and then you lost your platform independency (Given you could compile without jumping down the next bridge in madness).
This is the most dangerous thing one can do. Games don’t pay. The market is so huge that even good games can’t stand out because we’re all spammed with junk games. I sometimes even stop playing an AAA-title after like 12 play hrs because it’s simply no fun anymore.
Additionally games are complex. You need a team for a good game. Exchange games with cars. Would you start to build cars and sell them? Even if you buy the engine and such, the topic is still complex. Maybe a bit more complex than a game but the requirements on managing and having a team are the same.
Plus: The Game-Factor. AAA-Studios don’t get it right some times. You can’t measure why/what makes the game really fun. It takes experience, luck and a wicked mastermind to get that right.
Those things are much more important than any engine. When you can make a fun game with placeholder gfx on jme then the Engine/Graphics isn’t really what limits you.
BTW: Wanting to sell games without knowing any programming language at least decently will fail.
Are you one of those for c++? If not: Do you think that problem is engine-specific?
So to address the OP after my offtopic derail:
Sure you can compete with HL2, you can even beat the graphics quality. You can’t easily beat the networking part though.
I think you did learn something about games and programming at least? Experience is always useful.
Then, the code. Is it really worthless? Open source it and let us decide.
However… so many topics are touched. Graphics capabilities, C vs Java, jme vs UE4 vs Unity, gameplay vs graphics, economic viability… all of these deserve a thread of their own. But I think that there’s more in “money making” than “just” having a great gameplay idea, a killer engine, the skill to use it, the artists etc…
Above all you need business sense (I’m not implying you lack it, but this requirement is easy to overlook when you start with lots of enthusiasm but no real planning and simply hope to build the next minecraft).
Interesting. Did not know these details and will give it a try.
Yes, some people can do this. And since they are alone and do it from scratch, they do many things wrong. I have a book with a very simple example deferred shading (OpenGL Superbible). But in the end I would create a terrible one on my own that could not been used without lots of side-effects and short-comings.
Okay, one thing I don’t know how I should do with Java: Write an installer (wizard) that will install the software on a Windows computer so that the user can select “deinstall software” in the windows control panel. And using that install directory to save e.g. savegames or user profiles there.
Another thing: Let the user or the software select the memory consumption when the software starts, e.g. configure the JVM with how much memory and direct memory it will use before it starts.
Maybe these things can be done by a Java expert, but I just am not that experienced. Things like Gradle and JNI are problems for me, wheras compiling something with Visual Studio for all the platforms I want is quite straight forward. I often don’t know simple things like “put it on the classpath” and then seem like an idiot to those who know how to handle these things.
I can’t guarantee for luck, but the other two things are in place.
I will try when I have the time.
Sorry for having derailed this topic.
Just one advice: Make more tutorials for newbies. Offer one or two frameworks that the community finds useful and that have a good software design. Let those frameworks cover things like “show me how I can put it on Steam” and “show me how I can make an auto-update mechanism” and “show me how to deploy it nicely on the user’s machine”. Step-by-step tutorial would be best. Otherwise people like me are lost. Sure - you can do it in a 100 different ways, but at least one “example way” should be present all the time (make it two or three to show some variety).
The graphics, sound, physics, network, A.I. and stuff should be covered in a similar way. I know that MonkeyZone was meant to show networking Battlefield-like game, but is it being maintained today and works with jME 3.1?
And please make a backup of the forum and website. Don’t let users have 100+ broken bookmarks in their browsers.