I've recently finally decided to port my in-JVM VM programming language to Terasology and make use of it.
The language has syntax very similar to JavaScript, but is a bit stricter (requires semi-colons at the end of statements, all variables have to be declared). This is due to the fact that the program is "compiled" into Java objects that interpret it when program is run, and I didn't want to bother with some technicalities of a less-strict language.
The implementation of the Alpha of the module is already finished and it features couple of exiting things:
If you are willing also to make some graphics for me, I need 4 item images for the 4 modules available in the game - "Mobility", "Inventory Manipulator", "Internal Storage" and "World interaction (block destruction)". Also an extra image is required for the "Computer Terminal" item.
And finally a couple of images and videos, most of them are outdated, but why not.
Images:
The language has syntax very similar to JavaScript, but is a bit stricter (requires semi-colons at the end of statements, all variables have to be declared). This is due to the fact that the program is "compiled" into Java objects that interpret it when program is run, and I didn't want to bother with some technicalities of a less-strict language.
The implementation of the Alpha of the module is already finished and it features couple of exiting things:
- syntax checking while typing with error message and location,
- syntax highlighting while typing (stops at first encountered error),
- automatically generated documentation available in clickable format (hyperlinks between documents), along with history "Back", "Forward",
- each computer has a predefined amount of "virtual" CPU cycles, memory and stack size, if a program exceeds the memory or stack size, it exits with appropriate message, on each tick, each computer in the game can run operations up to the specified amount of "virtual" CPU cycles, each operation performed by the computer consumes configured amout of CPU cycles,
- instead of wait-and-check that is often used (i.e. wait 1 second, check if inventory is not empty, repeat), computers support conditions - these allow to define a condition upon which the computer should be awakened from sleep to continue the program (i.e. inventory state changed, signal state changed, etc),
- computer's available functionality is configurable by the player, each computer (per type) has a defined number of module slots available, each slot enables specific set of operations to perform, i.e. manipulating inventory, movement, block destruction, internal storage, etc.
- full modability - new modules can be developed and added by other mod developers, computer modules are extremely easy to implement and bind into the scripting engine,
- full extensibility - new pre-defined objects can be added by other mods, also existing objects can have methods added,
- players with specified permission will be able to, using a special console, query "virtual" CPU cycles user per player each tick, and to limit specific player's CPU cycles available across all of their computers to prevent lag if that player is abusing the module,
- players with specified permission will be able to set maximum number of CPU cycles available for all computers on the server per tick, each computer then will be scaled down, so that the total of all CPU cycles/tick does not exceed the limit set,
If you are willing also to make some graphics for me, I need 4 item images for the 4 modules available in the game - "Mobility", "Inventory Manipulator", "Internal Storage" and "World interaction (block destruction)". Also an extra image is required for the "Computer Terminal" item.
And finally a couple of images and videos, most of them are outdated, but why not.
Images:
- Live syntax checking in action - http://imgur.com/bjIvnBM
- Clickable documentation - http://imgur.com/scS4I8c
- Embedded styles (examples) in documentation - http://imgur.com/nRSjvJH
- Live syntax coloring - http://imgur.com/bjIvnBM
- Introduction to module (lesson), make sure to enable captions -
- Example of sorting program -
- Example small mining program -
- Auto generated documentation -