Java for Game Development - Part 1
This is a 2 part blog entry. Part 2 will be sometime next week. This looks at the games industry and why we don't see more big screen (PC or console) games written in Java and the opportunity to change this. Part 1 focuses on market trends and general platform concerns. Part 2 will be more focued on some technical myths.
There are many games written in Java today. Obviously, there is the mobile games market. Most casual games like the ones on pogo.com and Yahoo games are written in Java (albeit Java 1.1). And there are a few PC games that are written in Java (Law and Order, Roboforge). So, when will something like Doon 3 be written in Java? It is hard to say, but the game development industry is going through a major change right now, and if we solve a few problems, we have a real shot at it.
First, let's look at the benefits that the Java platform brings to game development. Cross platform is a big benefit in the mobile games market, but in the big screen space, it is not as big of an asset. The viable platforms for big screen development are Windows, Linux, Mac, Xbox, Playstation, and GameCube. So, if you target them all, there are only six platforms. Even if Java were on them all (it is not on any console), the art assets need to be converted to each platform (graphics cards and consoles), and execution code will need to be tuned. So, cross platform is not the big pull.
The Java platform has two other benefits that do make it quite attractive. The first is managing complexity. The Java platform is used very successfully in building very large enterprise applications, and the constructs in the platform make managing the complexity of the systems possible. Games are becoming very complex. You have rendering, collision, physics, input, multiplayer, sound, and user interface systems all in one game. Engineering teams are growing and sub-systems are getting complex. The Java platform can help manage these systems. The other benefit to using the Java platform is programmer productivity. This is related to the complexity issue. Programmers need to become more productive, and the Java platform has proven to increase productivity. So, why do programmers need to be more productive? Simple - next generation game platforms. All rumors about next generation game consoles increase the amount of memory by at least 4x. That means games will create 4x the content. Game budgets are not going to increase by 4x, so the cutback needs to come from somewhere - and that is likely to be in coding.
This all gives rise to a major change in the games industry. Not long ago, all game software was written from scratch by the game developer. Recently, the games middleware industry has grown to the point of acceptance. It helps when some hit games (Grand Theft Auto, Tony Hawk) use games middleware. Because of the complexity and platform scaling of the next generation game platforms, we are starting to hear an interesting mantra - today, games middleware is optional; in the nextgen consoles, it will be required.
To make the scenerio even more interseting, the games middleware market just went through a major tremmor. The most popular middleware platform for games is Renderware from Criterion. Many, many nextgen games were planning on using Renderware. Electronic Arts, looking for a way to beef up its nextgen console middleware portfolio, acquired Criterion. Even though EA has stated that it will continue to develop and support Renderware, most developers are very scared that the largest game publisher (and their competitor) now has control of their middleware (and their publishing schedules). This has led to a widespread scramble of developers looking for alternative middleware.
I smell an opportunity.
In part 2, I will look at the myths that the game development industry has about the Java platform.
Posted at 09:20PM Sep 30, 2004 by dtwilleager in General | Comments[2]
Posted by QAChaos on October 05, 2004 at 10:21 AM PDT #
I'm quite interested to see how Java is going to leap its performance hurdle with respect to accessing native code. While I agree that Java is great at "managing complexity" (is this already a tag line, it should be) there's a more powerful force in the gaming domain that money or logic, technical bias. Until existing respected games developers start seeing games in Java that look/feel/perform like current modern games the bias will be strong (Luke) and hence the take up slow.
EA getting involved is a great sign since they seem to have a proven record of using the right tool for the job. The console market is obviously immensely improtant however with the tend towards making "media PCs" and consoles into "PC in a box" with luck Java won't have to worry about being compatible with some bespoke bits of gaming hardware. If Java is being ported this way then the public arn't hearing about it? I also find it dubious whether Java will ever be able to squeeze the performance out while still maintaining its (beautiful) abstraction above the platform.
I look forward to seeing a future populated with Java games but I have a feeling that might be some considerable distance off at this rate.
Posted by kevglass on November 01, 2004 at 05:20 AM PST #