Quote: "Is it safe to assume that the main menu will have options for turning the music and sound off or on?"
I think that's a good point, and global values for these make sense so that the settings are shared across games.
Quote: "And will we need some kind of consistent interface for player input of initials or name for high scores? "
I've left high scores out my game for the time being, because I wasn't sure how they were going to be handled.
It's probably easiest if each game writes its own highscore file.
It would also make sense if there were a common set of functions for this. For instance,
Type _ADG_HiScoreType
Name$ as String
Score as Integer
EndType
DIM ADG_HiScores[4] as _ADG_HiScoreType
integer = ADG_CreateHiScores("mygamescores.adg")
This would create a new hiscore file for the game. It would return 1 on a successful creation, 0 on a fail.
integer = ADG_LoadHiScores("mygamescores.adg")
This would load the requested hiscores table into the type ready for use by the game. It would return 1 for successful load, and 0 if not.
integer = ADG_CheckHiScores(score)
This would take the passed in score and see if it's a new hiscore. Returns 1 for a hiscore, 0 for not.
integer = ADG_SaveHiScores("mygamescores.adg")
This would write the HiScores UDT to the passed in filename and return 1 on a successful write, and 0 on a fail.
Finally there's the name/initial entry screen. As much as possible should be done with CreateText commands so that the screens can be displayed in the game font.
Display of the HiScore table would be down to the developer of each game once they've loaded their HiScore data file.