So in reading about Javascript and its relaxed nature has me pondering which is better? Novice-friendliness or strictness. I personally would lean toward the strict end of the spectrum. Although I can get behind a little leniency, just to make life livable. It seems to me that strictness would make debugging much easier and the resulting code much more consistent and readable.
I also kind of like the idea of not doing everything for you. Yes that means more code to write, but it also means you have more control. My current IF game engine is a good example. Whereas TADS or Inform will handle pre-defined commands and output etc, If your needs don't fit neatly into that structure you are in for nightmares. I've taken a more c++ like approach where the game author must define nearly all the commands and output. It's easy to do, but requires more definitions. However, games can use whatever input/output the author wants.
Authors could make their games behave however they want, but at the same time it is strict. If you want user input you must have correctly defined command nodes. To change attributes or move objects or the player etc, you must have a properly defined actionset, and that must contain action nodes, properly defined. Yet it's loose enough to allow an author the flexibility to use the engine how they want. They could even use it as a console based help system if they like.
I remember trying to build an Alice in Wonderland game in TADS, it was a pain just to get the player to be able to drink from the Drink Me bottle. In my engine, you would just define a command with the syntax "drink*" and put an actionset in it.
So I can understand looseness, but couched in a properly strict core structure. You can't define an action node and expect it to behave like a logic node. It seems to me that is akin to some of the flexibility in js. But then again I'm kind of noobish in js.
I also kind of like the idea of not doing everything for you. Yes that means more code to write, but it also means you have more control. My current IF game engine is a good example. Whereas TADS or Inform will handle pre-defined commands and output etc, If your needs don't fit neatly into that structure you are in for nightmares. I've taken a more c++ like approach where the game author must define nearly all the commands and output. It's easy to do, but requires more definitions. However, games can use whatever input/output the author wants.
Authors could make their games behave however they want, but at the same time it is strict. If you want user input you must have correctly defined command nodes. To change attributes or move objects or the player etc, you must have a properly defined actionset, and that must contain action nodes, properly defined. Yet it's loose enough to allow an author the flexibility to use the engine how they want. They could even use it as a console based help system if they like.
I remember trying to build an Alice in Wonderland game in TADS, it was a pain just to get the player to be able to drink from the Drink Me bottle. In my engine, you would just define a command with the syntax "drink*" and put an actionset in it.
So I can understand looseness, but couched in a properly strict core structure. You can't define an action node and expect it to behave like a logic node. It seems to me that is akin to some of the flexibility in js. But then again I'm kind of noobish in js.
No comments:
Post a Comment