2004 Web and Downloadable Games White Paper 
IGDA Online Games SIG 
security issues as they attempted to develop atop a variety of commercial hardware platforms, and they 
invented Java to soothe the pain. 
The real commercial emergence of Java was as an embedded environment in browsers for the delivery of 
interactive content. The portability and security features of Java made it the ideal choice for embedding in 
browsers that needed to execute unknown content in a secure `sandbox'. However, inconsistent 
implementation of the Java environment across competing browser products defeated the original `write 
once, run anywhere' promise.  
Since those early days, Java has evolved considerably. Java 2 was launched as a successor to the 
original Java and comes in three `editions', each one tailored for a specific class of problems. The original 
Java has gone on to become Java 2 Standard Edition (J2SE), a Java platform targeting a desktop 
environment. The Java 2 Enterprise Edition (J2EE) has emerged as a superset of the J2SE intended for 
deployment in enterprise and server oriented environments. Finally, Java 2 Micro Edition (J2ME) has 
emerged as a slimmed down Java platform for resource limited devices that still might benefit from the 
Java platform. This paper will cover the J2SE platform as it is the most relevant to web and downloadable 
game development.  
Java 2 Standard Edition
37
  is the desktop edition of the Java platform. It provides an extensive array of 
class libraries and is available on a wide variety of platforms including Windows, Macintosh, and various 
UNIX based OS's. 
It is worth quickly pointing out the differences between the J2SE Software Developer's Kit (SDK) and the 
J2SE Java Runtime Environment (JRE). The SDK is the software developer kit that includes the compiler 
and tools necessary for Java development. These are the tools developers will need to author games in 
Java. The JRE, on the other hand, provides the necessary tools to run Java based applications. This is 
the platform clients will need to run Java based titles. 
a) 
Core Capabilities 
Java as a programming language is an object oriented language that many find easier to develop in, 
compared to C and C++. It has automatic garbage collection and a rich bundled class library that 
helps in handling many programming problems inherent in game development. Java also includes 
high level support for network programming and multithreading. 
The basic platform contains a powerful framework for developing portable user interfaces including 
support for pluggable UIs. Included are user interface elements designed to mimic the appearance of 
the various environments to which Java has been ported. The underlying Abstract Windowing Toolkit 
(AWT) provides the low level support for windowing system and user interface capabilities while the 
layered Java Foundation Classes (JFC) provide the high level pluggable UI componentry. 
J2SE includes the Java 2D API
38
  for advanced 2D graphics. This is an API for 2D game 
programming and includes a vast array of features for implementing 2D games. Java 2D supports 
both windowed and full screen modes. 
J2SE also includes the Java I/O System for communication with different sources: files, the console, 
network connections, etc. Utilizing the I/O library, Java can be used to design and implement a 
multitude of game architectures: from standalone application games to peer to peer multi player 
games, and finally even large client/server games. 
b) 
Extending Java 
Java provides a standard mechanism for platform extension via native code called Java Native 
Interface (JNI). This makes it practical to use Java as a scripting language while leveraging any 
existing libraries and allowing developers the ability to implement more performance oriented 
operations in native code. 
In particular, the Java 3D API
39
  is one such extension that provides advanced 3D APIs built atop 
OpenGL and Direct3D. While this extension is available only on a limited number of platforms, it is a 
                                                      
37
 http://java.sun.com/j2se/ 
38
 http://java.sun.com/products/java media/2D/ 
39
 http://java.sun.com/products/java media/3D/ 
Page 68 of 93 




Unlimited Web Hosting




 
TotalRoute.net Business web hosting division of Vision Web Hosting Inc. All rights reserved.