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

Announcements / Re: Summary
« on: March 25, 2010, 11:00:32 PM »
Good, that liveCD was 64Bit. >_<
And yes, it does. Ism gave me some structures I needed, and I'll be returning one to her tomorrow.

Announcements / Re: Summary
« on: March 25, 2010, 10:57:16 PM »

My Linux box is presently sleeping off a headache. Ehhh... I'd tell you to download serp's GIT repo, but I don't have the link and wouldn't wish it on anyone. *shrug*

WINE should be kind to ENIGMA... It doesn't use very much...

*Fumbles a liveCD into nearby computer*

Announcements / Re: Summary
« on: March 25, 2010, 10:26:00 PM »
Also, for your consideration, what happens if you don't use var for fucking everything (I revised to use int and double):

I'd up the room speed, but I know that if my framerate limiter doesn't get it, the vsync will. So...

*Realizes he's being a dumbass*
*uploads executables* (Over 9000 sets of at least 100 bytes; estimated forever on dial-up) (Three versions included; 300 KB)

Broken old version: (at least a hundred kilobytes, but barely. Like, 30 seconds on dial-up.)

So yes, do feel free to run those. And if for some reason the ENIGMA one doesn't work, errors, segfaults, or by some miracle runs more slowly than Game Maker's, do let me know.

And in conclusion, no, tr0ll, this really never does get old.

Announcements / Summary
« on: March 25, 2010, 10:11:28 PM »
Perfect summary of the project today as I tested serp's optimization fix (which was quite full of linker errors):

Game Maker

Can't do anything fast.


Can't do anything right.



Today's lessons: Always remember to use unsigned chars when the situation calls for them, and don't be afraid to use an equation that makes sense when calculating framerate. Even when Linux won't let you use clock().
...I'll probably end up externalizing a function that uses clock() on Windows and gettimeofday() on Linux.

Technical blah:
They're actually geometric curves and trig: GM's nightmare, really. I used 20 lines each curve.

Code: [Select]

for (i=0; i<cc; i+=1) {
 for (ii=0; ii<ic; ii+=1) {
  yo[i] -= vs[i];
  ang[i] += rot[i];
  alpha[i] -= .001;
  if (alpha[i] < 0)
  cci = i;
room_caption = "Number of particles: " + string(cc) + "  FPS: " + string(fps) + "  ... Sad, really.";

Code: [Select]
repeat (2)
  xo[cci] = mouse_x - 16 + random(32);
  yo[cci] = mouse_y - 16 + random(32);
  ang[cci] = random(90);
  alpha[cci] = .12;
  rot[cci] = random(10) - 5;
  vs[cci] = .5 + random(2);
  cci += 1;
  if (cci > cc)
    cc = cci;

Code: [Select]
cc = 20;
cci = cc;
ic = 20;

for (i=0; i<cc; i+=1)
  xo[i] = mouse_x - 16 + random(32);
  yo[i] = mouse_y - 16 + random(32);
  ang[i] = random(90);
  alpha[i] = .12;
  rot[i] = random(10) - 5;
  vs[i] = .5 + random(1);

LGM can't actually pass that to ENIGMA yet, so I copy-pasted the code manually. Crude but effective.
The difference between ENIGMA's and GM's was (in addition to the caption) the repeat() value, which was 8 in ENIGMA.

I allocated like, 60 values more than I seemed to ever need, but you never know.

Anyway, thanks much to serp, who is the reason the game is like 288 KB. As opposed to like 420, which it has been before. He's probably also the reason it runs smoothly, and is certainly the problem I ran into five linker errors copy-pasting code. <3

Announcements / Re: Another quickie
« on: March 25, 2010, 09:39:11 PM »
> Just one thing, I miss the button to go to the parent directory!
I kinda miss that too. But since they at least mimicked GNOME's beautiful button-based address bar, I won't complain about that.

> First of all, I'm quite sure that you can disable that functionality in Windows 7.
I'd hope so. Fortunately, it's my mother's computer, so I don't have to worry about that.

> Second of all, what you claim is an "ambiguity" is actually not ambiguous at all. Mac's windowing system...
Yes, yes. But on XP and Vista, I knew what I was getting intuitively when I clicked a button. On Mac and 7, I'm still not sure what I'll get when I click things. I despise having to go to File->New Window in things, though it is nice that Mac does simulate an MDI and bring -all- the Windows to front when you click the icon, instead of making you select one like 7. Also, alt-tab has been pain-in-the-assified on 7.

> So it doesn't inherit ambiguity. It inherited a feature from Mac that was part of a coherent whole and shoved it onto a different paradigm, introducing that ambiguity. (Kind of like what you do when you try to combine GM and C++.)


> I can't quite understand what you're saying with the extremely poorly written ... I would say that the ribbon interface makes things more consistent and easy to find than the old drop-down menu + toolbars paradigm, and trying to switch back to it is a silly idea.
You just didn't stare at it long enough. Furthermore, if they actually had enough software that I was still forced to use in that shitty selection of theirs, it would seem more fitting for them all to have ribbons. My first thought when I saw Paint was that they were finally catching other programs up with Word. Problem is, 95% of the programs I use stick with the "File | Edit..." style menus. Not to mention that catching others up with Word isn't necessarily a good thing; Word often makes it fuck-impossible to find anything; I never had that problem before. At least Paint doesn't have enough features to really get lost in it. One nice thing about the ribbons was being easily extended as you work, so it doesn't have to show all that shit at once. Of course, try finding that shit if you need it when the program doesn't know you do...

Announcements / Re: Another quickie
« on: March 25, 2010, 05:12:52 AM »
I don't hate them for taking the idea, I hate them for taking the idea badly.

I don't see how it's different; I've used both operating systems. Windows' is slightly more functional than Mac's, but it inherits everything I don't like about the dock, namely ambiguity: Did I mean to open the current FireFox, or launch a new instance?

Also, after extended use, I find the half-ass-stolen feature to maximize your window when dragged to a certain location on the screen REALLY annoying. GNOME's was nice because it allowed you to drag a maximized window out of the way, and only re-maximized it if you dragged it back before letting go. Now every time I need to look at a lower window, I have to be careful not to drag it to the top. It's an easy habit to get into, really, it's just that they're supposed to be catering to veterans as well.

Oh, and did I mention that as I said a few years ago (and was duly flamed by someone, probably Rusky), they have finally done away with "File | Edit | View | History" in all their programs. This is funny because I was reading about the same time I started bitching this HUGE writeup on how consistency is what makes Windows so friendly, and they devoted large chunks of that document to the very menu they have now hidden. That menu was the only reason I could put up with programs, and now I need alt- to get to it. <_<

Function Peer Review / Re: Brainstorming
« on: March 24, 2010, 08:00:57 AM »
It's a single script that you can use to implement some C++ functions for use throughout the game. You can define your own global variables, your own structures, your own types, your own functions... Whatever you could need, really. Just like with any other library in ENIGMA.

Announcements / Re: Another quickie
« on: March 24, 2010, 07:27:38 AM »
Eh, XP never lost everything from a save form except the size. I can go to save things sometimes and get an empty window border. Have to restart to fix it sometimes, too. That's Vista.

Win7 I hate almost as bad. They fixed the window issues, and they even stole some really nice ideas from Linux. They also stole Mac's dock, which I HATE. Talk about unnavigable. And to make things worse, they have 10x the number of ../ loops as XP. If you click "My Documents," you're taken to a libraries folder that includes "My Documents." It's almost impossible to get to "~/Downloads" because it's not on the start menu, it can't be added to the start menu sidebar where it should have been from square one, and trying to move to ../ from their linked "My Documents" will loop "Libraries/Documents" "Libraries" "Libraries/Documents" "Libraries," just like when "My Documents/.." led to "Desktop" on XP.

I hate their new operating systems so much. Frankly, I kind of like Vista better than 7.

Announcements / Re: Another quickie
« on: March 23, 2010, 09:31:51 PM »
Code::Blocks warns Vista users to install their own copy of MinGW because the one that comes with the release breaks on Vista at times.

Function Peer Review / Re: Brainstorming
« on: March 23, 2010, 09:30:50 PM »
Half-ass name for a C++ script resource.
Cuz I stick it between C++ whitespace, besically.

Function Peer Review / Re: Collisions
« on: March 23, 2010, 07:53:31 PM »
Your assumptions are for the most part correct. I have not yet implemented a type for instances. I'm thinking it'll be of form typedef something instance_t, but have not yet decided.

Also, doesn't support rotation and scaling, yes? The math for that is out of my league due to current sleep levels. Perhaps I'll add it tomorrow...

Announcements / Re: Another quickie
« on: March 23, 2010, 07:15:42 PM »
This ^

Announcements / Re: Another quickie
« on: March 23, 2010, 04:09:08 PM »
Heh, logical structure in Enigma.

What was wrong with getting a C dll to call java functions? I found JNI quite pleasant to use for this.
I figured that I'd acknowledge that this sounded nice. I don't know much Java though, so all of this is news to me, really. Maybe that will help Ism? :P

Plus I got my macbook so would love to start on mac port whenever your ready :) Wouldn't mind looking into adding gml functions aswell if that would be ok :)
Sounds great. I'm probably not going to be happy with the documentation until I've got the entire system actually working like I say it should (meaning I want LGM-ENIGMA communication done first), but integrating it should be so simple that really you could just start by creating an empty window and GL context in a separate project, then copy over the code when you're done. There are a few function names the rest of the engine relies on; the beauty is that most of them are the GML ones, so as long as you have a header that defines those, it should integrate simply by copying over some files and possibly moving the important parts of main to an initialize function for which I have not yet settled on a name.

My current two systems, XLib and WinAPI, just leave a header to include. I haven't yet decided if that's an idea worth keeping, but will make that decision once it compiles for a system and I can start making sure my changes don't break anything.

As for input, I just keep an array of keys, but really it's up to you if you intend to implement keyboard_check and the like.

So yeah, if you like, just get a Mac copy of the OpenGL rotating-triangle example and do your best to get input functions working, and any window_ functions you can.

Thanks again.

Announcements / Re: Another quickie
« on: March 23, 2010, 07:50:28 AM »
> I didn't know that he was this engaged in the project. Good to hear
This was only a recent thing, after this was posted on the GMC:

He didn't post it, but it was inspired by him. Try not to laugh at the GMC nubblets.
"Yes, it's legitimate. Zach (the developer), has been working on it for a few days now."
"been working on it for a few days now."
"a few days now."

Anyway, the truth behind it is, (and I feel confident posting it here since none of the GMC nubblets will find this post and have their hearts broken) he just wrote something that loads GM resources. He did the programming of his test game himself. Since converting GML to C++ is a decent undertaking, I figured he may as well team up with us rather than put in his own individual attempt at converting the code. I'd have done the same with G-Java, except I prefer C++. He doesn't have a choice in his language. XD

> Can't you email them and ask for the source or some other kind of help?
These people are GNUs. They believe in Google and Doxygen, not in helping people.

Announcements / Another quickie
« on: March 23, 2010, 07:27:24 AM »
Boy metaphase is taking a long time (For those who are expecting it, hehe).

Anyway, another tidbit worth noting: "Local" typing, as in, "local struct a;" will be possible only if users ensure that said typing is done in the first event parsed. The create event is a safe bet.

Types are remarkable in that they cannot be assumed; that's why I needed a C parser in the first place.

So, I can do "local struct," which wasn't part of the original plan, but it's not going to be as convenient as "local int" or the like, simply because I can't treat something as a type before I know for sure that it is.

I've started documenting the systems that those implementing new libraries will need an understanding of. Aragon has been working on Wii things and has agreed to get started on some draw functions for ENIGMA. What's interesting is that he wanted to get started right away, so he checked out the SVN and started looking through it without docs. ;_;

What's even more interesting is that he commented on how well-organized it was, which is indeed what I was going for, but I didn't think anyone would just figure the whole thing out without bitching about documentation. Makes me wonder why I'm writing it sometimes.

Also, retep998 has volunteered to help with the collisions. I hope the undertaking will go a little more smoothly with more people on them than just me. He'll be starting that when R4 enters a stable test phase.

Ism and I talked for a bit, and now she is working on a set of classes in C and in Java that will allow the two to share resources. Getting a C DLL to call Java functions isn't going to happen, but I can probably communicate some simple instructions by returning an array of them.

Also, we used to use std-out to communicate from ENIGMA to LGM, such as info about what was taking place in the compiler. Well, now we can't, so hopefully we can create a reliable new mechanism for this. (It's a shame, too; she spent a fair deal of time threading that damn output window, and now it's useless...)

On the bright side, though we were originally afraid we'd have to add something to the path folder, we've found workarounds for that, too.

My current difficulty is figuring out a way to simplify installing a compiler for users. Problem is, Vista is incompatible with a release of MinGW for XP and the like, and I hate to think about Win7. The MinGW team has their own automated installer that downloads the correct version; maybe we can use that. The only problem that creates is locating the compiler after it installs it.... It doesn't add anything to the path variable, and the typical GM user doesn't even know what that means. ;_;

Suggestions/comments welcome. Criticism will be bashed thoroughly and considered later.