Pages: 1 2 »
  Print  
Author Topic: Expanding Enigma  (Read 3101 times)
Offline (Unknown gender) whaddsoft
Posted on: August 23, 2009, 03:11:37 PM
Member
Joined: Jul 2008
Posts: 12

View Profile Email
If we do something that expands enigma, like adding functions, are we allowed to submit them?
Logged
Offline (Male) Josh @ Dreamland
Reply #1 Posted on: August 23, 2009, 07:39:01 PM

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

View Profile Email
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.
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) whaddsoft
Reply #2 Posted on: August 23, 2009, 07:47:17 PM
Member
Joined: Jul 2008
Posts: 12

View Profile Email
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.
Logged
Offline (Male) Josh @ Dreamland
Reply #3 Posted on: August 23, 2009, 08:06:38 PM

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

View Profile Email
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.)
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) whaddsoft
Reply #4 Posted on: August 25, 2009, 01:06:37 PM
Member
Joined: Jul 2008
Posts: 12

View Profile Email
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?
« Last Edit: August 25, 2009, 01:51:19 PM by whaddsoft » Logged
Offline (Unknown gender) Game_boy
Reply #5 Posted on: August 25, 2009, 01:14:38 PM
Member
Joined: Apr 2008
Posts: 228

View Profile
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.
« Last Edit: August 25, 2009, 01:16:50 PM by Game_boy » Logged
Offline (Male) Rusky
Reply #6 Posted on: August 25, 2009, 03:31:11 PM

Resident Troll
Joined: Feb 2008
Posts: 955
MSN Messenger - rpjohnst@gmail.com
View Profile WWW Email
That's the awesome thing about the GPL open source licenses. GPL is horrid.
Logged
Offline (Unknown gender) score_under
Reply #7 Posted on: August 25, 2009, 04:24:42 PM

Member
Joined: Aug 2008
Posts: 308

View Profile
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.
Logged
Offline (Unknown gender) Game_boy
Reply #8 Posted on: August 26, 2009, 03:34:13 AM
Member
Joined: Apr 2008
Posts: 228

View Profile
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?
Logged
Offline (Unknown gender) score_under
Reply #9 Posted on: August 26, 2009, 10:20:27 AM

Member
Joined: Aug 2008
Posts: 308

View Profile
LGPL?
Yeah, but I've seen a few DLLs written in the full GPL license.
Logged
Offline (Male) Josh @ Dreamland
Reply #10 Posted on: August 26, 2009, 05:03:19 PM

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

View Profile Email
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).
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) whaddsoft
Reply #11 Posted on: August 27, 2009, 01:53:55 PM
Member
Joined: Jul 2008
Posts: 12

View Profile Email
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
Logged
Offline (Male) RetroX
Reply #12 Posted on: August 27, 2009, 03:04:21 PM

Master of all things Linux
Contributor
Location: US
Joined: Apr 2008
Posts: 1055
MSN Messenger - classixretrox@gmail.com
View Profile Email
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.
Logged
My Box: Phenom II 3.4GHz X4 | ASUS ATI RadeonHD 5770, 1GB GDDR5 RAM | 1x4GB DDR3 SRAM | Arch Linux, x86_64 (Cube) / Windows 7 x64 (Blob)
Quote from: Fede-lasse
Why do all the pro-Microsoft people have troll avatars? :(
Offline (Female) IsmAvatar
Reply #13 Posted on: August 27, 2009, 04:50:00 PM

LateralGM Developer
LGM Developer
Location: Pennsylvania/USA
Joined: Apr 2008
Posts: 886

View Profile Email
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.
Logged
Offline (Unknown gender) whaddsoft
Reply #14 Posted on: August 27, 2009, 07:33:04 PM
Member
Joined: Jul 2008
Posts: 12

View Profile Email
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.
Logged
Pages: 1 2 »
  Print