This might not be the best place to discuss, but I'm wondering about OS best-practices / architecture in general (and in relation to a Facebook game).
To frame some questions I'll outline my potential architecture below.
I'm imagining that game users will create an account for themselves and have a room created with map associated that is derived from one of a few templates (as you describe in documentation), for example, beach template, park template, etc.
The user will have an account created in mySQL where their map structure will be stored (along with other status / game progress information).
Now - I'm hypothesising that the template maps and inventories / libraries could be stored together in mySQL table and referenced there where the unique key was the name typically associated with an OS project, i.e. osExample1 (from the official examples). The unique key / project name would be prepended to the _os_mapId value when assigning maps to users when first created. I'm imagining that storing the 'templates' in this way would be neat but am not sure whether the file-system approach offers more efficiency / less overhead than queries.
In my extended OS Java extension I would override the non-final methods dealing with map / inventory / library to utilise mySQL rather than file system.
To this point my assumption is that the intent of the inventory and library files is that they're predominantly static, i.e. the user maintains their map data against their unique 'account' but refers to the template's inventory and library (templates table). Is that the case or is there some potential use-case / approach where each user might require their own library and inventory?
As the user 'purchases' inventory items references are added to their user account (mySQL) so as the master inventory can be filtered via the getInventoryItemsList method. Purchased items would be stored as a list of id's (matching inventory item id's assigned in OS editor) in user's account (mySQL).
There seems to be quite a lot of documentation and discussions about SF best-practices and architecture but not so much for OS so I'm hoping a few people might weigh in with their perspective / ideas.
Thanks in advance if you do