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.
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.
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.
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 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.
| /trunk | next major release (1.1 branch) |
| /branches/1.0 | next minor release (1.01) |
| /branches/eval | current stable release (1.00) with score evaluation software |
| /tags/0.92 | stable 0.92 release |
| /tags/1.00 | stable 1.00 release |
| /homepage | guess 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.