ENIGMA Development Environment
Website is in read-only mode due to a recent attack.

Pages: 1
  Print  
Author Topic: Enigma status  (Read 2581 times)
Offline (Unknown gender) TGMG
Posted on: May 27, 2011, 01:38:01 AM

Developer
Joined: Jun 2008
Posts: 107

View Profile WWW Email
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) Fixed

23/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.
« Last Edit: May 27, 2011, 01:08:07 PM by TGMG » Logged
me
GMbed 2.0 :: Embed you gm games in websites.
Offline (Male) Josh @ Dreamland
Reply #1 Posted on: May 27, 2011, 10:11:56 AM

Prince of all Goldfish
Developer
Location: Pittsburgh, PA, USA
Joined: Feb 2008
Posts: 2951

View Profile Email
I'm happy you did this.

Anyway, I've read through the tracker artifacts and responded to each. I assigned most of them to me, but on one I need more info, and two I assigned to you. The two I gave you are so small that the fix should be included in the same revision. One of them is a copy-pasta, the other is simple but is going to keep giving, so for the sake of not having thirty tracker artifacts, I assigned it to you so you can fix it next time. Just remember to define them for variant and var alike. I recommend using const var& and const variant&, really.. Bah, I'll add that to my reply.

Anyway, thanks for the heads-up. Hopefully we can get the majority of them compiling with filler functions shortly.
Logged
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble
"I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
Offline (Male) kkg
Reply #2 Posted on: May 29, 2011, 12:19:52 PM

Member
Location: Australia
Joined: Nov 2009
Posts: 84
MSN Messenger - kamikazigames@gmail.com
View Profile Email
I wish I was clever enough to do these things :D

Anyway those are some really neat statistics TGMG, and show that ENIGMA is really progressing ^_^V
Logged
PC: Core i7-2600 @ 3.8ghz | 4x 4gb G.Skill RipjawZ DDR3-2000 | GTX580 | Win7 x64
Time is the greatest teacher, however it kills every single one of its pupils.
Offline (Unknown gender) TGMG
Reply #3 Posted on: June 29, 2011, 11:34:16 AM

Developer
Joined: Jun 2008
Posts: 107

View Profile WWW Email
You can find the latest results from enigma r796, with all the non-implemented functions each example requires here:
http://www.alasdairmorrison.com/enigmaexamples/index.php

Now I am going to work on making this compile for other platforms such as iphone and android straight after it compiles for mac (hopefully skip all the parsing and exporting of resources), then update the website so its possible to see the status of each example for each platform.

After that I hope to implement a similar site where users can submit there own games, it will test how far enigma gets with them and display the functions that are missing for their game for each platform. In theory allowing people to be emailed when enigma successfully compiles their game, or just to see how enigma deals with their game without having to setup enigma and the multiple sdks (android ndk, iphone sdk).
Hopefully in the future uploading the executables to the website will be possible, creating a database of enigma games and examples compiled for various platforms that the original creator might not even own (mac).

You can now also see the most required unimplemented functions:
http://www.alasdairmorrison.com/enigmaexamples/MissingFunctions.php
« Last Edit: July 02, 2011, 10:51:16 AM by TGMG » Logged
me
GMbed 2.0 :: Embed you gm games in websites.
Offline (Unknown gender) TheExDeus
Reply #4 Posted on: July 08, 2011, 10:15:48 AM

Developer
Joined: Apr 2008
Posts: 1860

View Profile
Why does it say "enigma_max", "enigma_floor" and so on? I suspect these are just the regular max and floor functions, but ENIGMAS current max implementation can only have two arguments (while here it could require more).
Logged
Offline (Male) Josh @ Dreamland
Reply #5 Posted on: July 08, 2011, 11:37:39 AM

Prince of all Goldfish
Developer
Location: Pittsburgh, PA, USA
Joined: Feb 2008
Posts: 2951

View Profile Email
I've begun work on a varargs class that, when excepted as a parameter, allows functions to be called with unlimited arguments. Like in scripting languages. You could fetch the number of arguments, iterate through them, sort them... anything you need to implement functions like mean(), mode(), median(),  choose()... The drawback is that they require a macro.

At the moment I'm torn between allowing ENIGMA to deal with that macro (it has to have some knowledge of it to allow unlimited arguments in a function) or just adding a #pragma directive that will give them infinite parameters automatically. I'll probably do the former; the latter's kludgy.
Logged
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble
"I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
Pages: 1
  Print