Remplissez-vous toutes vos données de jeu dans d'énormes tableaux Excel? Existe-t-il une meilleure méthode?

8

Je veux vraiment savoir combien de concepteurs de jeux préfèrent travailler avec une énorme table pour tous les objets, une autre table pour toutes les compétences, et même une autre table pour tous les mobs dans un MMORPG. Et ces tables peuvent atteindre plusieurs centaines de Mo avec des milliers d'enregistrements, mais la plupart des enregistrements n'utilisent que quelques champs dans une table.
Je sais que certains concepteurs de jeux fonctionnent de cette façon. Existe-t-il une meilleure méthode?

Huang F. Lei
la source
1
Hou la la! Dites à votre ami concepteur de jeux d'envisager au moins quelque chose comme SQLite :)
bummzack
@bummzack: SQLite est une base de données relationnelle. Excel est une feuille de calcul. Un RDB peut être (mal) remplacé par un tableur, mais vous ne pouvez pas remplacer un tableur par un RDB.
(J'ai des anecdotes professionnelles sans fin sur les raisons pour lesquelles Excel est génial / horrible pour ce genre de chose, que je pourrais écrire dans un jour ou deux si je pense que je peux le faire sans être poursuivi, mais j'espère que quelqu'un aura plus de preuves -based answer.)
1
Je suppose que j'ai mal interprété le contexte ici. Je pensais que cela serait utilisé comme source de données de jeu et non comme "outil de conception".
bummzack
Quelqu'un a-t-il pensé à utiliser des fichiers XML à cette fin?
James P.

Réponses:

4

Je ne voulais pas répondre ici, mais quand j'ai vu une autre réponse / commentaires, j'ai changé d'avis. SQL n'est pas une très bonne solution à cela. SQL définit des tables et insère de nombreuses données dans ces tables. Ce n'est pas le cas. Lorsque vous créez / testez la conception d'un jeu, vous devez surtout vérifier si l'énorme système est équilibré. Cela signifie beaucoup de tableaux qui s'affectent. Rien de bon pour SQL - ou ce n'est pas facile à gérer, car vous devez faire une programmation qui n'est pas nécessaire. Et le concepteur de jeux n'a pas à le savoir.

En tant que programmeurs / développeurs de jeux, nous pouvons dédaigner Excel et son utilisation pour n'importe quoi, mais c'est un très bon outil pour ce cas, surtout lorsque le concepteur de jeux peut bien l'utiliser et que le document est bien créé.

Je ne peux pas recommander un autre outil, mais je peux dire que je connais des concepteurs de jeux professionnels qui utilisent aussi Excel. Je suppose donc que c'est un outil commun.

Notabene
la source
Oui, Excel est un outil courant. Le point de la question est: "une seule table immense pour tous les articles", les articles incluent les équipements, consomme, etc. Est-il nécessaire de diviser l'énorme en petits? Même fichier de configuration séparé pour chaque élément? J'ai peur que l'énorme table puisse leur faire mal aux yeux: o)
Huang F. Lei
Désolé je ne sais pas ça. Je suis programmeur moteur. Je voulais juste dire "Hé, pourquoi dites-vous tous SQL et faites-vous des blagues d'excel, alors que c'est un outil commun?". La question est bonne et je suis intéressé par une réponse sophistiquée, meilleure que la mienne.
Notabene
Ma réponse SQl d'origine était due au fait que j'avais omis la partie "game designer" de la question et je l'ai supprimée car elle serait trompeuse.
The Communist Duck
3

Je suis d'accord avec la plupart des répondeurs que parfois les feuilles de calcul peuvent faire des outils de développement décents, en particulier pour les concepteurs.

Si vous souhaitez approfondir cette approche, le programme de feuille de calcul Resolver One utilise python pour les scripts, ce qui facilite la configuration d'une feuille de calcul pour les concepteurs qui à la fois effectue une modélisation complexe et exporte vers un format de données convivial. Je trouve qu'il est beaucoup plus facile de travailler avec le VBScript d'Excel.

tenpn
la source
1
amusez-vous à attendre plusieurs secondes pour qu'il s'ouvre! Bah c'est lent (même sur des machines rapides)
Spooks
2

Excel est une excellente solution. Je me demandais comment procéder. Mais en y réfléchissant, Excel est un outil très populaire et tout à fait adéquat pour cette tâche, je ne recommanderais pas cette pratique. De plus, la base de données réelle, comme le suggère @notabene, apporte beaucoup de frais supplémentaires dont vous n'avez vraiment pas besoin. Je vois quelques options, dont l'une s'apparente à l'utilisation d'Excel:

  • Open Office Calc: gratuit. Il y a aussi un téléchargement de connecteur MySql (open source je crois) pour Calc.
  • données sérialisées: XML ou binaires (cryptées)

... de toute façon, gratuitement et vous avez un contrôle total.

Personnellement, je serais enclin à utiliser des données binaires sérialisées et cryptées . Deux raisons:

  • les données du jeu ne peuvent pas être facilement modifiées
  • Je peux travailler avec des tables de données plutôt qu'avec la sérialisation Xml des ensembles de données, c'est-à-dire que j'ai l'option.

Existe-t-il un besoin pour une véritable bibliothèque de données dédiée au jeu ? Peut-être ... à moins que quelqu'un ne connaisse une telle bibliothèque qui existe déjà.

Au point de la question de l'OP, regardez chaque fichier csv de page comme une table de données unique - semblable à une table dans une base de données. Chaque page par fichier doit contenir des données connexes:

  • Compétences, ou
  • Gear, ou
  • Statistiques des PNJ

Cela vous aide à maintenir un haut niveau d'organisation, ce qui sera très important à mesure que le contenu des données augmente, que le contenu du jeu se développe, etc.

Modifier
Après avoir réellement essayé d'utiliser .ODS (fichier OpenOffice Calc) et se connecter à partir d'une application, cela n'est en fait pas possible, comme l'indiquent les publications initiales sur le site OO. Je n'ai rien trouvé montrant spécifiquement le code sur la mise en œuvre.

En outre, l'utilisation de fichiers Excel peut être acceptable lors du développement d'un jeu afin que les données puissent être modifiées sans surcharge à partir d'une base de données. Toutefois, et cela est important, si vous prévoyez de le faire, vous devez avoir installé MS Office pour pouvoir référencer Microsoft Excel Interop COM. Cela peut être bénéfique au début, mais je ne voudrais pas supprimer ou modifier un tas de code pour préparer une application pour Alpha, Beta ou RC. Une bibliothèque très simplifiée demanderait plus d'efforts que je ne le verrais utile.

Je vais utiliser des fichiers .CSV pour le stockage de données à un stade précoce. Il y a quelques inconvénients, mais dans l'ensemble, je pense que c'est une bien meilleure option. Tout est contenu dans mes bibliothèques. .Net a des classes très utiles pour lire ces fichiers texte. De plus, en tant que fichiers .CSV, les données sont facilement manipulables; et, pour les étapes ultérieures du développement, tout ce que je dois faire est de sérialiser mes fichiers de données en XML, puis plus tard en binaire chiffré sérialisé.

IAbstract
la source
Cela ne me dérange pas du tout de votes négatifs ... sauf quand je ne sais pas pourquoi. Y a-t-il quelque chose de incorrect dans les options que j'ai fournies ou mes conseils sur l'organisation d'une feuille de calcul? Ou quelqu'un n'a-t-il simplement pas aimé mes options?
IAbstract
Je vous ai donné -1 parce que vous avez comparé une feuille de calcul à un format de données de disque, puis vous avez fait des déclarations comme "les données de jeu ne peuvent pas être facilement altérées". Un programme / interface et un format de données de disque ne sont pas vraiment comparables, et rendre vos données de jeu binaires fait très peu pour dissuader les moddeurs. De plus, le schéma de feuille de calcul que vous proposez est horrible, car il conserve toutes les données dans un seul fichier. Certes, les compétences et les PNJ devraient être dans des fichiers séparés ; peut-être que tous les PNJ devraient être dans des pages distinctes dans le même fichier , bien que si vous utilisez un RCS de verrouillage, cela sera également horrible.
Je ne suis pas d'accord. Prenez Open Office Calc avec le connecteur MySql. Bien sûr, vous pouvez créer un fichier différent pour chacun. Mais je ne m'attendrais pas à conserver mes données dans ce format une fois que j'aurai un RC.
IAbstract
Si les concepteurs utilisent Excel, ils se transmettront des données dans des formats tels que .xls ou .csv. Si vous ne voulez pas perdre ces données dans un trou noir Outlook ou lorsque leur ordinateur se bloque, vous devez leur apprendre à les conserver dans le RCS.
1

Tant que la nature de vos données permet de les stocker dans une feuille de calcul sans passer par trop de cercles, cela constitue un très bon format, en particulier pour les travaux de développement. En fin de compte, vous voudrez peut-être le stocker dans d'autres formats pour l'utiliser, mais la feuille de calcul vous donne un éditeur très puissant qui peut être TRÈS agréable si vous décidez de changer la façon dont vous gérez quelque chose!

Si vous utilisez Excel, procurez-vous une copie des utilitaires ASAP - cela transforme la feuille de calcul en un éditeur encore meilleur.

Loren Pechtel
la source
AU PLUS VITE??? Pouvez-vous fournir un lien?
IAbstract
@dboarman: asap-utilities.com
Loren Pechtel
-2

Eh bien, pour moi, je pense que les programmes speartesheet ne peuvent pas gérer ces choses correctement et efficacement. RDB a été conçu, en fait, pour gérer d'énormes données et tables. Les RDB modernes ont été conçus pour gérer le genre de choses «énormes» et ils le font très bien.

Le point est, pour obtenir la meilleure sortie du RDB dont vous avez besoin pour concevoir votre base de données de la bonne manière. Si votre schéma de données était médiocre ou ne couvrait pas toutes les données de votre projet, vous obtiendrez de très mauvais résultats, performances et résultats.

L'idée de RDB est de décomposer un grand tableau en plus petits afin d'améliorer les performances et la lisibilité. Si vous avez une très grande table (en termes d'attributs ou même d'enregistrements) ou de nombreuses répartitions, et que vous n'en utilisez pas la plupart, cela signifie que votre conception de la base de données comporte des erreurs.

Dans votre question Huang F. Lei, si on me demandait de concevoir une base de données MMORPG, je n'ajouterais pas toutes les compétences dans une table et tous les mobs dans une table. Je vais diviser les compétences en fonction de leurs classes et de leur utilisation en plusieurs tables. Chaque type de compétence aura sa propre table ou même des tables. Pour les foules, je les diviserai selon leur type ou selon leur emplacement dans différents mondes. Etc.

De cette façon, je peux réduire la taille des tableaux, faciliter le suivi des données et améliorer les performances de la base de données.

Dans Excel, en revanche, toutes les données seront «ramassées» en un seul endroit. et trouver une donnée est presque infranchissable, épiquement quand vous avez des données répétées. De plus, à mesure que la taille des données augmente, le temps d'ouverture du fichier augmente.

À la fin, Excel - à mon avis - est un très mauvais moyen de gérer d'énormes données connexes.

Ali Albahrani
la source
Vous avez raison, mais ce n'est pas la bonne réponse. Si vous lisez attentivement la question ou lisez une autre réponse ou un autre commentaire, vous saurez que la question concerne la conception du jeu, pas le stockage des données.
Notabene
Je connais son design et je rouge les questions et réponses. Ce que je comprends, c'est que Huang F. Lei essaie de choisir entre RDB et tableur. Ma réponse en essayant de montrer la différence entre les deux!
Ali Albahrani
Citer: Huang F. Lei: "Oui, Excel est un outil commun. Le point de la question est:" une seule table énorme pour tous les articles ", les articles incluent les équipements, consomme, etc. Est-il nécessaire de diviser l'énorme en petits? Même fichier de configuration séparé pour chaque article? J'ai peur que l'énorme table puisse leur faire mal aux yeux: o) "
Notabene
2
Merci pour votre réponse: o) La question est de savoir comment le concepteur de jeux fournit des données pour créer un jeu, pas de savoir comment le programmeur stocke / accède aux données du joueur dans le jeu.
Huang F. Lei