Recently I have been testing enigma to fix common bugs and find out the status of the project. I used all 1092 examples from 64digits.com and converted them to enigma using the new command line interface. Only 970 of the examples tested were actually testable (404, rar files, non game maker examples).
4/970 were too old to be opened by LGM (so should have been ignored) bringing the total possible number of examples to 966
These are the results:
113/966 (11.69%) of games compile without requiring any extra functions
366/966 (37%) of games compile when a header of blank prototype functions is included.
As for the rest of the games which don’t compile, they mainly fall into the following categories:
165/966 fail to no ‘=’ support in expressions such as in if statements (even more fail at runtime due to this problem)
110/966 fail due to resource name errors (such as spaces in resource names)
84/966 fail due to syntax errors (some may not be errors with enigma itself)
77/966 examples have an unknown error which fall into a number of categories but not enough to have a category.
57/966 fail due to no support for switch statements
33/966 examples segfault during the compile phase (tracker link:
http://enigma-dev.org/tracker/ticket.php?id=101 )
25/966 fail due to the do until error (tracker link: http://enigma-dev.org/tracker/ticket.php?id=102) Fixed23/966 fail due to ambiguous functions (tracker link:
http://enigma-dev.org/tracker/ticket.php?id=105 )
19/966 fail due to the for ‘;’ error (tracker link:
http://enigma-dev.org/tracker/ticket.php?id=106 )
18/966 fail due to direction/speed error (tracker link:
http://enigma-dev.org/tracker/ticket.php?id=103 )
10/966 fail due to invalid operands to binary ‘operator%’ error (tracker link: http://enigma-dev.org/tracker/ticket.php?id=104 )It is worth mentioning that all these games have been processed through a converter before reaching enigma, automatically performing a number of regular expressions to fix common errors (mainly variable names like ‘system’ or ‘fopen’ which are function names).
The database that was created also contains all the functions that are missing in enigma which are required for each game, which may be useful later on to find out which functions are most urgent and which examples only require a few functions to be implemented.
I was thinking of using the database on a website so anyone who was interested could view the list of working enigma examples, or find out about how close an example is to working in enigma (where it fails, which error, functions required). Possibly allowing users to upload there own game and check how far enigma can get with it.
Anyway this post was just to give a little insight into the status of enigma and what are the main issues which need to be fixed.