Worstje said:
I wasn't planning on posting, since nobody needs to be told the same thing twice. However, I do want to make a comparison.
You have a button. You press the button, the light works. How is this implemented? The accepted way is to simply close the electrical circuit and voila, done.
The other way is to make a Ruby Goldberg machine. Your button nudges a domino, que 100 more, then something turns and a ball rolls, etc etc, and eventually a little robotic hand screws in a lightbulb.
Ridiculous? Probably, but I'm exaggurating with a reason. The latter way has so many fault points and unnecessary complexity that it is bound to cause trouble. A domino might no fall, the turny thing doesn't have enough momentum, the robot hand slips on the lightbulb, etc.
In comparison, the button is proven technology. It works with tons of different lightbulbs. It is simple. If one breaks, you can easily fix it. In the same way, using GMCP will not only allow existing mappers to work with it, it will also be simple to maintain: there's no logic to start and stop the omitting of lines, no other user triggers that might fire first and possibly prevent your script from running, and no chance on 'it breaks and now my output is being eaten!' sort of problems.
GMCP is a very simple protocol. Any codebase worth its name will make it very simple. The amount of bugs and time the crappy method will involve is paid back a hundred times by biting he bullet on GMCP and doing it 'right' from the get-go. (Learning how to use a wheel beats inventing it based on a picture!)
If this sounds like an elitist lecture, I apologize for coming across that way. But I see this happen far too often: people choose the 'crappy' methods because it is all they know, and other thing are the things of wizards and dragons. Ruby Goldberg machines are what come out of such situations almost every single time, and they'll never be 'replaced' by those in charge because it always 'almost works'. In the meanwhile, everyone (coders and players both) suffer the consequences. :)
Good luck with whatever method you go with. :-)
I like your style and I appreciate the intent, but sometimes you go through making the Ruby Goldberg machine so you can see how it works. Not only does it make you appreciate the light switch more, but you can then learn the bits and pieces that make them go and apply that to other areas where a light switch hasn't been invented yet.
Do I want GMCP? Hell yeah.
Do I still want to learn how to make this trigger & consequently mapper work so I can learn more about XML plugins? Hell yeah.
The builtin mapper for CMUD seems to work fine for me for now. I personally like Mushclient more, but if this is too much work to get going I'm fine with just using this until we have GMCP implemented.
If anyone is willing to take a look and do the work, I'm more than willing to learn. |