ENIGMA Forums

General fluff => General ENIGMA => Topic started by: whaddsoft on August 23, 2009, 03:11:37 PM

Title: Expanding Enigma
Post by: whaddsoft on August 23, 2009, 03:11:37 PM
If we do something that expands enigma, like adding functions, are we allowed to submit them?
Title: Re: Expanding Enigma
Post by: Josh @ Dreamland on August 23, 2009, 07:39:01 PM
When R4 Comes out, you'll notice a new script-like resource that I codenamed whitespace. (The name's cute, but it'd confuse people)

Basically, this is your very own piece of C++ that ENIGMA will parse to gain additional function names. If you recreate an unimplemented GM function (or set of functions where possible) or a potentially useful library of functions, then I'd be happy to add them officially.

If for some reason I don't add them officially, you can still distribute them and others can easily add them in.
Title: Re: Expanding Enigma
Post by: whaddsoft on August 23, 2009, 07:47:17 PM
If you recreate an unimplemented GM function (or set of functions where possible) or a potentially useful library of functions, then I'd be happy to add them officially.

If for some reason I don't add them officially, you can still distribute them and others can easily add them in.
That is the answer I wanted to hear.
Title: Re: Expanding Enigma
Post by: Josh @ Dreamland on August 23, 2009, 08:06:38 PM
Yeah. My intention is to assemble a small group of coders ranging anywhere from novice to expert, as long as they have what it takes to rake together some GM functions.

Getting the behind-the-scenes things to work is the hard part; from there, it's all going to start flowing. (I hope.)
Title: Re: Expanding Enigma
Post by: whaddsoft on August 25, 2009, 01:06:37 PM
edit
A few things:
1. Are you going to make a Mac version?
2. Are you planning on doing this all from scratch? Or would you like to use a library like SFML?
3. If this project becomes complete enough, you could give up and just sell it to YoYoGames. But that would be bad. It wouldn't be open source anymore.
4. When are the 3D functions coming?
Title: Re: Expanding Enigma
Post by: Game_boy on August 25, 2009, 01:14:38 PM
edit
2. If this project becomes complete enough, you could give up and just sell it to YoYoGames. But that would be bad. It wouldn't be open source anymore.

That's the awesome thing about the GPL. If Josh does do that, the code is still open and anyone can fork it and continue development. And if Yoyo modify the code then they have to release any modifications made under the GPL too. Now if Josh was doing this alone he could grant a proprietary license so they didn't have to, but anyone who contributed code would have to be persuaded to transfer copyright too.

As far as I'm aware, 1) will be true though it will use X rather than Quartz initially so integration won't be perfect, and 3) is the least priority and will be simple to implement once ENIGMA's core is stable. Coding the GML function equivalents is, as I understand it, the easiest part. And even if he doesn't you can use some 3D DLLs made for GM.
Title: Re: Expanding Enigma
Post by: Rusky on August 25, 2009, 03:31:11 PM
That's the awesome thing about the GPL open source licenses. GPL is horrid.
Title: Re: Expanding Enigma
Post by: score_under on August 25, 2009, 04:24:42 PM
GPL is horrid.
Yeah, it can be a little over-zealous in places... especially if you're writing a DLL, in which case the GPL is just plain ludicrous.
Title: Re: Expanding Enigma
Post by: Game_boy on August 26, 2009, 03:34:13 AM
GPL is horrid.
Yeah, it can be a little over-zealous in places... especially if you're writing a DLL, in which case the GPL is just plain ludicrous.


LGPL? Or something even more permissive? No one (not even GNU) is saying the GPL is perfect for every software application.

@Rusky What's your problem with the GPL?
Title: Re: Expanding Enigma
Post by: score_under on August 26, 2009, 10:20:27 AM
LGPL?
Yeah, but I've seen a few DLLs written in the full GPL license.
Title: Re: Expanding Enigma
Post by: Josh @ Dreamland on August 26, 2009, 05:03:19 PM
Yoyo would have to be pretty desperate to break down and buy ENIGMA. No matter how well it worked.
'Sides, they'd ruin it.

Linux version *should* work on Mac, with a few hours of tinkering.
Most of ENIGMA is from scratch. Two exceptions are ZLib and LibFFI.

3D functions will be what I'm working on when everyone else is doing the easier functions. (Not long after the release of R4).
Title: Re: Expanding Enigma
Post by: whaddsoft on August 27, 2009, 01:53:55 PM
3D functions will be what I'm working on when everyone else is doing the easier functions. (Not long after the release of R4).
I don't think anyone will do the mplay functions. :D
Title: Re: Expanding Enigma
Post by: RetroX on August 27, 2009, 03:04:21 PM
Linux version *should* work on Mac, with a few hours of tinkering.
Mac is still UNIX, so the program will run (given it has the right extension, since Mac uses extensions, where regular UNIX does not).  The only problem is that you would be missing certain things required for runtime (the API, for example).  Although I'm quite sure there's runtimes for those things on Mac.
Title: Re: Expanding Enigma
Post by: IsmAvatar on August 27, 2009, 04:50:00 PM
Quote
I don't think anyone will do the mplay functions.
I did the mplay functions. You'll basically be using Sockets instead of the deprecated DirectPlay. I've been trying to create a number of functions to simplify the task and to make it as simple to use as mplay, if not simpler, while still providing the power of sockets, such as communicating with http and ftp.
Title: Re: Expanding Enigma
Post by: whaddsoft on August 27, 2009, 07:33:04 PM
Quote
I don't think anyone will do the mplay functions.
I did the mplay functions. You'll basically be using Sockets instead of the deprecated DirectPlay. I've been trying to create a number of functions to simplify the task and to make it as simple to use as mplay, if not simpler, while still providing the power of sockets, such as communicating with http and ftp.
Wait... the same functions and everything?



Code: [Select]
void d3d_draw_block(float x1, float y1, float z1, float x2, float y2, float z2, GLuint texture, float xrep, float yrep)
{
glBindTexture(GL_TEXTURE_2D, texture);
//NORTH
glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex3f(x1,y1,z1);
glTexCoord2f(xrep,0);
glVertex3f(x1,y1,z2);
glTexCoord2f(xrep,yrep);
glVertex3f(x2,y1,z2);
glTexCoord2f(0,yrep);
glVertex3f(x2,y1,z1);
glEnd();
//SOUTH
glBegin(GL_QUADS);
glTexCoord2f(xrep,0);
glVertex3f(x1,y2,z1);
glTexCoord2f(xrep,yrep);
glVertex3f(x1,y2,z2);
glTexCoord2f(0,yrep);
glVertex3f(x2,y2,z2);
glTexCoord2f(0,0);
glVertex3f(x2,y2,z1);
glEnd();
//EAST
glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex3f(x2,y1,z1);
glTexCoord2f(xrep,0);
glVertex3f(x2,y1,z2);
glTexCoord2f(xrep,yrep);
glVertex3f(x2,y2,z2);
glTexCoord2f(0,yrep);
glVertex3f(x2,y2,z1);
glEnd();
//WEST
glBegin(GL_QUADS);
glTexCoord2f(xrep,0);
glVertex3f(x1,y1,z1);
glTexCoord2f(xrep,yrep);
glVertex3f(x1,y1,z2);
glTexCoord2f(0,yrep);
glVertex3f(x1,y2,z2);
glTexCoord2f(0,0);
glVertex3f(x1,y2,z1);
glEnd();
//BOTTOM
glBegin(GL_QUADS);
glTexCoord2f(0,0);
glVertex3f(x1,y1,z1);
glTexCoord2f(xrep,0);
glVertex3f(x2,y1,z1);
glTexCoord2f(xrep,yrep);
glVertex3f(x2,y2,z1);
glTexCoord2f(0,yrep);
glVertex3f(x1,y2,z1);
glEnd();
//TOP
glBegin(GL_QUADS);
glTexCoord2f(xrep,1);
glVertex3f(x1,y1,z2);
glTexCoord2f(xrep,0);
glVertex3f(x2,y1,z2);
glTexCoord2f(0,0);
glVertex3f(x2,y2,z2);
glTexCoord2f(0,yrep);
glVertex3f(x1,y2,z2);
glEnd();
glBindTexture(GL_TEXTURE_2D, 0);
}

void d3d_draw_floor(float x1, float y1, float z1, float x2, float y2, float z2, GLuint texture, float xrep, float yrep)
{
    glBindTexture(GL_TEXTURE_2D, texture);
    glBegin(GL_QUADS);
    glTexCoord2d(0,0);
    glVertex3f(x1, y1, z1);
    glTexCoord2d(xrep,0);
    glVertex3f(x2, y1, z1);
    glTexCoord2d(xrep,yrep);
    glVertex3f(x2, y2, z2);
    glTexCoord2d(0,yrep);
    glVertex3f(x1, y2, z2);
    glEnd();
    glBindTexture(GL_TEXTURE_2D, 0);
}

I didn't test it in Enigma, but I copied that from an old "project" of mine.
Title: Re: Expanding Enigma
Post by: IsmAvatar on August 27, 2009, 10:17:33 PM
No. Like I said, you'll be using Sockets instead of DirectPlay, which means a different function set. Your mplay_ functions will no longer work, and all socket code will be Enigma-specific. But the functionality will be very similar. As anyone is very aware, the mplay code is grossly deficient; to create direct replacements for them would be an insult.
Title: Re: Expanding Enigma
Post by: whaddsoft on August 28, 2009, 11:36:36 AM
As anyone is very aware, the mplay code is grossly deficient; to create direct replacements for them would be an insult.
Ok, the answer is no.
Title: Re: Expanding Enigma
Post by: Rusky on August 29, 2009, 05:52:56 PM
Which was stated at the beginning of the post.