Development

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.

Up Development Mailing List

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!

Up Open Tasks and Wishes

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.

Non-Programming Tasks

  • Translation. Enigma has proper support for languages other than English. If you would like to localize Enigma to your native language concerning application menus and levels, the manuals, this homepage or the level developer wiki, please contact us.
    Easy
  • Better graphics. We're currently lacking in the arts department, as you may have noticed. If you have more talent than we have, we'd be only too glad to replace our sprites, logos, and other images with better ones.
    Medium
  • Sounds. Sounds are currently incomplete, and some of the existing ones might (do!) need some polish.
    Medium
  • Tech Support. The more popular Enigma gets, the more technical questions and problems arise on mag-heut.net and the developer mailinglist. Some questions may have already been answered in thread or even be listed in the FAQ's. Any Enigma power user with experience of the installation on one or several operating systems can help us figuring out the reason of the problems and answering the questions. New FAQ should arise of repeating questions.
    Easy-Medium
  • Open License Consulting. We try to integrate as many useful additions to Enigma as possible. But we want to ensure that Enigma can always be distributed without restrictions. However, the involved licenses are sometimes hard to interpret and difficult to combine - and we have already been banging our heads against the wall dealing with little nuisances of this kind. We wish we had a contact person who is familar with this topic and could advise us from time to time.
    Easy-Medium

Programming Tasks

  • Levels. Enigma lives from a constant stream of new (good) levels. Do not wait until you have played all levels before writing your own ones. Collect your ideas, look for help in the Level Development section and do not forget to publish your results!
    Easy-Medium
  • Ports and Packaging. Are you familar with application development and packaging on a platform? We would like to improve the packaging for the already supported platforms (Windows installer, Linux packages for more distributions,…). We need programmers who constantly test and maintain the development versions of Enigma on as many platforms as possible (Mac OS X, Visual Studio,…). Would you like to port Enigma to a new platform like game consoles or handhelds?
    Easy-Difficult
  • Automization of score upload. We would like to offer an auto upload of new scores and ratings like the automatic download of the evaluated ratings. Client and server parts are needed.
    Medium
  • Keyboard Input Method, Pasteboard Access. Enigma is based on SDL which does not support a proper input of umlauts or non-ASCII characters. Uniform support for the input of all characters on all operating systems would be desired. We are also looking for a support of copy and paste, too.
    Medium
  • Level editor. As the existing editors are not up to date and are not as portable as Enigma we think of a Java based editor, an extension of the XML level format and an interface to Enigma. A useful editor is a good deal of work and not at all easy.
    Medium-Difficult
  • Network game. This is a major and non-trivial undertaking, as Enigma has not been designed for a networking game mode from the very beginning. Thus the main tasks are internal reengineering. If you like challenges and like to dig into the C++ core part of Enigma, feel free to join us.
    Difficult

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.

Up Level Development

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.

Up Application Development

If you want to download the leading edge version of Enigma you need to check it out from our subversion source code repository at Berlios. For anonymous access, simply run

svn checkout svn://svn.berlios.de/enigma-game/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.

/trunknext major release (1.1 branch)
/branches/1.0next minor release (1.01)
/branches/evalcurrent stable release (1.00) with score evaluation software
/tags/0.92stable 0.92 release
/tags/1.00stable 1.00 release
/homepageguess what

You can get an up to date preview of the existing branches with Berlios 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

doc/README.mingw32

Please contact us via the mailing list if you need write access to the repository.

Copyright © 2003 -2007 by Daniel Heck and contributors. The textual content is available under the Creative Commons License.
Page version: $Revision: 1.84 $, last update: $Date: 2008/05/03 11:10:14 $ .