Difference between revisions of "Java"
m (→Roguelike Development: Removed ambiguous line "no executables" (see https://en.wikipedia.org/wiki/JAR_(file_format) )) |
(→Roguelike Development: Replaced broken wiki-links with http-links) |
||
Line 31: | Line 31: | ||
* No native console support. Developers of [[ASCII]] roguelikes must decide whether to | * No native console support. Developers of [[ASCII]] roguelikes must decide whether to | ||
** Use the JNI for traditional curses implmentation([[Java Curses Implementation]]) | ** Use the JNI for traditional curses implmentation([[Java Curses Implementation]]) | ||
*** Existing libraries([ | *** Existing libraries([https://sourceforge.net/projects/javacurses/ JCurses], [http://www.pitman.co.za/projects/charva/index.html Charva] or [[libjcsi]]) | ||
*** Develop a new library (e.g. wrapping the [[Curses]] C library and native methods) | *** Develop a new library (e.g. wrapping the [[Curses]] C library and native methods) | ||
** Emulate console output in platform independent AWT or Swing components. | ** Emulate console output in platform independent AWT or Swing components. |
Revision as of 08:56, 2 June 2016
Background
Java is a reflective, object-oriented programming language initially developed by James Gosling and colleagues at Sun Microsystems in 1991, as part of the Green Project. It was initially called Oak, and was intended to replace C++, although its feature set resembles more that of Objective-C. Sun Microsystems is currently owned by the Oracle Corporation, which maintains and regularly updates the Java platform.
Java should not be confused with Javascript, a scripting language with which it shares only the name and a similar C-like syntax. The Java Runtime Environment (JRE) does contain a JavaScript interpreter, however, based on Mozilla Rhino.
Specifications of the Java language, the JVM (Java Virtual Machine) and the Java API are community-maintained through the Sun-managed Java Community Process.
After first being made public in 1994, it achieved prominence following the announcement at 1995's SunWorld that Netscape would be including support for it in their next version of the Navigator browser.
Language Characteristics
- Object orientation
- Platform independence
- Automatic garbage collection
See The Choice of Java, which contains a more detailed evaluation of the language.
Roguelike Development
Java_Example_of_Dungeon-Building_Algorithm
Pros Java has excellent features for roguelike development:
- Object orientation.
- Platform independence.
- Ability to run on a web page as an applet.
- Generally easier to learn and use than other high-level languages like C and C++.
- Serialization to files makes it easier to implement and maintain game save and load.
- For developers of tiled roguelikes, the AWT and Swing libraries provide an excellent alternative to the 3rd party (or native platform) graphics libraries used in C and C++.
Cons However, it still has some disadvantages:
- No native console support. Developers of ASCII roguelikes must decide whether to
- Use the JNI for traditional curses implmentation(Java Curses Implementation)
- Emulate console output in platform independent AWT or Swing components.
- Longer initial program startup time. Java has no issues with speed once running [1], especially for RL games.
- Dependency on Java Runtime Environment
- Ahead Of Time (AOT) compiling to a specific OS is possible, e.g. using the GNU Compiler for Java (GCJ). A Windows implementation is available with MinGW.
Java Roguelikes
The features of Java have led many roguelikes to adopt this language:
Status | Name |
---|---|
7DRL | Attack The Geth |
αlpha | Beggar |
7DRL | CastlevaniaRL |
stable | Caverns of Underkeep |
Crossfire | |
CryptRL | |
Dimension Dungeon | |
Dweller (using Java Micro Edition, J2ME) | |
Earl Spork (using Libjcsi) | |
EmoSquid | |
Excitable Digger (using Libjcsi) | |
Expedition | |
Fortress of the Goblin King | |
Fruits of the Forest | |
Guardian Angel | |
HexRogue | |
Hokuto no Rogue | |
JADE | |
stable | Javelin |
Kalyp | |
Kamyran's Eye (for mobile phones) | |
Legerdemain | |
MegamanRL | |
MetroidRL | |
MIDP RL | |
Mt. Drash: the Roguelike | |
Neon | |
Netwhack | |
stable | Pixel Dungeon (for Android) |
Plutonium roguelike | |
Quarker | |
stable | QuickHack |
Roguelike Runner | |
Sigmore Mines | |
Sigmore Mines 2 | |
Tower | |
Tower of Druaga RL | |
Tyrant | |
Valley of Ge-Hinnom | |
Wayfarer (Written in Processing) | |
ZeldaRL | |
defunct | a small freeware roguelike applet created by Will Thimbleby |