1) thing it might be saying is that there is no constructor that is accessible to the class games template for the base template. You have no default constructor, and you do not call the 3 arg constructor from the derived class.
2) Using the template type for your string variables inside your constructor that you declare as strings for the members themselves makes no sense.
e.g. string ID; //your member declaration then in the constructor appTemp ID2, what if your Type is actually ClassComplex? (made up class)
3) Inside of your display member function of the base class, you assume that the types are strings (or there exists an overloaded<< operator for that type), why not pass to the constructor as strings?