It can prolong the development process. Abstraction should be used intelligently. If you want something simple that does exactly one thing. You could abstract this out to a more general case. In the event this general case will never be needed you are adding unneeded layers of abstraction.
A good example I got is certain types of creatures are immune to lava. You could abstract this out to a heat resistance property, and a function that gets the temperature around the creature. Then you could have say warm water that some creatures don't like and others like. Or even cold water that those fire immune creatures will react differently to. Abstracting out temperature effects on creatures can create a more involved system. Unfortunately what if the only wierd temperature environment you have is lava. It would be much simpler just to check for that simple case and react than to build layers of abstraction.
While the layers of abstraction are good from many perspectives with a time deadline and practical restriction on features sometimes it is better to just go the simpler and direct way.
Name:
Anonymous2008-04-29 6:27
>>47
Until you make a simple change, e.g. you split lava into hot lava and really hot lava. Then you have to rewrite everything, unless you properly abstracted it.
``In order to make a system that's robust, it has to be insensitve to small changes. That is, a small change in the problem should lead to only a small change in the solution.'' --Sussman, at the start of SICP lecture 3b
>>50
Because the party of characters may be required to throw down two switches that will cause the mysterious guardian statues to cast a freezing spell over the lava, however, the first spell will not be enough to allow the heroes to walk over the lava safely, thereby justifying the necessity for a "hot lava" and "really hot lava" status.
Problem solved.
>>56
Unless there is no mysterious guardian statues and lava is only needed in a simple way.
Name:
Anonymous2008-04-29 18:26
>>57
That's now how PROFESSIONAL J-RPG are done. Once they realize that their game will only waste 50 hours of the player's life, they throw in guardian status and lava of variable temperature in the game to match the 80 hours announced on the cover.
That's the true meaning of SCALABLE SOLUTIONS.
on this subject of this lava, i guess it depends just how much effort you want to put in and if it's worth it...
you could have a liquid object that has temperature, color, and whatever other properties u need that would cover the lava and really hot lava problem, but if u write a game that only needs one pool of lava, and the only time u see it is when chuck norris one-inch punches a man into it, whats the point?
the answer to all this abstraction nonsense is to write what is appropriate to meet the requirement in the specification you have been given.
Name:
Anonymous2008-04-30 5:51
>>60
What, you mean my ObjectFactoryFactory class is useless?
Name:
Anonymous2008-04-30 6:02
>>61
perhaps, but UrMumIsFat class still applicable
it would be selling computers without using some new alternative could never keep up with windows underneath it does make sense to have reusable chunks of logic you can pass about I know you were an anonix.