Vários jogos armazenam as coisas de maneiras diferentes. Freqüentemente, as empresas de jogos criam alguma maneira de fazer isso, e a maioria de seus jogos usa da mesma maneira. Obviamente, diferentes estúdios costumam usar maneiras diferentes. O SQL certamente é usado para jogos, por exemplo, o CCP (EVE) possui (ou pelo menos tinha) uma rede de servidores SQL, não sei ao certo como eles fazem isso agora. Outros, basta usar muitos arquivos.
Talvez comece criando um agnóstico "mecanismo de intermediário de dados", para lidar com várias transações de dados de jogos? Como você está apenas testando de qualquer maneira, crie um mecanismo que permita que você não precise se preocupar muito com o armazenamento, do ponto de vista do próprio jogo. Ou seja, concentre-se em como, no aplicativo host, você vai lidar com isso.
Pessoalmente, acho que seria um grande trunfo se você pudesse mudar a loja real, sem ter que reescrever o jogo e o próprio corretor. Apenas mude para outro módulo com a mesma interface para o corretor falar.
O armazenamento de dados em si provavelmente não será um problema, por si só. O envio eficiente de dados, de / para essa loja, entre o host e todos os clientes, pode ser mais complicado. Envio todo o conjunto de dados do reprodutor ou, se o dividir em partes, por qual granularidade escolho particionar, etc. Qual deles consome mais recursos em qual situação, etc.
Um formato para enviar os dados pode ser XML. Dessa forma, você pode mais facilmente ser dinâmico na maneira como pode fragmentá-lo. Um caractere versus vários caracteres ou um item versus uma coleção de itens etc. Você pode "armazenar" o XML como XML (no SQL) e / ou fazer com que o SQL o distribua de maneira mais transacional a partir do XML, para como você deseja que os dados sejam realmente armazenados.
Outra maneira é o binário, que é mais eficiente em termos de frete, mas pode incorrer em mais custos em outras situações.
Com 1.000 clientes, você pode começar e armazenar facilmente 10 MB por cliente e usar apenas 10 GB de RAM efetiva + adicionar alguma RAM administrativa do sistema para gerenciar esses dados, digamos, outro GB ou dois. Você pode manter isso na RAM no host já na estrutura de dados pronta para uso. E carregue / salve dinamicamente, dependendo de quem está online, em várias frequências, dependendo da atividade, etc.
Você pode até armazenar as informações de cada cliente em um arquivo separado, e assim por diante.