This is a little wrong with you. Prototype used to create new instances, Flyweight used to share instances.
Not a good example, but the game-wise Prototype means that you have EnemyPrototype (or several), and you create a new enemy from it. In a naive implementation, this duplicates all the data, including the graphics. Thus, for 100 enemies you will have the same image 100 times in memory (not very good).
As for Flyweight , you can share the graphics. Not a very good example for a Flyweight template, as it can be easily solved without any need for such a template (just get a link to the image from a card or factory or something else).
As for excluding the new operator, there is no need. There is no advantage to using clone() over new , but there are some disadvantages.
source share