Would you like to become involved? Enigma is developed by a small group of volunteers. We all work on it in our spare time, which is naturally scarce. If you would like to help out, you're always welcome.
If you are interested in contributing to Enigma, please subscribe to Enigma's development mailing list. Listen and ask your questions. Answer questions of others, publish own contributions like levels or patches, or offer your help.
Please note that due to the international group of developers all mailings to the list have to be written in English. If you need to attach files to your mail, check that the size does not exceed the mailing list limit of 300 kBytes. Posts that are larger than the limit will just be discarded!
Even though Enigma reached release 1.00, a long list of open tasks remain to be done. Often we do not have the resources or the skills to tackle them. Here is a list of open tasks, for which we definitely need your help. If you have the necessary skills and some spare time, please consider helping us out.
Please offer your help on the developer mailing list. There are much more open tasks than listed above and of course you are invited to submit your own ideas and contributions.
Even though Enigma does not include a level editor and you may have to dig into the simple script language Lua, developing a level is easier than you may assume.
The Enigma reference manual explains the level format and all objects you can use in detail. You should at least cross read chapters 1 - 3 and remember that you can look up details about every object.
For your first experiments and as a practical guide to level coding, you should have a look at the level development wiki. It focuses on the most common object features and gives you valuable code snippets for many common tasks.
You will find help on the developer mailing list as well as in the forum. As soon as you think that your level is finished, set the level XML attribute 'status' to 'stable' and publish the level to the mailing list and/or to the forum. People will test and comment your level. When no shortcuts are found and you finish the development of a level, you should set the status to 'released' and republish this version. We collect the levels from these sources and will contact you on remaining issues.
If you want to download the leading edge version of Enigma you need to check it out from our subversion source code repository at sourceforge. For anonymous access, simply run
svn checkout svn://svn.code.sf.net/p/enigma-game/source/trunk
to download the current revision of the next major Enigma release. Please note that this will be a snapshot of development and the revision might be incomplete and still unstable.
The repository provides several branches of the project.
You can get an up to date preview of the existing branches with sourceforge WebSVN.
For the development we recommend a Unix platform as the compilation. Installation is as simple as typing
./autogen.sh && ./configure && make && make install
For information how to compile the application for Windows read the file
Please contact us via the mailing list if you need write access to the repository.
Nearly all aspects of Enigma are internationalized. You can help in the localization of Enigma to your native language by supplying translation updates. All you need is a simple unicode supporting text editor and a tool that processes your translations for direct testing purposes.
First check that you are working on the most recent Enigma version. Please check the Development Mailing List for the current stable milestone, alpha or beta release and announce your translation effort to avoid conflicting duplicate work.
Next you need the source file containing the translations for your native language. These files are located in the project's subdirectory 'po' and are named by the international language code with the extension '.po'. E.g. the Spanish translation source file is named 'es.po'. You can check out the most recent version via svn from the trunk as described in section Application Development, or you simply ask for a copy on the Development Mailing List. In case you start the translation of a new, not yet supported language you should ask for an initial source file on the mailing list anyway.
The 'po' file can be viewed and completed by any pure text editor. Do not try to edit it with word processors like 'Word' which try to format the text. The text editor should be able to support UTF-8, which allows you to insert all characters of your language. E.g. one of many such editors is jEdit, a Java based editor.
Within the 'po' file every translatable text is given as a block of several lines. First one or several lines starting with a hash sign '#' will give you some information. The subsequent line starting with "msgid " contains the English original text, and the translation follows in the line starting with “msgstr ”. Both, the original text and the translation, are enclosed in double quotations marks '“' being not part of the text itself. Both texts can be split to several lines, the text part on each line being enclosed by double quotations marks. In case you need to insert a double quotation mark within the text you need to enter the two characters '\”'. In case you need to force a line break you need to enter the two characters '\n' into the translation. The initial hash comments give you helpful information. Texts originating from levels identify the title and author. Level texts are less important than menu button texts of the application. For some texts the authors provide translation comments that give important hints for the translation. In case a comment of type “use” is given, the level author himself did provide a translation for your language. Best pratice is to copy this string to the msgstr line. You will find additional information in the reference manual in subsection Internationalization (i18n).
Now that you have added translations you should test your work. Especially menu strings need to fit into the given space on buttons. The required tool set is the GNU gettext software. Windows users can download from GnuWin32 gettext the binaries and the dependency packages. You need just the file 'bin/msgfmt.exe' from the binaries package and the dll libraries located in the 'bin' subfolder in the dependency package. Copy them to a folder out of the execution path. Now you are ready to format the translation from the command prompt. Change the current directory to the directory containing your 'po' file and issue, replacing the prefix 'pl' standing for Polish by the prefix of your language:
msgfmt -c --statistics -o enigma.mo pl.po
The resulting file 'enigma.mo' can be directly used by Enigma. Windows users just need to locate the folder of the application executable and replace the original copy at the subfolder 'data\locale\pl\LC_MESSAGES', where 'pl' is again the prefix for Polish, which needs to be replaced by the code of your language. Do not forget to publish your 'po' file after finishing your translation work.