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

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Josh @ Dreamland

1051
General ENIGMA / Re: Enigma and the Liberated Pixel Cup competition
« on: June 28, 2012, 10:20:15 AM »
I believe RetroX wrote up a compiler descriptor for MinGW; you could try to apt-get install mingw and use it. I've never personally tested it. To switch to it, open ENIGMA settings and switch to the API tab. Select it under "Compiler."

There is a 32-bit gcc descriptor file which should work fine. If not, all you need to do is add -m32 to the parameters in the existing Compilers/Linux/gcc.ey.

1052
General ENIGMA / Re: Enigma and the Liberated Pixel Cup competition
« on: June 26, 2012, 05:03:47 PM »
ENIGMA's been broken on 12.04 since its release due to that bug. I'm finishing up work on a replacement parser, but am not sure how quickly I can finish. As for readiness for a competition, I have entered a couple Ludum Dare competitions with it, and didn't encounter major problem. If you don't think you will be hindered by the list of missing functions, then I don't see any other problems.

And yes, ENIGMA is free as in freedom. It is licensed under the GPL, V3.

As for distribution, a 32-bit binary compiled on Debian should be compatible with a 64-bit Ubuntu 12.04 computer. If the judges have some computer that uses X11, a 32-bit Debian ELF should technically work for all of them. You could compile a 64-bit one, too, if you like.

For the Ludum Dare, I released a Windows 32 bit EXE, a 32- and 64-bit Ubuntu ELF, and a 32-bit Mac ELF, and everything blew over fine. With a heightened focus on free software, though, there are likely to be many more Linux users, which means a much higher probability of someone finding an issue with that system.

Edit: I see the contest begins on the first of next month; it seems unlikely that I will have the Ubuntu/Arch compilation issue worked out by then, but we'll see.

1053
Announcements / Parser Progress
« on: June 16, 2012, 06:14:10 PM »
I've been out of school now for a week, and have finally been able to work on ENIGMA again. In that time, I have made some significant progress on the upgraded C parser.

Given the following input code:
Code: (C++) [Select]
#include <GL/gl.h>
#include <GL/glu.h>
#include <ncurses.h>
#include <X11/Xlib.h>
#include <AL/al.h>
#include <zlib.h>

#include <stdio.h> //printf, NULL
#include <stdlib.h> //malloc
#include <unistd.h> //usleep
#include <time.h> //clock

#include <stdio.h>
#include <stdlib.h>

#include <errno.h>
#include <float.h>
#include <iso646.h>
#include <math.h>
#include <locale.h>
#include <stdarg.h>
#include <wchar.h>
#include <string.h>
#include <stdbool.h>
#include <stddef.h>
#include <malloc.h>

#include <cpio.h>
#include <dirent.h>
#include <grp.h>
#include <pwd.h>
#include <sys/ipc.h>
#include <sys/msg.h>
#include <tar.h>
#include <termios.h>
#include <utime.h>

#include <unistd.h>
#include <stdint.h>

#include <time.h>

#include <fcntl.h>
#include <sys/sem.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
#include <setjmp.h>
#include <inttypes.h>
#include <sys/utsname.h>

// Once affected by lack of '?' operator token
#include <ctype.h>
#include <wctype.h>
#include <limits.h>
#include <assert.h>

// Once affected by lack of support for public/private/protected, and by lack of support for constructors.
#include <pthread.h>

#include <sys/stat.h>
#include <sys/time.h>

#include <fenv.h>
#include <tgmath.h>
#include <complex.h>
The parse finished in 34348101 microseconds, 0 errors, 0 warnings.

Pretty great, right? No. Not pretty great. That's 34 seconds, you ding-dong.

The good news is, without Valgrind (a very awesome debugger) attached, it runs a bit faster: Parse finished in 325934 microseconds.

So, about 300 milliseconds. Not bad, really. Better news is, without rendering all parsed trees to SVG files, it operates faster still:
Parse finished in 219077 microseconds.

So about 219 milliseconds. Basically happy with that? Well, if not, you can use the parser in release mode without it tossing around debug information and with optimizations turned on: Parse finished in 97204 microseconds.

Just under 100 milliseconds. Which is where I call it "Good enough." Maybe I'll do some profiling later.

Anyway, all this is pretty good news; you might be asking, where's the bad news? Bad news is, only one of those headers had any C++ in it, and that'd be pthread.h. The parser's C++ support is only just now being filled in, and I don't have a reasonably accurate ETA on that functionality. I'm thinking it'll be working sooner than later, but only time (and further work) will tell. Fortunately, only Linux users are affected by bugs in the old parser (which would probably cause parse to fail on some of the above headers).

Anyway, I'm going to get back to work. Just a heads-up, and an "I'm still alive" deal.

PS: Millisecond times are estimates, only. Given varying processors, YMMV, not to mention that times fluctuate to ±5 milliseconds even locally on consecutive runs. The release mode time actually varies from about 93 milliseconds to 102 milliseconds here.



IsmAvatar also has some less happy news (in her words):
When one door closes, another door opens. In this case, there's a bit of reversal.
I have started a full-time programming job (I enjoy it, in case you were wondering). I will not be able to spend nearly as much time with LateralGM and the Plugin as I have in the past, and am taking a major step back away from this project. I will still be watching intently and giving my feedback, and periodically helping out with various projects (like some refactoring of the channel bots), and I will continue to fulfill my administrative duties and oversee the LateralGM side of the project (and gladly assisting anyone wishing to learn the internals or develop for it), but I will scarcely be developing. My major roles are complete at this point. I've given you a working product. Now it's time for other people to step in and polish it off.
Again, I'll be glad to help anyone who's trying to learn the internals or develop for it or whatever. Catch me on IRC, email me, or whatever.
Also, in about a month's time, my boyfriend and I will be moving in together. This will add another clamp on my free time, as I understandably like spending time with him.
I would say that I wish you guys good luck, but unfortunately you can't shake me that easily. I'm still sticking around and will continue to serve as the administrative cheerleader and GM Format gatekeeper. So I guess I'll just say: carry on.

1054
General ENIGMA / Re: LGM Image Editor
« on: June 09, 2012, 04:12:57 PM »
My participation in the development of LateralGM is an increasingly large possibility, following my quarter's worth of Java.
Having two projects is a conflict for me, and for other third parties.

If all else is the same but memory consumption, I will of course develop for JEIE.

Could we get a list of features from each project and decide a course of action from there?

1055
General ENIGMA / Re: LGM Image Editor
« on: June 08, 2012, 12:05:10 AM »
This may be a bad time to mention this, but Ism's already started one.  It could benefit both if you two attempted to consolidate them.

1056
Issues Help Desk / Re: LGM standalone game not running!
« on: May 17, 2012, 11:41:37 AM »
It seems that either LGM or Game Maker failed to finish writing your file, and that's really Game Maker's trademark. Does your game contain MP3s?

1057
Proposals / Re: Options Panel for LGM
« on: May 16, 2012, 05:41:59 PM »
Sure, but in any case, it seems to me that if you can give it features as though it will be used frequently without making it as obtrusive as if it would be used that frequently, it's a good idea to do so.

1058
Proposals / Re: Options Panel for LGM
« on: May 16, 2012, 11:26:02 AM »
Sounds good to me. Just don't overkill the UI; the reason I said combobox instead of button was so we didn't make the user move the mouse too much to pick a profile.

And yes, sorry; I did mean change a setting rather than toggle a checkbox there. Got ahead of myself.

1059
Proposals / Re: Options Panel for LGM
« on: May 16, 2012, 12:35:38 AM »
IsmAvatar: I see what polygone is saying. I had requested to you at some point that we place those defaulted presets in a settings file somewhere.

I suppose we could have the UI allow you to set them, but that could get bloaty. Maybe we could just have a checkbox that says "Default GMK profile" and another that says "Default ENIGMA profile". When you toggle a checkbox, it checks if it matches either default profile and toggles those two checkboxes accordingly. When you check one of those two boxes, it asks you to confirm, and then overwrites the default. It'd be good to find some way of showing which boxes are mismatched between the default when you mouse over the checkbox, but that might be asking too much.

If you don't like that idea, another idea is to have it keep a collection of those "profiles" that the user can add to, manipulate, and choose from. Just a combo box for "Set as profile" which contains a list of all profiles and an option for "New..." which then prompts for a name; then another combo box for "Use profile" which contains the list.

1060
Announcements / Re: Windows GIT patch
« on: May 15, 2012, 09:57:49 PM »
Until you obtain a recent build of windres.exe, widgets will not work. Period. I doubt HaRRi's version is any more recent than yours, polygone.
When we do have such a build in hand, we can implement project icons and executable info.

1061
Announcements / Re: Windows GIT patch
« on: May 14, 2012, 03:46:33 PM »
It may be that configuring ENIGMA to build static libraries for the codecs (similar to what I have done for ALURE) will fix your problem, HaRRiKiRi.

1062
Announcements / Re: Windows GIT patch
« on: May 14, 2012, 03:27:07 PM »
Of course that resolved it. The only reason anyone has that issue is because cheeseboy wrote a gcc.ey that assumes your systems are set up with MinGW and MSys in the path. That idiot.

That's why you see this line in it:
Maintainer: cheeseboy
Pretty much the mark of being broken. This is what we get for allowing Rusky to pull arbitrary changes from him without review and against my instruction.

Implement those same changes in the old wingcc_template.eyt and include it in the Autoconf folder, and ENIGMA.exe will generate correct gcc.ey files once more, and no one will ever have to run ENIGMA from Bash again. Except those people whose systems completely fuck up mkdir through CreateProcess, but I've never actually used such a machine. I'm wondering if they even exist.

1063
Announcements / Re: Windows GIT patch
« on: May 14, 2012, 08:53:18 AM »
I don't know how many regressions we've had as a result of everyone's refusal to use the git repository. I'm telling you now, though, I'm not fixing them all twice.

1064
Announcements / Re: Windows GIT patch
« on: May 14, 2012, 08:12:13 AM »
It's probably to do with HaRRi's screen_save being upside-down because bitmap is upside-down. He probably fixed it by just making everything else upside-down.

I've added the plugins folder to the archive.

1065
Announcements / Windows GIT patch
« on: May 14, 2012, 02:35:56 AM »
Since polygone is decidedly a whiny bitch, and TGMG goes AWOL every time I hint at this idea, I have gone and compiled a patch file which can be extracted over the git repository on Windows to make everything run as it did before the migration--almost.

The patch can be downloaded here:
http://dl.dropbox.com/u/1052740/WinPatch.7z

You can download the git repository as a zip archive from the GitHub page. It is the button that has a picture of a cloud with an arrow pointing down out of it, that says "ZIP" next to it. You would have to be polygone to miss it.

Anyway, this patch archive is by no means complete. It contains the following:
  • The ENIGMA.exe binary.
  • The LateralGM binary.
  • The ENIGMA plugin and JNA helper plugin.
  • The ALURE source, and the necessary configuration files to build it alongside ENIGMA and patch OpenAL into the EXEs.
  • Pre-built static libraries for libdumb, libvorbisfile, libvorbis, libogg, libzlib, and libffi.

This means that the following must still be done at some point by somebody:
  • Modify ALURE's makefile rule to rebuild on file update (I kind of just threw it together)
  • Modify the codecs to once again build alongside ENIGMA, as ALURE does.
  • Modify zlib and libffi to build alongside ENIGMA, or include their 64bit equivalents.
  • Tend that special something I forgot to do that will ever elude developers and bite users in the ass.

Anyway, I'm tired. So I think I'll take the next three minutes to rant about polygone.

You see, the reason I wnt ahead and did this is because polygone was pissing and moaning about how someone needs to "fix" the git repository. What no one here seems to understand is that the git repository is not broken.. Nor was it before I assembled this patch. There were three reasons I modified the git repository while making this patch:
  • That idiot cheeseboy committed the Windows GCC.ey, which varies from computer to computer. I needed to change two lines in it.
  • The newest ALURE calls its init statically, before main() starts, and was causing a segfault, so I needed to debug.
  • CXXFLAGS weren't getting set in debug mode, a problem that affects Git, SVN, Windows, and Linux alike.

That said, let me reiterate: The Git repository is not broken. The reason we are having these release issues is because no one can come up with a good place to put binary files, so everyone just cries and throws a tizzy instead of obtaining them for themselves. In actuality, the problem was so minuscule that even cheeseboy could solve it with his installer zip.

Now, that zip of cheeseboy's did have an issue that Rusky introduced when he decided there was no reason we would ever need a custom ALURE build. You see, Rusky lives in this ideal world where every software component on the internet is specially tailored to fit every possible need. Back in the real world, however, people like dazappa just want their game to be self-contained, and ALURE/AL are not conducive to that. So provisions had to be made. I have added to this patch a detailed set of steps followed to get from the latest version of ALURE distributed on KittyCat's website to the version you see shipped with ENIGMA. If anyone deletes that again, I will track him or her down and break every bone in every finger he or she possesses individually, using two spoons.

The moral of this story is, being a whiny bitch might actually annoy Josh into doing something.

inb4 polygone/HaRRi have some stupid problem with the patch.