One other idea that I hear people asking for in the forums quite frequently is an easy way to save and load game info to a remote server.
An easy way to conceptualize it is to imagine building a platform like TrainYard has for sharing solutions to puzzles, but making it a bit more generic, so any game could very easily add this type of functionality for any type of in game content.
This could be for things like:
- game levels (tmx and graphics in a zip)
- solutions to puzzles
- game themes (graphics in a zip)
- save states (send your game progress to a friend)
- in game authored content.
In the library, you could supply methods for:
- getting the data from the server by category:
e.g. GetItems("levels");
- saving data to the server:
SetItem("level 1", "levels", dataAsNSData)
- a dialog for selecting an item from a category:
ShowChooseItemDialog("levels")
- sharing items via email
ShareItem("level 1", "levels", "JoeUser@someWebsite.com");
- Allowing users to download new themes, levels, etc, from user contributions.
ShowDownloadUserContributionDialog("levels");
On the backend remote server, you could also supply:
- Backend management tools for promoting items as "Top Picks", which are then promoted to users in your app. e.g. Best user contributed levels.
- A way to notify users of promotions, kind of like a notification, but in game and not requireing a true notification server. Kind of a "What's New" feature.
This would of course have be both an iOs library and a remote service. You could make the backend open or closed source, with a default backend running on Google AppEngine.
There's tons of places you could go with this, but having a generic way to manage data remotely as a turn key solution and have it integrated with an iOs app would be a big win for lots of people.