jdstroy has started work on a Java port of Elona. This will NOT be accomplished overnight. This project will take a significant amount of time - months, if not years. So don't hold your breath. Please.
Details can be found on the official project's wiki.
Elona was written entirely in HSP. The code is difficult to maintain, as it contains few comments and it isn't very structured. If you have any coding experience, you will understand what a headache it would be to maintain.
The Java version of Elona is an attempt to port Elona to Java-enabled (J2SE) platforms, such as Microsoft Windows, Solaris, NetBSD, FreeBSD, Linux, Mac OS X, HPUX, z/OS, AIX, etc..
The primary long-term goal of this Java port is to increase maintainability and enable modifications and extensions to the game. As a subset of this primary goal, the project aims to rewrite Elona into native Java or Scala source.
As the primary long-term goal is expected to be a difficult task, the initial focus of the project will be to produce a working copy of Elona that will compile and run on the Java platform. It will attempt to be mechanics-compatible with the current, Windows-only 1.22 version of Elona. This will be done through the HSPlet framework.
- The project is not an "Open Source" version of Elona. The current terms of source code release, licensing, media used within Elona, etc. do not permit this. (Perhaps someday, if all proprietary media is removed and the project is roughly "final", it MAY be released as open source.)
- The project is not a remake of Elona (yet). The major aim right now is simply to be mechanics-compatible on a Java platform.
- While Elona itself is not Open Source, HSPlet is Open Source software with very liberal terms. The terms, however, may restrict its use in GPL or similarly virally licensed software as it imposes a constraint that is unusual in such licenses: user intent.
As of May, 9, 2011:
Help is wanted! According to jdstroy, skilled developers are needed:
- Ideally, contributors will be familiar with:
* Java * Java bytecode (the JVM instruction set) * Compiler / optimization theory * ObjectWeb2 ASM framework * HSP * English * Japanese
- That probably eliminated just about everyone. Except perhaps Yuki, who made HSPlet.
- So being a more realistic, I would like to find someone who is:
* self sufficient * motivated * willing and able to read and follow directions * willing and able to comprehend rigorous specifications * a reasonably good engineer with software (preferably Java)
The most up-to-date information can be found on the development wiki.
As of June 10, 2012, it is possible to run the development version of Elona that Noa distributed as part of the source code package. However, there are numerous bugs that need to be fixed. It is expected that the effort required to run other Elona-based variants on the HSPlet platform will be minimal. The HSPlet project is now open source, and has had its fair share of language-snob hecklers. :^)
Code size issues have mostly been resolved, but there are some code flow issues which were introduced in doing this.
As of July 2011, the maximum constant limit issue has been resolved by splitting the generated code such that the constants are in one class while the main code is in the other class.
The generated code is divided into several components; the "run" method, the entry point for the code, exceeds the maximum allowed length of a Code attribute segment, 65536 bytes. Plans are under way to consolidate parts of the "run" method to reduce the length of the Code attribute segment.
Java supports a maximum of 65,535 "constants" (variables, variable values, commands, methods...) per class. The current status of the Java port has over 135,000 constants. It will compile, but cannot run. Only when it actually runs can any further work be done on the project. The "easiest" way to accomplish this is to move all the text strings from the code itself to an outside database, and link it in separately using stubs in the code in place of the full text strings. This is the current focus of development. Any one who wishes to contribute should contact jdstroy - on Wikia or at the Elona forums. jdstroy is willing to teach as needed, so the main requirements are those listed above.
As of November 4, 2012, a Pre-Alpha version has been released to the public.