Developing for various device types is a difficult enough process to consider as often elements of a game or application will be incompatible with certain types of platforms. An example of this is a touch screen game developed originally for mobile, creating a PC version has some challenges though not as many as if the game were to be ported to console. When porting for PC from mobile the mouse could be used to replace touch functionality if the does not support touch, however, when porting to console the mouse and touch options are removed. Though using the console to emulate a mouse is possible this will drastically change the user experience.
The problems I mentioned above only compound when taking in to account all the variation in hardware specifications. It becomes incredibly important to ensure that a device of the desired specifications is on hand for testing as it is common to be developing on a device that is above the minimum specifications. This can produce a problem when the game runs perfectly on the development device but no longer runs when put on the target platform. Often when developing for the same platform as the development device this kind of mistake results in a performance drop, though it can render the game completely unusable. When developing for a mobile device on a high-end PC, having a device to test on is absolutely essential. Not testing on the correct device can be the difference between a good game and one that isn’t functional.
Another thing to consider as a programmer is what minimum spec should be. This sounds incredibly obvious but there is more to it than just deciding haphazardly on a minimum spec device. It is important to be aware of the market that the game is being aimed at as the type of device (PC, Xbox, Playstation, Apple, Android) will be strongly influenced by the type of target market. From there even more research into the target market is required as not all of the market will own the same model of device. A good idea for ensuring your target market can all access the game is to find out the average device owned and develop for the model before it, this way the majority of the target market will by default be above minimum spec.
Taking this into account with my own research is important although at the time of writing I have one project in the works which is designed to be a multiplayer game with as minimal of a hardware requirement as possible so no particular specs have been chosen. I have however got plans to start developing some projects for android and as such have chosen to develop for the Samsung Galaxy Note 4. Anyone who is reading this will likely be saying “Why that phone Tye? that came out late 2014?” but I chose this device for a reason. The reasoning behind this is that the average lifespan of a mobile phone is 4-5 years. By developing for a device released 3 years ago it is likely that the phone will stay common for another few years but will be predominantly owned either second hand or by people less interested in playing any games. By catering to the people buying second hand I am increasing the range for my target market and helping to improve performance and stability for users with a higher end device. Picking a model any lower than this one would be limiting my own development capabilities as achieving good performance and stability on a lower model would likely require sacrifices in many areas.