Since there are hundreds of particles on the screen if I move the particle routine to the same module as the sprite routine most likely to code will all fit in the code cache together and run alot faster. In otherwords, find the slowest part of your code and then optimize that. Don't optimize the code that is rarely executed or is executed at a point where speed is not an issue. Hire Quality Artists. That may sound like a brush-off answer but it is the truth.
Great artists make great art.
Great Tools, Great Techniques don't do anything if you don't have great artists to use them. That advice comes from 15 years for making video games. Some programming languages are better for different needs. For example Perl is a good language to process text and a good language to do batch processing with. C is the most common language for games because it is fast, can get low-level and exists on almost every platform.