Another is the actual behaviour. Are you going to hardcode it all, or are you going to make a scripting system in which you can *everything* you can come up with? This alone takes quite a while. And one could say: "yeahwell, some simple fountain and I guess that's it", but you know how creativity works: you always want more, because each implementation of an idea gives ideas for at least 4 other ideas. Besides, one could argue that something like a flame or waterdrop or whatever is so complex that a simple 'n quick algo won't do.