Pages: 1 2 »
  Print  
Author Topic: Help a noobie.  (Read 27722 times)
Offline (Unknown gender) skarik
Posted on: January 28, 2009, 10:31:53 pm

Member
Joined: Jul 2008
Posts: 46

View Profile WWW Email
DLL Support: Any date? Seriously. I'm not going to be using this for 2d. GM's 2d capabilities are fine.

GM7 Support: Does it work?

Enigma: What is it? How the f*ck does it work? Why is Lateral GM included? Should I just stick with making console games in C++?

Variables: Can I now have a boolean variable for a "global" variable that only has two values?

Objects: Can I have empty objects that just compute? Can I turn off all step 'events' and collision 'events'? How does object count affect FPS?

Inheritance: More than one?

Permissions: Can I make object variables inaccessible by other objects?

Ownage Factor: Good enough to own GM?
Logged
~~
Offline (Male) notachair
Reply #1 Posted on: January 28, 2009, 10:34:25 pm

Definitely not a chair
Contributor
Joined: Feb 2008
Posts: 299

View Profile
DLL Support: That would break cross compatibility, though you really will need to get an answer from Josh.

GM7 Support: LateralGM has it, so yes. But not all functions are implemented and so on, so... :/

Enigma: Compiler for Game Maker code which is in progress. LGM is the front-end. Maybe.

Variables: Ask Josh.

Objects: Ask Josh.

Inheritance: Ask Josh.

Permissions: Ask Josh.

Ownage Factor: Not now.
Logged
Offline (Male) Rusky
Reply #2 Posted on: January 29, 2009, 05:52:06 pm

Resident Troll
Joined: Feb 2008
Posts: 954
MSN Messenger - rpjohnst@gmail.com
View Profile WWW Email
Ask josh as said a2h, but since it's still ALPHA why are you even considering "ownage factor?" O_o
Enigma is a compiler for GM. LGM is included because there is also a plugin that is included with it that gives you a menu item to compile using Enigma.
Logged
Offline (Male) Josh @ Dreamland
Reply #3 Posted on: January 29, 2009, 06:05:43 pm

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

View Profile Email
Quote
DLL Support: Any date? Seriously. I'm not going to be using this for 2d. GM's 2d capabilities are fine.
OpticalLiam was really looking forward to that, too, so I will probably give it a shot before next release. Note that they will almost definitely not work on Linux.

Quote
GM7 Support: Does it work?
LateralGM supports GMK files. The, er, three functions they added between 6 and 7 are already implemented. It functions on Vista as well.

Quote
Enigma: What is it? How the f*ck does it work? Why is Lateral GM included? Should I just stick with making console games in C++?
It parses your code into C++. It uses OpenGL as the graphics system, and WinApi for Windows windows, Xlib for Linux windows. It makes things easier by doing a good amount of recoding for you, as well as coming with a lot of premade functions that simplify things further and remove pointers from the picture. (Which I'm considering making optional) The real benefit to be seen now is that your games can't be decompiled by an automated tool.

Quote
Variables: Can I now have a boolean variable for a "global" variable that only has two values?
Sure you can, but note that a boolean still takes up four bytes even if there's just one of them, as a rule of C++.

Quote
Objects: Can I have empty objects that just compute? Can I turn off all step 'events' and collision 'events'? How does object count affect FPS?
Next release, for certain. I've got most of a new system done (I work on different things intermediately) that will let you remove everything altogether, including ID. (It will be replaced by C++'s this (which is a pointer to the current instance) Count doesn't affect FPS very much at all. Like in GM, having a hundred thousand objects won't even slow the game now, as long as they don't have events. Code runs faster by nature in ENIGMA, though, as it's compiled.

Quote
Inheritance: More than one?
Heredity isn't implemented yet. I was hoping to get it integrated in the new instance system I mentioned earlier.
Unlike my critics would have you believe, it isn't as easy as adding the word struct before the code you enter in LGM and sending it to GCC. I can't just use C++ heredity and have everything work the same way; if I did that, instance_nearest and the like wouldn't recognize child objects as a type of the object you pass it. That's the big reason I haven't just done it as a five minute task. I'll see about getting it implemented in the new system.

Quote
Permissions: Can I make object variables inaccessible by other objects?
I don't know why you would want to, so I haven't implemented it. If you can give me a good reason for it, I'll add a keyword for it. (Rather, I'll abuse C++'s private keyword and use it as a declarator like Java does)

Quote
Ownage Factor: Good enough to own GM?
We're getting there. A few people said GM died when I implemented build mode, but I think that was the excitement of something totally new talking, rather than the big picture.
« Last Edit: January 29, 2009, 06:26:03 pm by Josh @ Dreamland » 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 (Unknown gender) skarik
Reply #4 Posted on: February 02, 2009, 10:31:15 pm

Member
Joined: Jul 2008
Posts: 46

View Profile WWW Email
Quote
OpticalLiam was really looking forward to that, too, so I will probably give it a shot before next release. Note that they will almost definitely not work on Linux.
I don't mind if it the game won't work on linux, though that would definitely be a plus. It wouldn't really work though, would it? I mean, Wine is already messed up enough. Half Life 2 on Linux was awesome though. Ah, the epic-ness...

By the way, I noticed that the list says no screen_redraw().
What's with that? That's my baby! I must turn automatic drawing off if I'm in 2d. Then again, I probably do want to use this with 2d. There is a few problems with the speed in GM7, though, when not at full screen which is the weirdest crap. (45 FPS to 123? How does fullscreen do that?)

Anyhow, this thingy seems pretty kickass.

Quote
The, er, three functions they added between 6 and 7 are already implemented. It functions on Vista as well.
Well, you know, there's some things out there that just taste GM7 and then throw up. How about the functions from GM5? I loved those, especially the drawing functions/tools.

Quote
It parses your code into C++. It uses OpenGL as the graphics system, and WinApi for Windows windows, Xlib for Linux windows. It makes things easier by doing a good amount of recoding for you, as well as coming with a lot of premade functions that simplify things further and remove pointers from the picture. (Which I'm considering making optional) The real benefit to be seen now is that your games can't be decompiled by an automated tool.
So I get a compiled game? I should at least finish something in C++ first, because this makes me feel guilty.

Quote
Next release, for certain. I've got most of a new system done (I work on different things intermediately) that will let you remove everything altogether, including ID. (It will be replaced by C++'s this (which is a pointer to the current instance) Count doesn't affect FPS very much at all. Like in GM, having a hundred thousand objects won't even slow the game now, as long as they don't have events. Code runs faster by nature in ENIGMA, though, as it's compiled.
That this is awesome. One of those few things I understood when the basics of C++ became less basic.

Quote
Unlike my critics would have you believe, it isn't as easy as adding the word struct before the code you enter in LGM and sending it to GCC. I can't just use C++ heredity and have everything work the same way; if I did that, instance_nearest and the like wouldn't recognize child objects as a type of the object you pass it. That's the big reason I haven't just done it as a five minute task. I'll see about getting it implemented in the new system.
I see.

Quote
I don't know why you would want to, so I haven't implemented it. If you can give me a good reason for it, I'll add a keyword for it. (Rather, I'll abuse C++'s private keyword and use it as a declarator like Java does)
Nah, don't abuse anything. Just keep it solid.

Quote
We're getting there. A few people said GM died when I implemented build mode, but I think that was the excitement of something totally new talking, rather than the big picture.
Reminds me of how Ultimate3d was at version 1.31. Sucked balls and was dang slow. It took a few years for it to grow, but it did grow. Basically, it's now that GM slows down U3D, which rocks. I really hope this project grows.
Logged
~~
Offline (Male) sprintf()
Reply #5 Posted on: February 02, 2009, 11:09:59 pm

"Past Contributor"
Location: S. Wales
Joined: Apr 2008
Posts: 72
MSN Messenger - dmgoron@gmail.com
View Profile Email
Quote
Note that they will almost definitely not work on Linux.
Um... Why? Linux provides an interface for DLLs very similar to Windows.
http://www.ibm.com/developerworks/linux/library/l-dll.html [ibm.com]

Quote
Sure you can, but note that a boolean still takes up four bytes even if there's just one of them, as a rule of C++.
One, at minimum [cplusplus.com].


Incidentally, it's 4:32 AM.

« Last Edit: February 02, 2009, 11:32:51 pm by bigmoron » Logged
Offline (Unknown gender) score_under
Reply #6 Posted on: February 03, 2009, 06:33:22 am

Member
Joined: Aug 2008
Posts: 308

View Profile
If you have 8 custom-made boolean variables, they can each take up 1/8 of a byte, if you use the right macros.
Code: [Select]
#include <stdio.h>
#define GetBool(var,pos) ((var>>pos)&1)
#define SetBool(var,pos,setto) (var=((var&~(1<<pos))|(setto<<pos)))

unsigned short AllBools; //2 bytes = 16 vars

int main()
{
  SetBool(AllBools,0,1);
  SetBool(AllBools,1,0);
  SetBool(AllBools,2,1);
  SetBool(AllBools,3,0);
  SetBool(AllBools,4,1);
  SetBool(AllBools,5,0);
  SetBool(AllBools,6,1);
  SetBool(AllBools,7,0);
  SetBool(AllBools,8,1);
  SetBool(AllBools,9,0);
  SetBool(AllBools,10,1);
  SetBool(AllBools,11,0);
  SetBool(AllBools,12,1);
  SetBool(AllBools,13,0);
  SetBool(AllBools,14,1);
  SetBool(AllBools,15,0);
  //Or whatever.
  if(GetBool(AllBools,14))
  {
    printf("Hooray.\n");
  }
  if(!GetBool(AllBools,9))
  {
    printf("Hooray.\n");
  }
  return 0;
}
For extra points, you can #define each of the indices to make them work more like variables.
Logged
Offline (Male) Josh @ Dreamland
Reply #7 Posted on: February 15, 2009, 05:13:56 pm

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

View Profile Email
So yeah, um, topic split cuz because.

And er, there actually is a screen_redraw(), I'm just too lazy to update the list.

Does that answer all your questions?
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) sprintf()
Reply #8 Posted on: February 17, 2009, 05:36:02 pm

"Past Contributor"
Location: S. Wales
Joined: Apr 2008
Posts: 72
MSN Messenger - dmgoron@gmail.com
View Profile Email
Because there's nothing else to do around here? :)
Logged
Offline (Unknown gender) score_under
Reply #9 Posted on: February 17, 2009, 07:59:03 pm

Member
Joined: Aug 2008
Posts: 308

View Profile
Yeah. Sure.

Nothing except....

POSTING ASM!
(Haha, made you flinch!)
Logged
Offline (Unknown gender) ludamad
Reply #10 Posted on: February 17, 2009, 08:29:55 pm
Developer
Joined: May 2008
Posts: 1256

View Profile Email
Just to clarify, boolean variables don't take 4 bytes in typical C++, they take one byte (which is still 7 bits of waste, but not as dramatic as Josh thought).
Logged
Offline (Unknown gender) skarik
Reply #11 Posted on: March 03, 2009, 07:27:06 pm

Member
Joined: Jul 2008
Posts: 46

View Profile WWW Email
Okay, I have another question:

Why the hell is LGM so slow? Damn, I can't even edit a damn room! What the damn?!

Truthfully, it's damn fast until I open I a damn room. Then it's almost as if the damn thing just downright damn freezes. Damn!
Logged
~~
Offline (Unknown gender) skarik
Reply #12 Posted on: March 03, 2009, 07:27:20 pm

Member
Joined: Jul 2008
Posts: 46

View Profile WWW Email
Woah, this forum is damn fast.
Logged
~~
Offline (Unknown gender) skarik
Reply #13 Posted on: March 03, 2009, 07:31:28 pm

Member
Joined: Jul 2008
Posts: 46

View Profile WWW Email
This is horrible. I don't have a single game that's enigma compatible without A) adding more functions B) breaking out some moves C) adding some C++.
Logged
~~
Offline (Unknown gender) skarik
Reply #14 Posted on: March 03, 2009, 07:31:39 pm

Member
Joined: Jul 2008
Posts: 46

View Profile WWW Email
All of the above.
Logged
~~
Pages: 1 2 »
  Print