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. |