La plupart des entreprises ont un éditeur ou un système de contrôle variable pour peaufiner les choses dans les jeux, mais existe-t-il des solutions middleware à ce problème? J'ai moi-même écrit deux de ces systèmes dans le passé et travaillé avec cinq, peut-être six systèmes différents, mais aucun n'était disponible.
Chacune de ces solutions maison avait des problèmes, allant de devoir continuer à rechercher des valeurs, à ne pas pouvoir sauvegarder l'état actuel des variables.
Existe-t-il des bibliothèques / applications de contrôle des variables de configuration / d'exécution matures?
Je code généralement en C ++, mais je pense qu'un éditeur de paramètres / variables mature serait probablement basé sur un socket (et donc un langage indépendant dans une certaine mesure) car tout le matériel de développement actuel, à l'exception de Nintendo, fournit un mécanisme pour parler aux serveurs. L'implémentation du code devrait également être assez simple (j'aime bien l'article hot_var / TweakableConstants partagé par Oskar, mais ce n'est pas un package)
Peut-être que l'idée de constantes ajustables correspond à vos besoins. Il est tellement utilisable en fait que vous penseriez avoir besoin d'une solution complexe pour avoir un contrôle efficace des variables d'exécution, mais en réalité l'implémentation est presque trop simple. La discussion originale de cette technique est également une lecture intéressante.
Exemple:
La
H
macro se développe en quelque chose commeHotValue(x, __FILE__, __LINE__, __COUNTER__)
. Cela enregistre la valeur dans un registre global. Ensuite, ayez une fonction commeRefreshHotValues()
celle que vous appelez à intervalles réguliers. La fonction recherche chaque entrée dans le registre, analyse le fichier source spécifique et recharge la valeur chaude.Lorsque vous modifiez le code source réel, vous avez la persistance là.
Évidemment, cela ne fonctionnera pas là où
H()
n'est pas évalué chaque trame, mais il existe des moyens de résoudre ce problème, comme indiqué ici .Vous pourriez peut-être étendre cette idée à une solution basée sur un socket. Il pourrait y avoir un surdébit de performances important pour appeler
HotValue()
chaque trame, mais comme vous pouvez très facilement compiler la macro en la remplaçant complètement par la constante, ce n'est pas un problème.la source
H(int, myvar, 5)
et lorsque des modifications de fichier sont remplacées, vous remplacez lemyvar
en mémoire. Voir mollyrocket.com/forums/viewtopic.php?p=5395#5395AntTweakBar est vraiment utile pour ce que vous voulez faire, cependant, la plupart du temps, vous voudriez avoir des méthodes qui «compilent» en version avec des macros ou similaires.
la source
À partir d'une question sur le débogage en temps réel , vient la réponse de David McGraw sur AsyncSocket pour les développeurs iOS. Voir sa réponse pour plus d'informations.
la source
La gestion des paramètres semble être l'une de ces choses qui ont été refaites à zéro pour chaque jeu, probablement en raison de sa relative simplicité et de la grande variabilité des types de paramètres nécessaires. En supposant que vous disposez d'une configuration de backend de stockage décente (SQL / autre), vous pouvez coder une solution robuste pour la gestion des paramètres en un jour ou deux, de sorte qu'il ne semble pas y avoir vraiment de besoin réel pour une solution middleware. Je pense que la meilleure façon de procéder dans la plupart des cas est de le maîtriser par-dessus tout ce que vous utilisez pour le stockage des informations sur les joueurs.
la source
J'ai pensé à une telle chose ces derniers temps, et je pense que ce serait un excellent candidat pour une application Android associée à une petite bibliothèque dans la langue que vous souhaitez . L'application serait un ensemble personnalisable de boutons, de bascules, de listes déroulantes, etc. (n'importe quel widget que vous voulez), et elle enverrait les actions via WLAN (ou USB si vous vouliez compliquer les choses) à la bibliothèque. La bibliothèque aurait engendré un fil distinct du gameplay et saurait quels contrôles sur le téléphone Android correspondent à quelles variables du jeu (vous les auriez définis dans votre code de démarrage) et aurait une connexion à l'application Android.
Ensuite, jouer avec votre jeu est aussi simple que de toucher des choses sur votre téléphone. Vous pouvez même avoir des zones de texte sur le téléphone qui affichent les valeurs variables en temps réel du jeu, ou vous pouvez avoir la bibliothèque en avant
stdin
oustderr
vers une zone de texte défilante sur le téléphone. Les options sont illimitées!Le seul vrai souci est la vitesse. Si la vitesse et le temps de réaction sont cruciaux, il vous suffit de brancher le téléphone via USB et adb (débogueur Android) prend en charge les ports de transfert via USB vers le téléphone. Mais sinon, le WLAN n'aurait qu'un très petit retard qui, je pense, serait tout à fait acceptable à cet effet.
Je ne pense pas qu'une telle chose que ce qui précède ait été écrite, mais j'ai sérieusement envisagé de l'écrire. (Je n'ai tout simplement pas assez avancé dans le développement de mes propres jeux pour en avoir besoin)
Bien sûr, ceux d'entre vous qui sont des utilisateurs d'Apple peuvent probablement faire de même avec vos iDevices. Personnellement, je trouve que le développement iOS est beaucoup plus difficile que le développement Android, et bien sûr, l'application ci-dessus pourrait facilement être publiée sur le marché Android pour une distribution facile alors qu'Apple ne permettrait probablement pas un outil de développement dans l'App Store, donc je sentir que la plate-forme Android convient mieux à cet outil.
la source