Pages: « 1 2 3 4 5 6 7 8 9 10 »
  Print  
Author Topic: Tiering vs Components  (Read 25619 times)
Offline (Unknown gender) Micah
Reply #120 Posted on: May 15, 2010, 06:52:15 PM

Resident Troll
Joined: May 2008
Posts: 128

View Profile
Clearly you're able to get GML and C++ to work together, with lots and lots and lots of exceptions for conflicts.

Clearly COBOL is working fine.
Logged
Offline (Male) Josh @ Dreamland
Reply #121 Posted on: May 15, 2010, 06:55:06 PM

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

View Profile Email
COBOL did work fine, then we found something better.
Hey, go find something better.

Don't give me "lots and lots" bullshit; I can enumerate every inconsistency with the languages and what's been done about it. There are roughly five. Holding lexed code to determine what type an object is before acting on it isn't one of those inconsistencies.
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 (Female) serprex
Reply #122 Posted on: May 15, 2010, 07:23:01 PM
Smooth ER
Developer
Joined: Apr 2008
Posts: 106

View Profile WWW
http://www.opencobol.org
Logged
Offline (Unknown gender) Micah
Reply #123 Posted on: May 15, 2010, 08:04:32 PM

Resident Troll
Joined: May 2008
Posts: 128

View Profile
Back to parsing. When will the type of a variable be changed by something after its first occurrence?
Logged
Offline (Male) Josh @ Dreamland
Reply #124 Posted on: May 15, 2010, 08:25:19 PM

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

View Profile Email
In the case that it is declared as "local int", "local string", or what have you, in a later event, which could be considered bad practice, but it seems asinine to disallow that over the minuscule amount of work taken to support it.
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) Micah
Reply #125 Posted on: May 15, 2010, 08:39:13 PM

Resident Troll
Joined: May 2008
Posts: 128

View Profile
Even in Game Maker, you can't access a local before it's been set once, which is the equivalent of declaring it for object locals. So you shouldn't be able to access a local declared with `local` in a later event.

EDIT: Never mind. I suppose that's another reason why frankensteining GML and C++, with your weird `local` and `global` scope system, and being able to `local` something in any event, is a horrible idea.
« Last Edit: May 15, 2010, 08:43:50 PM by miky » Logged
Offline (Male) Josh @ Dreamland
Reply #126 Posted on: May 15, 2010, 09:31:15 PM

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

View Profile Email
Well, it's an irremovable part of ENIGMA's philosophy. And it's a bit late to fork the project over it. If you don't like it, you don't like ENIGMA, and you probably don't belong here.
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) Mith
Reply #127 Posted on: May 16, 2010, 06:40:54 AM
Member
Joined: Apr 2010
Posts: 7

View Profile Email
miky:

Being able to have a scripting language in the same source as C++ is really very nice, and in many cases worth the trouble. Just think about it! You can code in your usual GML, and when you find that you need a red-black tree, or you have a loop that you would like to go somewhat faster, you can simply switch over to C++ and use that. Despite the cost of using and mixing 2 languages, people still find it worth it - why else is Lua so popular in game engines*? I can understand why you fear the trouble of mixing them, but I am certain that you can see the advantages if you think about it. And it will also be of great value to Game Maker users, since they can take advantage of C++ with very little effort.

In general:

This debate seems to have gone off the road. Arguing about the parser when it is already implemented seems futile, especially since it isn't broken. The quality of its design can always be discussed, but as long as there is more pressing problems, and it works, it really seems a bad idea to even discuss it. There is more important issues to focus on.

Regarding the culture of discussion, I think Josh has been fair in regards to which design to use. There are open source projects out there that have a strict meritocracy - only the ones who have actually contributed are listened to. If Josh didn't care about others opinions, why have he debated for 9 pages? I can understand why some people might be bitter that he hasn't chosen their solution suggestions, but I don't believe it is because he really only would choose his own solution. I think the division comes from the fact that people feel strongly about choosing the "correct" solution - the scalable, formal, beautiful solution. And choosing that solution is often a very good idea. But ENIGMA has very limited resources, and the fact that Josh compromises with beautiful design when it (1) isn't the most important part of the system (such as the parser or the component/tier system - it is other, much more important factors that will make people use ENIGMA over Game Maker, such as it being open-source, faster, source compatible with C++, cross-platform, etc.) and (2) can save him considerable time (time being an important resource, especially in an ambitious one-man project as ENIGMA), I don't think it is very fair to blame Josh for not choosing the "correct" solution.

That is also why I cast my vote for the tier system. Not because it was the "correct" choice, for I really think that the flexible system is more beautiful, but because it is tried and tested elsewhere (Josh mentioned seeing the tier system in other engines), it will get the job done (it fits well with the basic subsystems like sprites, collision, etc.), and it will not take too long to implement. As far as I have understood, choosing the component system would be nice, but not really necessary, and not give much value for work. The only thing that could convince me the component system was better was if someone could figure out how to implement it quickly in ENIGMA and solve the current issues with it. I personally believe that the speed sacrifice is worth the advantages of the component system, but I also respect the philosophy of getting as much speed as possible - this is, after all, a game engine, and speed is one of ENIGMA's main selling points over Game Maker.

Finally, since Josh has done nearly all the work on ENIGMA (not forgetting IsmAvatar's work on LGM), I believe he is deserving of at least some respect. Without him ENIGMA wouldn't exist.

(*See the bottom part of http://www.satori.org/2009/03/the-engine-survey-general-results/)
Logged
Offline (Unknown gender) freezway
Reply #128 Posted on: May 16, 2010, 11:57:57 AM

Member
Joined: Dec 2009
Posts: 220

View Profile
Josh should stop talking in third person
Logged
if you drop a cat with buttered toast strapped to its back, which side lands down?
joshdreamland: our languages are based on the idea that it's going to end up FUBAR
/kick retep998
Offline (Unknown gender) Mith
Reply #129 Posted on: May 16, 2010, 01:36:32 PM
Member
Joined: Apr 2010
Posts: 7

View Profile Email
I guess you think I am being overly supportive of Josh and that my post count is too low, and therefore that I must be Josh.

Please authenticate my identity by looking at my email in my profile (mithunder@hotmail.com), and compare it with the email of the gmc user "mithunder", who has a high post count with old posts. In case the email cannot be seen on my profile on this forum, send an email to the email of "mithunder" on the gmc, and I will reply, confirming "mith" here is the same as "mithunder" on the gmc.
EDIT: Or better yet, look under "interests" at the following link: http://gmc.yoyogames.com/index.php?showuser=26685

Anyways, I would like you to refute my arguments. I read the 9 pages, and decided to reply seeing that the debate had not come to any conclusion or agreement, and was becoming futile with mud-throwing. Personally, I think meritocracy is a good model for open source projects, and this thread has not convinced me otherwise. Rusky has good ideas, but I don't believe he appreciates the situation enough. Free-time open source projects have very limited work resources, and it is important to consider that. And while choosing the "correct" situation is often a very good idea, sometimes you must consider implementation time and issues as well.
« Last Edit: May 16, 2010, 01:49:12 PM by Mith » Logged
Offline (Unknown gender) score_under
Reply #130 Posted on: May 16, 2010, 04:36:21 PM

Member
Joined: Aug 2008
Posts: 308

View Profile
I guess you think I am being overly supportive of Josh and that my post count is too low
I very much doubt that Josh would create a sockpuppet anyway. Especially not to win a debate.
Logged
Offline (Male) MahFreenAmeh
Reply #131 Posted on: May 16, 2010, 06:45:52 PM

sysadmin
"Web Team"
Location: Austin, TX
Joined: Apr 2008
Posts: 13
AOL Instant Messenger - sirmxe
View Profile WWW Email

 :troll:
« Last Edit: May 16, 2010, 06:48:47 PM by MahFreenAmeh » Logged
sys(tem)admin(istrator)
[java,c++,c,javascript,html,css,php,perl,ruby,python,sql]
if you've got ideas, let me hear them.
Offline (Male) Rusky
Reply #132 Posted on: May 16, 2010, 07:00:50 PM

Resident Troll
Joined: Feb 2008
Posts: 954
MSN Messenger - rpjohnst@gmail.com
View Profile WWW Email
Being able to have a scripting language in the same source as C++ is really very nice, and in many cases worth the trouble. Just think about it! You can code in your usual GML, and when you find that you need a red-black tree, or you have a loop that you would like to go somewhat faster, you can simply switch over to C++ and use that. Despite the cost of using and mixing 2 languages, people still find it worth it - why else is Lua so popular in game engines*? I can understand why you fear the trouble of mixing them, but I am certain that you can see the advantages if you think about it. And it will also be of great value to Game Maker users, since they can take advantage of C++ with very little effort.
The point is more that mixing the two languages in the same source causes ugliness, if not real problems. Lua is popular because it integrates well with C, but it doesn't include C semantics the way Josh is doing with EDL. From Lua, you have to call C functions specifically designed for Lua, and from C you have to call Lua through their API. Josh has done a great job integrating GML semantics into C++ with var, but beyond that things get sticky, and he's pretty limited on things like object_event_add or new, EDL-specific features that would be just as nice (or more) as having C++.
Logged
Offline (Male) Josh @ Dreamland
Reply #133 Posted on: May 16, 2010, 07:12:02 PM

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

View Profile Email
Sticky how? My proposal for object_event_add was V8; Luda believes he could write a faster JIT compiler with the more focused purpose of interpreting GML; problem is the experience factor. Luda's a talented individual; so's serp, and I like to think I am, but I'm not sure how we'd fare against the abilities of V8's team, even with a vastly simpler language. Really, I'm still quite open to suggestions on that matter. I will probably code something that generates the backend of an interpreter for games, and I know exactly how that will be done, but the front end is still completely subject to debate.

I should, in fact, forward two proposals on this forum that are somewhat related to the matter.

Things aren't really sticky with bringing in C++ features, though; we're using a C++ compiler. All I have to do is understand the syntax enough to ignore it; to check that everything in <> is a type or simple value, and that all (t*)<(.*)> are replaced with t(.*) of equal size, and templates are introduced. Then I need a pass to get members of event-declared structures, then one to resolve all "a.b" in light of the new information. It's little more than I have to do to support globalvar (Which will end up as a macro to global var). The only aspect I really have to go out of my way for is the scope resolution operator, ::. But I'll recover.
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 (Male) polygone
Reply #134 Posted on: May 16, 2010, 07:45:19 PM

Contributor
Location: England
Joined: Mar 2009
Posts: 794

View Profile
Would it not be possible to allow setting a script C++ only or gml only? So then you had a options where compatibility wasn't an issue.
Logged
I honestly don't know wtf I'm talking about but hopefully I can muddle my way through.
Pages: « 1 2 3 4 5 6 7 8 9 10 »
  Print