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

Note that here, "unimplemented" actually implies that it was implemented at some point. :D
...And will hopefully be so once more shortly.

Announcements / Re: Things that are broke
« on: April 18, 2010, 10:02:39 PM »
"Comment-out the debug flags and un-comment the release flags depending on how you want to build it."
Is that what I committed? >_<

Announcements / Re: Things that are broke
« on: April 18, 2010, 07:55:04 PM »
How odd. No, sprites don't work yet, but they shouldn't be segfaulting. That falls on Ism, though; I just iterate the structure by JNA's count.
Right now, not a whole lot is implemented. I removed most of it to make it easier to debug the important underlying components... That said, I should make a new newspost...

Announcements / Re: Things that are broke
« on: April 18, 2010, 08:04:32 AM »
> Josh, you have a whole site to document these bugs and todo's.
I would know this, as I paid for it. :3

> Use it.
The forums are simply much easier to use than editing that HTML page myself. Besides, a2h's bug tracker will be done soon.

Announcements / Re: Things that are broke
« on: April 17, 2010, 09:25:15 AM »
Yeah, it's in the later revisions. Sourceforge is back up now; give it another go.

Announcements / Re: Things that are broke
« on: April 17, 2010, 12:10:22 AM »
If you would, run LGM and go to Enigma->Keyword List->Functions and paste the contents here (preferably via pastebin, but, whatever).

Announcements / Re: Things that are broke
« on: April 16, 2010, 02:55:20 PM »
Build instructions apply to developers, too.
...Haha. Yes, I can understand why you'd skip them, since you know your way around all the other instructions there. But yeah, just get the libgl1-mesa-dev package.

Announcements / Re: Things that are broke
« on: April 16, 2010, 01:29:16 PM »
Well, it'll be nice to have someone around who isn't afraid to look at the code.
Regarding include_next; yeah, that sounds about right. Though I fail to see the point, it won't be difficult to implement.

I'll join you shortly in chat on that one (half hour or so; have to run now).

Announcements / Re: Things that are broke
« on: April 16, 2010, 09:14:45 AM »
...but also wish to use Unix.

Announcements / Re: Things that are broke
« on: April 16, 2010, 09:04:58 AM »
No worries, 11th. I've a lot to take care of.

I'm still impressed by our newest member's actions. I'm inspired. I think I may even go back and comment more things, if only for these once-in-a-blue-moon occurrences.

Announcements / Re: Things that are broke
« on: April 16, 2010, 08:38:50 AM »
I'm somewhat awestruck that you showed up, found a problem, and fixed it. That was something I really didn't expect to happen; it's like thinking there's hope for the world now. Thank you, very, very much. There is no problem with your addition of "include_next" that I can foresee; did it cause the terminal output from running LateralGM to end with a large string of Pluses? If that's the case, consider the change made, if temporarily. (I should have included protection against that error anyway; but then it would have been terribly difficult to diagnose because I missed a version of #include. I'm really glad you showed up). I will look into the behavior of #include_next; from what I can tell it should just skip the first instance it finds in favor of the second, which doesn't seem particularly useful. I will assume it should default to the first should the second not be found.

Glad to hear the engine is working well, also.

The 11th plague of Egypt--
I had to resist the temptation to read that message back to you in English (fighting usual impulse to translate an error to something the user can understand, etc.). I'm not sure why that error would occur; it's far out of my jurisdiction. My first thought was that the directory name was too long, but I see that's not the case. Basically, RapidSVN's just trying to copy over data from its temp folder where it checks out to the folder you requested, and it's failing for reason of "illegible" directory? Usually that means permissions error, but you're saving to your own desktop. That said, I'm not sure why it's doing that at all, really.

In seeing your newest comment, I am forced to believe your box is cursed. The curse may be cygwin related; are you sure it detected your compiler?

Announcements / Re: Things that are broke
« on: April 16, 2010, 07:58:40 AM »
The 11th plague of Egypt:
Good point. That was my bad.

The command line is
svn co enigma-dev
That line will invoke SVN to download ENIGMA for you in its entirety, except libzlib.a, which I provided by URL. If you downloaded RapidSVN, its interface will be a little easier. Go to the Repository menu, and select Checkout. Provide the URL, and specify where you want it downloaded.
It is ultimately best if you run it from terminal, as that will provide useful debug info.

Announcements / Re: Things that are broke
« on: April 16, 2010, 07:00:48 AM »
Your latest problem seems to be that, although the parse completed successfully, it entirely missed sprite functions. I will devise something to display a list of all available functions, if Ism will implement GM's button for it (Sorry Ism, you'll have to create a windowed text box again if we're to get this piece of information).

When you are ready, Ism, I will implement these:
Code: [Select]
const char* first_available_resource(); //Returns the name of the first resource on the list, or "" otherwise.
bool resource_isFunction(); //Returns whether the resource can be called as a function
int resource_argCountMin(); //Returns the minimum number of arguments to the function; the names cannot be fetched.
int resource_argCountMax(); //Returns the maximum number of arguments to the function; again, the names cannot be fetched.
bool resource_isTypeName(); //Returns whether the resource can be used as a typename.
bool resource_isGlobal();   //Returns whether the resource is nothing but a global variable.

const char* next_available_resource(); //Returns the name of the next resource on the list, or "" otherwise.
bool resources_atEnd(); //Returns whether we're really done iterating the list

And yes, Ism, I know we're in dire need of better coordination, but the people here most inclined to be as coordinated as you and I right off the bat all have computers that just run ENIGMA and LGM, and run them well. I can tell from the output messages what's wrong with the project, so I don't need to distribute a test game to make them run.

Announcements / Re: Things that are broke
« on: April 15, 2010, 10:21:53 PM »
Please be aware that SourceForge is undergoing upgrade work April 17th and 18th between 0500 and 1300 UTC. All components of the site are down except for the external file mirrors. This includes all SVN repositories. You can follow the site status through their website here or through @sfnet_ops -a2h

Procedure in general is as follows: (Subject to revision; pay attention)
Note: This is only for people who wish to test but do not wish to wait for "stable test," meaning "at least moderately workable pile of fail."

IRC Channel
ENIGMA has an IRC channel set up on Freenode. Predictably, it is called #enigma-dev. This link may take you there.

Revision 4.1 - Added a Linux dependency.
Revision 4.2 - Added note about running LGM from terminal
Revision 4.3 - Added Java Linux package name for the sake of sanity


If you are on Windows, do the following:
- Install an SVN client (either the command line version, or a visual one like RapidSVN or Tortoise)
- Install Code::Blocks ( )
- After checking out the SVN (see "Getting ENIGMA"), Copy this to ENIGMAsystem/additional/zlib/:

If you are on Linux, you will need the following packages:
- g++
- libgl1-mesa-dev (or similar)
- zlib1g-dev (SHOULD be installed already, but Ism's wasn't)
- codeblocks
- svn / rapidsvn / tortoise
- Java (I -strongly- recommend sun-java6-jre)

Getting ENIGMA to Work

Getting ENIGMA

-Check out the SVN repository via the most applicable of the following:
---From command line, you will use  svn co enigma-dev )
---From RapidSVN, go to the Repository menu, and select Checkout. Provide the URL, and specify where you want it downloaded.
-The above will begin downloading ENIGMA. Let it finish.
-Go to ./trunk/
-Go to ./CompilerSource/
-Open the Code::Blocks project. Find the drop down box that likely reads "Release." If you're on Linux, set it to "Release-Linux."
-Hit compile (blue gear)
-Done, go back up to Trunk

Running ENIGMA Itself (LGM)

-Run LateralGM, best done with a terminal via "java -jar lateralgm16b4.jar" -- This terminal should have +++++++++++++ at the bottom.
---If it does not, or if that errors, paste output here.
------If the terminal errors that java is not a valid application, then you are on Windows.
------Find "java.exe" and add its directory to your PATH variable from the control panel.
-Make something simple (like a single object drawing a graded circle; that's what I've been using as a preliminary test)
-Under the "Enigma" menu, hit "Run"
-Check the terminal window (the one I hope you used to run LGM) for syntax errors.
---If there is one that you don't think is correct, post it here. (I'm currently developing the syntax checker).
-Your code has now been secretly translated to C++ behind your back.

Testing the Game You Just "Ran"

-Open trunk/ENIGMAsystem/SHELL/ENIGMAengine.cbp in Code::Blocks
-Select your OS from the dropdown box once more (Debug is faster to build, release will run fastest)
-Press Compile
---If anything errors and you think you followed the above correctly, right click the error list, select "Copy Contents to Clipboard," and paste them all here.
-Press run.
---If it doesn't behave as expected, describe what went wrong here

What now?

Repeat the step starting at "Make something simple" until you're sick of finding bugs.
The most immediate concern is that everyone can achieve a simple circle.

Common Errors

error: ‘instdata’ was not declared in this scope
--This means you did not actually create a game from LGM (By clicking "Run") before trying to compile it, the compile failed due to syntax errors, or you restarted LGM in the meantime. It isn't really an error.

- SvnKit missing, corrupted, or unusable. Please download and place next to the enigma plugin in order to enable auto-update.
---This is not an error. It is a warning thrown by Enigma.jar, warning you that it's not able to update itself if you don't have SvnKit. Of course, Enigma doesn't need to update itself.

- Unable to load plugin: SvnKit.jar: null: Missing plugin entry point (LGM-Plugin)
- Unable to load plugin: jna.jar: null: Missing plugin entry point (LGM-Plugin)
---These are not errors. They are warnings thrown by LGM indicating that it can't load those files as LGM Plugins -- because they *aren't* LGM Plugins! Basically these are just reminders to the devs that we shouldn't just throw every darned file we need access to in the Plugins folder >_<

Announcements / Things that are broke
« on: April 15, 2010, 10:20:20 PM »
Those who have checked out the repository and began testing can continue reporting things here.
Presently, the project is torn between platforms, and is in what I would call a pretty pathetic state.
So far this phase, I cannot say "what works, works well." Most of the previous releases, not a lot worked, but what did was at least mostly reliable. This time, I couldn't even get it compiling on multiple platforms right away due to the insane amount of differences between each. Removing hard-coded features has proven to make the project very needy; not to mention LGM also seems to be in a worse state than last release.

What I'm coping/dealing with now:
- ENIGMA freezes/LGM segfaults on some 64bit machines (likely the ones such that sizeof(size_t) isn't matching up with another aliased size; segfault may be due to JNA's sizes not matching up with C++'s after all). Freezway has basically confirmed it is a problem with 64bit systems, as it worked fine on a 32bit version of the same OS.
- LGM's code editor is even worse on Linux; it misaligns text with cursor when keywords/comments are italicized. Not to mention on this box, Java is slower than all beans. Over all, I'm deeming it 'half a head of hair short of unusable;' but the latter half of my hair should be ripped out by tomorrow evening.
- Allocations on this box (Ubuntu) are ridiculously slow, and I have reason to believe that the frame timing mechanism is FUBAR. I will investigate thoroughly when some other problems are resolved. The reason I believe it is the allocation is that the framerate resumes full speed (if chopped) when an instance is destroyed before each new one is created (Meaning the program doesn't have to dig for more space before allocating some).
Does anyone know of a flag for fast, careless allocations? :P

If those don't seem like big problems to you, I want you to counsel me.

Other than that though, the project is great, thanks for asking. <_<"

Again, following this post are the instructions (still subject to change) for checking out and testing ENIGMA. You will have to follow these in order to test until I deem that the project is stable enough to distribute zipped (aka, when those above errors are corrected--at least ENIGMA's).

As for me, I have a lot of math homework. I will devote the first half of tomorrow to that, and then I will be done for a little until I have to write a fifteen-page essay on Scientology, which I must say I am not looking forward to.