From that list you mention how many are original java games or complete games? none? 1? 2?
Alot of the FPS shooters use existing engines, Unreal, Crytek, Source Engine, id Tech, etc theres no such engine for Java. I’m aware of jME, Xith, Ardor3D, but they are not even close to any of the mentioned engines and their toolsets.
Games Industry is dominated by C/C++ which is tried and tested, why risk moving to something new? most(some?) programmers don’t like change.
Java isn’t really designed for gaming (even though it may be capable), just look at Swing and AWT, not to mentioned the widespread reputation Java has for being slow and bloated.
I think it’s the content problem - most other games you can either cheat or find suitable free resources for. For example RTS and racing games you can get away with heightmaps for the environment and static models. But for a FPS you need proper 3d environments and fully animated 3d characters, both of which are hard to find for free and even harder to make yourself. Which is why most people who want to make an FPS do it as a mod for an existing game and bootstrap themselves on existing content and tooling.
Pretty much all of the games on that list are ones that dodge the content issue somehow - either they take a simplified approach (like flat, doom-style 2d maps rather than proper 3d ones, or sprites for enemies rather than models) or they base themselves on an existing game to take advantage of existing content.
There are pretty much no AAA games in Java of any description.
In terms of FPS, as mentioned above FPS are very resource intensive needing really custom level design and modelling which are not programming tasks. Also there are no decent Java based FPS engines and tools for what is out there are nowhere near.
In general though, most/all Java desktop game development is indie and FPS is not a popular genre for indie development.
Why none of the experts on this forum try to accomplish a big project together that would at least earn minimum wage back for the amount of work put into? All the best people here would make a killer team like a LWJGL browser multiplayer FPS, i would choose Markus Persson as team lead only problem is yes all the main content part: textures, animated models, sound. I don’t think there would be any code wise problems in such a team.
I disagree with the DirectX requirement. Lots and lots of FPS games support OpenGL or use it exclusively over Direct3D (I believe Quake 4 uses OpenGL rather then Direct3D). There are also lots of other libraries to replace the other parts of DirectX.
FPS games typically require a lot of investment to build. I read a quote from John Carmack a few years ago where he was asked about the possobility of building something like Quake 4 (or might have been 3) in Java. His reply was along the lines of “yeah you could, but what would be the point?”. I think that really sums it up for me. It’s not about if Java is good or bad for games. It’s why invest time and effort using a language that people don’t use for games when there are plenty of languages people do use for building large games? It’s the lack of tools and experience available for Java when compared to say C++ that is holding it back.
Doing full-blown FPS is a lot of work. I know that because I work on one I’m in preparation of release of fully playable alpha version hopefully next week. It’s in development for 2.5 years currently, or even more if I count also the editor. To accomplish my goal I had to port/adjust/create some libraries: JBullet (for collision detection and ragdolls), Modern3D (for sane 3D HW access) and PureSwing (for powerful in-game GUI).
As Orangy Tang said, the big problem is in content. Creating FPS as a mod against some existing FPS is a lot easier than to bootstrap it from nothing. There is one great project that can help in that matter a lot: MakeHuman. But it gives “just” the naked human model, you have to model clothes and other things yourself, also create skeleton and animate it. I can say that GIMP & Blender are awesome tools for this.
Also game world have grow without Java and so much enterprise have already an expertise in other languages/technologies that they may not found a real value / benefit in using Java rather than something else they already know and have programmers for, If Java would bring something really better it would be used but it benefit (if there is one ?) is not enought important.
Seeing that there is no FPS made in Java may also help when come the time to make a decision of wich language to use
NB: night squad 2 is really the best Java FPS I ever seen, and for once a finished game !!
I think it’s almost matured now. Certainly mature enough to be taken almost seriously. Unfortunately each of those points outlined above is a simple strike against using Java on a project, versus C++. Fail on any one of those requirements and you’ll go nowhere with it.
If you think the Direct3D requirement is guff, you might want to enlighten me how you’re going to a) get a game onto XBox and b) convince all those experienced Direct3D programmers to learn OpenGL. I’m sure there are plenty of geniuses who are happy to learn both and claim they’re “almost identical” but the fact is, when you’re building a studio, you don’t pay people to learn stuff, you pay people who already know how to do it.
The Direct3D requirement is simply a by-product of the target platform requirement. It’s a non-trivial matter, but I wouldn’t say it’s one of the main reasons Java isn’t being taken seriously. If there were a need for a D3D binding, someone could implement it in no time.
I honestly think that the whole discussion about language/API differences and how one is better over the other is just pointless. Most development studios capable of producing AAA titles will use whatever could give them an edge over the competition. I’ll give PhysX as an example, more than half the gamers out there can’t even use PhysX acceleration, yet so many developers make extensive use of it. It makes games better and that gives them an advantage. The biggest advantage of them all is getting your game to as many people as possible, that means support for PC/Xbox360/PS3. The difference between D3D and OpenGL is a complete joke compared to the difference between developing something for the PC and that same thing for Xbox360/PS3. Yet, almost all major game engines have complete support for all 3 platforms, it took them what, one or two years max.
Learning a new language or a new API is nothing compared to the effort it takes to produce a AAA title. There’s no point trying to convince people that writing games in Java or using OpenGL will somehow make their development effort faster/easier/better. It just doesn’t matter, programming/coding isn’t the bottleneck. The real question is, what does Java the language or Java the platform brings to the table that would make developers make more money?
It is easier to write cross-platform (for computers only) games with Java, then it allows to make games for Mac and Linux too. There are enough people who want to play on Mac to get some more cash.
Good job, it is really impressive!
[quote=“princec,post:8,topic:34532”]
It is not a problem for the PC market on my view. I admit it becomes more complicated for consoles… However, don’t forget that the PS3 has a version of OpenGL-ES as far as I know
You’re right about artistic resources but there are some general 3D engines written in Java, they could be used to write a FPS. The problem is the lack of tools around them, we are very far from Unreal SDK. We need some tools for the spatial subdivisions, some editors… There is a BIG difference between a true FPS engine and a general-purpose 3D engine.
Tesseract is a finished game too.
Some guys has gone farther than me in terms of gameplay, it is obvious. For example, Tesseract is more interesting than my FPS, there are several levels, more enemies… jezek2 has been doing something really good, I’m impatient to give it a try.