|
Josh @ Dreamland
|
|
Reply #1 Posted on: August 23, 2009, 07:39:01 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
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
|
|
|
|
Josh @ Dreamland
|
|
Reply #3 Posted on: August 23, 2009, 08:06:38 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
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
|
|
|
|
Game_boy
|
|
Reply #5 Posted on: August 25, 2009, 01:14:38 pm |
|
|
Joined: Apr 2008
Posts: 228
|
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
|
|
|
|
|
|
Game_boy
|
|
Reply #8 Posted on: August 26, 2009, 03:34:13 am |
|
|
Joined: Apr 2008
Posts: 228
|
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
|
|
|
|
|
Josh @ Dreamland
|
|
Reply #10 Posted on: August 26, 2009, 05:03:19 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
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
|
|
|
|
|
|
whaddsoft
|
|
Reply #14 Posted on: August 27, 2009, 07:33:04 pm |
|
|
Joined: Jul 2008
Posts: 12
|
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? 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
|
|
|
|
|