ENIGMA Forums

General fluff => Announcements => Topic started by: Josh @ Dreamland on April 01, 2010, 12:48:16 pm

Title: New Interests
Post by: Josh @ Dreamland on April 01, 2010, 12:48:16 pm
As you can plainly see, the interests of this community have changed from software and game development to unicorns. As such, the ENIGMA project has been discontinued, effective immediately. For the third year in a row.

Okay, enough of that now. On to serious matters.

Upon further consideration, it has appeared to me that C++ just isn't right for ENIGMA; despite my best efforts, I don't think I can pull off all the things Game Maker does without a better system. Specifically, one with such goodies as dependent typing and a good garbage collector, so users can use ds_list_create and just forget they did so without worry, and so late at night when it's hard to keep track of what I'm doing, I'll be fine. I won't have to fear that I've made a mistake in my coding; something else will let me know or just take care of it for me. We all want that, right? Switching to a better language could definitely improve development speed, in that respect.

Besides, it's time to give the project's organization some serious rethinking. POD has become, though efficient, too confusing when looking at the bigger picture: we're better off calling things by reference. Doing so makes sense, and will help the garbage collector and any debugging implementations as well.

I was looking at C# or Java, maybe even with some Haskell. All of those languages are gaining popularity quite quickly; chances are they'll work on all the platforms we want ENIGMA to compile for within the next ten years. Those languages don't each offer all of the features I mentioned above, but they'll make mine and users' lives easier.

Think about it:  With their garbage collectors and referencing systems working for us, you can just create a ds_list, forget about it, and in a few steps, it'll just be gone! To ensure that users don't accidentally reuse a destroyed list, the integer-id (probably between 0 and 20) will cease to exist along with it, meaning you can no longer set any variables to it. So, if you said, for example:

a = ds_list_create();
ds_list_...

But then just stopped using "a"'s list for a while (like if you had it in an alarm that was taking a really long time to execute and so probably never would), list 1 would be freed. So what would happen if you were to pass "1" to ds_list_find again? That's the beauty: You can't! When list "1" is freed, so is the constant "1" from the game. That means that from now on, you can't use "1" anywhere in your code, and ENIGMA will make sure that you don't accidentally add anything to obtain "1". Also, make sure not to divide by it, as doing so may cause an error (don't worry though, each of these languages has great exception handling).

This can be accomplished by keeping everything stored as pointers, especially constants. Instead of "1" just being an integer in memory, it will be an integer pointing to an integer, and then another integer to verify that our integer points to an integer. Simple, yes? Efficient, too: modern processors are making it so no one will even notice the effects of doing so.

I haven't seen any Java games for Wii, yet, but maybe they could be played through the Wii's browser. On the other hand, I have seen one C# program for the Wii (http://tirania.org/blog/archive/2009/Jan-06.html), and I'm sure it has reached shelves of hard-core gaming fanatics everywhere; just look at it. Although I don't think development with C# for non-Windows systems will be supported by Microsoft, they have agreed not to sue for it (http://www.microsoft.com/interop/cp/default.mspx).

Because of that, C# is looking like a really good option. Plus, using C# would give us access to Microsoft's powerful .NET framework on Windows, which end users would simply have to download. It's only a few hundred megabytes. The Mono team has been working very hard to get that framework running on other operating systems, too; it should be mostly supported.

I can't wait to hear your comments on this. I feel we'll need a new logo to go along with it, possible something with gears and happy faces.

XOXOXOXO
<3<3<3
something about unicorns
Title: Re: New Interests
Post by: retep998 on April 01, 2010, 01:28:02 pm
If you are sensitive to bad language please skip this post.




YOU ARE A FUCKING IDIOT!!!
WHAT THE FUCK HAPPENED HERE!!!
"ENIGMA will make sure that you don't accidentally add anything to obtain "1""
ARE YOU FUCKING RETARDED???
DON'T DO THIS JOSH!!!
Title: Re: New Interests
Post by: Josh @ Dreamland on April 01, 2010, 01:30:00 pm
YOU ARE A FUCKING IDIOT!!!
WHAT THE FUCK HAPPENED HERE!!!
"ENIGMA will make sure that you don't accidentally add anything to obtain "1""
ARE YOU FUCKING RETARDED???
DON'T DO THIS JOSH!!!

Well, it's the only way, since GM doesn't offer any method to distinguish between integer and pointer, only loosely between instance and object.
Also, Java doesn't have pointers, and C# makes you ask sternly for them.
Title: Re: New Interests
Post by: Game_boy on April 01, 2010, 01:35:13 pm
Unless you guys are all very good at acting, do you not realise this is another April Fool's joke?
Title: Re: New Interests
Post by: retep998 on April 01, 2010, 01:37:04 pm
Unless you guys are all very good at acting, do you not realise this is another April Fool's joke?
Hey, don't ruin the damn effect.
I'm busy pretending to flame Josh for his idiocy.
Title: Re: New Interests
Post by: IsmAvatar on April 01, 2010, 01:38:48 pm
Actually I've been working with him on this. We also discovered it'd be a lot easier to call enigma from Java if it's C#, due to language similarities and the abundance of tools for such a popular language.
I think the "lazy" aspect of garbage collection is just one minor inevitability that really doesn't damage the language that much, compared to all the great things that will come out of it. Not to mention, with the G1 series of garbage collection, it's finally getting to a point where it's comparable to scope. Besides, GM never had a free() function.
Title: Re: New Interests
Post by: Rusky on April 01, 2010, 02:18:37 pm
Garbage collection just shifts the work from allocation to deallocation, and it never deletes objects that you can still access. Basically, GC is perfectly fine. The laziness argument is full of crap- C++ itself does tons of things for you, like managing stack-allocated memory, object constructors and destructors, evaluating expressions, etc...
Title: Re: New Interests
Post by: Micah on April 01, 2010, 02:30:02 pm
Nice troll, except that you completely failed to grasp what garbage collection does, and with the laziness thing, you're Blub programmers (http://c2.com/cgi-bin/wiki?BlubParadox) claiming that using Blub makes you a real programmer (http://xkcd.com/378/).

Directed at Josh and his little friends.
Title: Re: New Interests
Post by: luiscubal on April 01, 2010, 02:50:00 pm
C# *is* better than C++ in many ways.
However, it was so obvious that this was an April Fools.

Anyway, you can write apps for iPhone in C#. I think they were working on Android too. Not sure about DS.
Android is really easy to target if you use Java, though.

Hey. I have a better idea. What about HTML+JavaScript+Canvas? :D

Also, ENIGMA's point is to teach Fede-lasse to write C++? I thought it was to help game creation, but maybe I was wrong.
Title: Re: New Interests
Post by: Micah on April 01, 2010, 02:54:21 pm
Also, ENIGMA's point is to teach Fede-lasse to write C++? I thought it was to help game creation, but maybe I was wrong.
You'd think that, wouldn't you? But since C++ is so much better than anything else out there in so many ways, especially productivity and safety, that Josh wants to enlighten everyone and bring them to it. He doesn't actually care about making a good game development environment, since C++ is already perfect!
Title: Re: New Interests
Post by: retep998 on April 01, 2010, 03:01:23 pm
EVERYONE WHO IS AGAINST ENIGMA USING C++ DESERVES TO DIE RIGHT NOW!!!
Title: Re: New Interests
Post by: Rusky on April 01, 2010, 03:15:35 pm
nobody qualifies for death by that, retep. stop.
Title: Re: New Interests
Post by: notachair on April 01, 2010, 05:20:40 pm
Hahahahahahaahahhaaahaahahahaahahahahahahaahahahaahaaaahahhah retep
Title: Re: New Interests
Post by: Josh @ Dreamland on April 01, 2010, 05:58:19 pm
It's funny that no one here can tell who's trolling and who's being trolled. I knew when I posted it that Miky would get his britches in a tangle. Wasn't sure what would happen after that.

-And with his 666th post, he denounced the entire topic-

So yes, here's celebrating April Fool's, and my 666th post. Ahhh, good days.
Title: Re: New Interests
Post by: RetroX on April 01, 2010, 06:41:50 pm
Java and C# are incredibly inefficient garbage collectors.  You should try Lisp; it's loads better at that.
Title: Re: New Interests
Post by: Rusky on April 01, 2010, 06:58:48 pm
holy retro just said something good about lisp?
Title: Re: New Interests
Post by: RetroX on April 01, 2010, 06:59:27 pm
um, yeah; it's a whole lot better than Java and C#

even C++
Title: Re: New Interests
Post by: Josh @ Dreamland on April 01, 2010, 07:12:48 pm
*shrug*
Can't compete with age.

*fixes post count*
Title: Re: New Interests
Post by: Grundoko on April 01, 2010, 07:36:45 pm
Yes, it all makes sense now. Unicorn-Dev is a much better name than Enigma anyway.
Title: Re: New Interests
Post by: Game_boy on April 02, 2010, 07:08:38 am
@luis

I'm in the same position as Fede-lasse. Enigma will help me with C++ in the same way.
Title: Re: New Interests
Post by: Josh @ Dreamland on April 02, 2010, 08:57:37 am
One of the nice things about ENIGMA is that people will leave knowing one of the most popular languages in the world.
That's why I added all these C++ layers without infringing on the GML ones. Users will slowly get accustomed to C++ features, and before you know it, they'll understand the system.
Title: Re: New Interests
Post by: retep998 on April 02, 2010, 08:58:53 am
One of the nice things about ENIGMA is that people will leave knowing one of the most popular languages in the world.
That's why I added all these C++ layers without infringing on the GML ones. Users will slowly get accustomed to C++ features, and before you know it, they'll understand the system.
That is, unless Josh decides to change the language to something else.
In which case I'll have to personally torture him until he changes it back.
Title: Re: New Interests
Post by: IsmAvatar on April 02, 2010, 10:11:55 am
I'll provide the spoon.
Title: Re: New Interests
Post by: Josh @ Dreamland on April 02, 2010, 11:03:19 am
Nothing like a little team work. ^_^
Title: Re: New Interests
Post by: retep998 on April 02, 2010, 01:22:54 pm
I'll provide the neck.
I got plenty of animals with necks in my basement.
Title: Re: New Interests
Post by: Rusky on April 02, 2010, 01:26:23 pm
But they're not yours.
Title: Re: New Interests
Post by: retep998 on April 02, 2010, 01:41:34 pm
But they're not yours.
I own they animals, hence the animals are mine.
The necks are part of the animals, and since the animals are mine, the necks are mine.
Title: Re: New Interests
Post by: Micah on April 02, 2010, 02:20:11 pm
Do you really want to wake up one day with a spoon stuck through the neck though which you breathe?
Title: Re: New Interests
Post by: retep998 on April 02, 2010, 02:20:36 pm
Do you really want to wake up one way with a spoon stuck through the neck though which you breathe?
YES
Title: Re: New Interests
Post by: RetroX on April 02, 2010, 04:18:26 pm
Retep, you're not funny.  miky and Ism are.
Title: Re: New Interests
Post by: luiscubal on April 02, 2010, 04:18:39 pm
What if the spoon was designed in a C# application, rather than a C++ application?
Title: Re: New Interests
Post by: Josh @ Dreamland on April 02, 2010, 04:31:03 pm
Then it will be have an integrated circuit for garbage collection.
Title: Re: New Interests
Post by: polygone on April 02, 2010, 04:39:56 pm
Why is this still in announcements? The garbage men came yesterday.
Title: Re: New Interests
Post by: Josh @ Dreamland on April 02, 2010, 04:46:49 pm
I don't believe in garbage collection.
...hahaha.
Title: Re: New Interests
Post by: luiscubal on April 02, 2010, 04:50:39 pm
But then... retep's neck in contact with a garbage collected spoon would trigger an atomic reaction resulting in a massive explosion, won't it?

Also, for the record, there is garbage collection available for C++.
Title: Re: New Interests
Post by: polygone on April 02, 2010, 04:51:20 pm
I don't believe in garbage collection.
...hahaha.
I tried that line on the taxman.. doesn't work.
Title: Re: New Interests
Post by: IsmAvatar on April 02, 2010, 05:58:47 pm
Actually, retep would be picked up by the garbage collector first.