Hi folks,
many of you are also map makers for Warcraft 3 and thus know Vexorian's vJass (and later Zinc). The languages are great but miss some core features (type checking especially), so we thought that we need a really good, clean extension language for starcraft 2. We want to introduce this language to you already now in early beta, to allow you to give feedback and help us to shape the language like users want it to be (we re also happy about bug reports, of course).
We are some map makers from germany and already did much stuff for Warcraft 3. I made GMSI, a script language to alter Warcraft 3 maps procedurally ("makefiles for maps") and I specialize in compiler construction at my studies. My mate tolleder has experience in mpq handling and blizzard's file formats. So we have some pretty good starting point for creating a hopefully good extension language.
Let me shortly introduce our main goals to you:
The language is totally written in JAVA so it is (hopefully) platform independent. Even the mpq handling code (not yet included, but already working, more or less) is completely written in java without any storm.dll or sfmpq.dll that would break the platform independance.
Please try out the language and tell us what you think about it!
We have prepared to documents for telling you what exactly the language will be able to do when it is finished an what is already working now.
Roadmap that shows an overview of all features and how far they are implemented. Also download is available here (scroll down to the bottom).
Specification: Detailed description of all features, their syntax and their semantics. Every feature that is described here is already working in the current release.
Thanks for your attention .
many of you are also map makers for Warcraft 3 and thus know Vexorian's vJass (and later Zinc). The languages are great but miss some core features (type checking especially), so we thought that we need a really good, clean extension language for starcraft 2. We want to introduce this language to you already now in early beta, to allow you to give feedback and help us to shape the language like users want it to be (we re also happy about bug reports, of course).
We are some map makers from germany and already did much stuff for Warcraft 3. I made GMSI, a script language to alter Warcraft 3 maps procedurally ("makefiles for maps") and I specialize in compiler construction at my studies. My mate tolleder has experience in mpq handling and blizzard's file formats. So we have some pretty good starting point for creating a hopefully good extension language.
Let me shortly introduce our main goals to you:
- Being totally compatible to galaxy, allowing for the use of 'legacy' galaxy code (all galaxy code also compiles with the Andromeda compiler, but might get optimized)
- Providing object oriented paradigmns (Classes, Interfaces, "Enrichments", Inheritance, Generics and even reflection (partly, as much as possible with galaxy code), ...)
- Deep syntax analysis for finding possible errors (dead code, unused variables / functions, ...)
- Comprehensive Code optimization (function inlining, removing comments and whitespace, resolving constant expressions, ...)
- Convenient constructs that are found in most languages but missing in galaxy (++/--, for loop, for each loop, casts, block comments, overloading ...)
- Help for debugging, by allowing to override native (and thus track) function calls and other debugging stuff (we are even working on a debugger for it).
- Preprocessing for adding some code in debug mode for example (#ifdef, #define, ...)
- Speed. Andromeda was coded to be fast. Even if it is written in Java, it can parse, check and compile the native libraries (around 3000 lines of code) in only 0.3 seconds on my machine.
- We sticked to the JAVA specification wherever possible. So the language syntax (especially the object oriented one) is copied from java, so if you can write a java class, it is probably also correct Andromeda code. However, we added some non-java stuff like accessor methods and some syntax to stay compatible to galaxy (structs, typedef,...).
The language is totally written in JAVA so it is (hopefully) platform independent. Even the mpq handling code (not yet included, but already working, more or less) is completely written in java without any storm.dll or sfmpq.dll that would break the platform independance.
Please try out the language and tell us what you think about it!
We have prepared to documents for telling you what exactly the language will be able to do when it is finished an what is already working now.
Roadmap that shows an overview of all features and how far they are implemented. Also download is available here (scroll down to the bottom).
Specification: Detailed description of all features, their syntax and their semantics. Every feature that is described here is already working in the current release.
Thanks for your attention .