Standards and Bottlenecks

Posted by JoshDreamland on Sept. 10, 2010, 1:38 a.m.

Quote: Clam
On this side of the field, we have the ENTIRE OPEN SOURCE WORLD!

And on this side of the field, we have Josh, wearing nothing but a turban of steel wool, shouting "LEEEEEEEEROOOOOOOY JEEEEEEENKIIIIIINS"

It wasn't always this way. I remember the good old days, being happy to try to get something running in GM that was only ever impressive because it pushed the limits of what GM could actually handle.

That magical time before Yoyo came along, and showed us how many stupid mistakes "professionals" can make in a single release. I'd reiterate them, but anyone who's even bothered to look at GM past the surface already knows about them.

People come to me with posts of Yoyo's they find particularly outlandish. One gave micro optimizations GM users could take advantage of for that little extra push toward making GM pretend to be fast. A couple of them I looked at with a decent sureness that the change wouldn't improve the speed at all.

Meanwhile, in Dreamland, I released ENIGMA to discover that just because it works for twenty different people in the repository, doesn't mean that it will work for people on extra-lingual configurations or under every circumstance by which said individuals may attempt to circumvent the original error.

So after hobbling about fixing things for a bit, I finally get it to where I like it, only to discover that a problem I saw coming for miles with LGM had finally manifested.

It's not like I'm actually surprised, or anything. It's just another one of those releases that could have gone smoother. Though my original feeling was that if it had been any more a disaster, I'd be pulling oily seagulls out of the repository.

What I am grateful for, though, is the PR his time has fared well under the conditions. It just irks me, the reception to a project such as mine versus Yoyo's. My favorite instance was when their PSP developer made some post about floating values on that console. Basically, he posted a diagrammed summary of the IEEE specification, then a sad implementation of a float-to-int function, for which I know at least I would have used lrint().

The man received so much praise for his brilliant discovery and careful consideration that I wanted to live on this planet no longer. At least (so far as I know, and as desperately as I can hope) their Mac developer isn't receiving that kind of fanfare. I think I'd drop dead; his work is the poorest I've ever seen money go into.

In a way, it almost makes me feel dead. But sometimes, you have to buck up and continue. We wouldn't have gotten to Mac without some perseverance.

It's not like I'm just talking out my ass here, either. That click the clown game ENIGMA's running on Mac is 1.3 MB. TGMG seemed to basically waltz in and add support for Apple one day; then we spent several more porting over the fully extensible parts of the engine. Now it's just another system on the list.

I guess, maybe, if they at Yoyo wanted their executables to be smaller, they could try only including SDL once. *sigh* So many less-fucking-stupid ideas would make GM better in so many ways… But they're honestly that fucking dumb. And people love them.

But, hell. Ultimately, it was they who taught me that 'professionals' don't always know what the fuck they're doing, and it was they who got me interested in doing my own thing in the first place.

I guess I'm going to implement another one of my ideas so ENIGMA doesn't need recompiled to compile for iPhone and Android. Presently, TGMG had to hard-code the calls to the emulators for testing and for the makefile parameters… That really needs fixed. Though, it's not really a priority since so far, only sprites have been tested for drawing on those systems… And I'm not sure sounds work…

Bah. May they enjoy their mediocrity. </mope>

Summary for those who don't follow this shifty-drifty blog:

Yoyo puts out simple-to-install shitware, offers that all speed problems are users' fault and does minuscule optimization, receives praises out back end anyway.

I put out Disaster Release IV on international machines, mild happiness ensues for those who have a typical configuration.

Happy with ENIGMA's results, pissed at Yoyo's results as usual. How are these professionals?

==========

Maybe the reason this blog is so lifeless is that I'm afraid someone will still defend them.

</subtle>

So I've also decided to rename ENIGMA's scripting language. It's now called FECES (or FAECES, if you prefer).

Fast

and

Easy

Compiled

Enigma

Script

I'm also giving it a doctype, like in HTML 4, so ENIGMA can tell that it's about to read snippets of its own language.

/*
             /
            |    |
             \    \
      |       |    |
       \     /    /     \
    \   |   |    |      |
     | /     /\   \    /
    / |     /# \   |  |
   |   \   *    `      \
    \    /   =  # `     |
     |  | #     ___/   /
    /   _. |
   |  .*     #  =    | \
     |  =   #      __/
    .\____-------^^  `.
   /      #         #  \
  |   =          =     |
  \___    #     #___--^
      ^^^^^^^^^^^
*/

And, of course, what's a doctype without a character coding?

…Okay, seriously, what the fuck?

*opens special 13-bit text editor*

[pre]<?xml version='1.0' encoding='wtf-13'?>[/pre]

Theory:

[pre]<?xml version='1.0' encoding='IF YOU CAN READ THIS, YOU HAVE THE RIGHT ENCODING'?> [/pre]

But no, a specification is a specification. So please explicitly state the obvious so on the off chance your HTML file contains unicode characters, the browser doesn't have a fucking fit.

Comments

DFortun81 14 years, 3 months ago

God damn it! ds_list_find_value too! FAAAUCCK

Extravisual 14 years, 3 months ago

Can you make Enigma use proper data structures? Thanks bro.

Rob 14 years, 3 months ago

Does it have support for multidimensional arrays over 2D? Or is it stuck to 2D arrays like Game Maker is?

Scott_AW 14 years, 3 months ago

3d or greater array? You're mad sir.

JoshDreamland 14 years, 3 months ago

Extravisual:

Open "Definitions" from the ENIGMA settings.

Type this:

#include <map>
#include <list>
#include <stack>
using namespace std;

You can now access them like so:

map a; a["lol"] = "wut"; a[133.7] = "this";

Rob:

Open "Definitions" from the ENIGMA settings.

Type this:

#include "universal_system/lua_table.h"

You can now define them yourself;

lua_table<lua_table<lua_table<variant> > > a;

a[1][2][3] = 4;

But try to count linearly instead of jumping to a high index, or it'll use map mode instead of linear mode. Alternatively, #include <vector> and use vector<vector<vector<variant> > >, which mandates counting linearly and has no map component.

Dylan:

I Don't think any of the ds_* functions are actually in. I'm mostly letting people use the C++ ones.