Oooh, would I be allowed to use SQL? Just kidding, I have no idea how to access SQL in C++, I would imagine it would be quite horrible. (Edit: I actually don't mind SQL much though)
Not overly fond of JSON, but I think I've found a library that looks "clean" enough that I understand it, and would probably be better than any SQL library
I was thinking of something like this for the layout on the "All Games" page - ignore colours and fonts for now, I'm just after feedback on the "three box" layout
Some feedback:
I like this approach. I'm assuming the selection cursor is in the big box on the left, and when you move it, the small boxes get updated. If you press B or Enter or something like that, the game gets launched.
The aspect ratio of the screenshot box is still a bit too wide (even for 800x480 games), so either it should have a bit more height, or the small boxes should have a bit less width. But that's a small detail.
Suggestions:
- Columns are now "Game", "Genre", "P.B." and "R.O.T". Maybe merge the two score columns to show the personal best as a large number and the world best in a smaller font under it. That makes room to add another column, "Rank" (which indicates the position of your best score in the ranking).
- Make it so that you can sort the list on each column, either by clicking on the column header, or with the keyboard with dpad left-right (or shoulder buttons), where the current sort column is somehow highlighted. Sorting on "Game" and "Genre" would just be alphabetically; sorting on "Score" could use the ratio of P.B. / R.O.T. to compare the rows (since you cannot compare absolute scores from different games), and sorting on "Rank" would be just numerically.
- Just showing the top N highscores is fine, but if you want to extend this, you could perhaps have a key to toggle focus to the highscore box, and then you can scroll the highscores with the dpad, and maybe switch between all-time and monthly, or zoom in on a highscore to get more information (I guess the only extra information would be the 3-letter nickname and the timestamp corresponding to that score, but perhaps you could add some derived stats about that player).
- If possible, it would be nice to also show the non-installed C4A aware indie games (greyed out or something), and if you select them, PNDManager gets launched with that game selected, so it's just a few button presses away to install it. That would probably require some small modifications to PNDManager (e.g. make it accept a command-line parameter to select a screen to show at startup).