Using the Map Instancing library to reset levels will reset the level to the exact same initial state. Suppose, instead of using the library, you just called world.Repop() to restore all enemies in the level you had killed. The enemies that weren't killed won't be reset. Calling the map's reset proc will delete and recreate all mobs.
What this means is that if the level has a part where the player has to make some tricky jumps while avoiding enemies, the timing and positioning of the enemies will be consistent each time you reset the level. If the enemies weren't deleted and recreated each retry, the timing might change from attempt to attempt. This way, the developer and players know that the timing will be consistent.
And that only takes a single line of code =)
Bravo1 wrote:
I mean, have you ever built a cell phone? I bet you still use one, or a phone of any kind for that matter. How would you feel if someone called you lazy or stupid for not building your own phone from scratch?
This is a good example. When you want to make a phone call, building a phone sounds like it's related to your goal (and in a way, it is), but not building your own phone doesn't detract from your ability to make a phone call. The same can be said about using a library when you're making a game - it seems related to your goal but using libraries to handle lower level details doesn't detract from your ability to make a game.
That's also a good example because most people don't know how to build phones. You don't need to know exactly how a phone is constructed to know how to use one properly. The same is true of libraries.
Not this thread, but a similar one from about a week ago was locked for that exact reason. Basically he's trying to avoid a flame war (and a locked thread) by removing the insulting comments. (even if they weren't THAT insulting)
Hopefully that's what the tutorial will do. I'd like to see step by step of how the library was made and how to use it, that's probably the best way to put across the concepts as well as teach its use. Learning how to drive a car isn't enough,knowing how it works, then how to drive it, that usually gets the idea across.
Well, saying that you shouldn't use libraries because you could learn by trial and error is silly. That's akin to saying "don't read books, you should go out and learn about the world on your own." Books are faster, but only if you actually understand them. Libraries are faster, but only if you understand them, not just how to use them, but how and why they work.
This seems to be why he's making the tutorial though, to teach the concepts, the code, and how to implement it properly so that people don't have to waste their time learning by trial and error and can instead learn the same information by way of guidance.
I can see why you dislike people using libraries, you believe it stunts their ability by making things too easy, I understand that. However, not helping at all is just as bad as giving them everything at once.
I mean, have you ever built a cell phone? I bet you still use one, or a phone of any kind for that matter. How would you feel if someone called you lazy or stupid for not building your own phone from scratch?
Libraries are tools, using them without understanding them is bad, yes, but removing them completely is worse. Some people don't even try to code when they realize how difficult it can be at first. Having a library could bolster their resolve while they work on trial and error in other parts of their projects.
It IS a double edged sword, but I'd rather cut my hand on my own blade than be completely defenseless.