En choisissant le langage Python, la difficulté de construire l'environnement est élevée, et c'est devenu une opération très coûteuse pour la gestion de la maintenance et l'expansion.
Au travail, je devais créer un outil qui fonctionnerait sur Mac et Windows. J'ai donc choisi Python, qui peut être facilement exécuté depuis le terminal (ligne de commande) de ma machine Mac.
Cet outil synthétise et génère de nombreuses images d'icônes de jeu. Le concepteur crée le matériau de l'icône et le programme Python génère un grand nombre d'icônes tout en se référant aux données de la feuille de calcul Google. (Enfin, cette image d'icône sera combinée en une sous la forme d'Atlas dans la NGUI d'Unity, et elle se terminera par plusieurs Atlas)
La première chose que j'ai apprise en utilisant Python cette fois est la difficulté de créer un environnement. Et, plutôt que la commodité d'un langage qui ne nécessite pas de compilation (compilation), il y avait aussi un manque de réflexion sur la gestion du code source. Après tout, au début, je ne faisais que de la composition d'image simple, alors j'ai transmis la gestion de cet outil au concepteur sous forme de zip du code source Python qui fonctionnait sur mon Mac local au lieu de svn. À cause de cela, je ne pensais pas que j'aurais autant de mal plus tard, comme devoir préparer un fichier bat et même une machine Windows pour vérifier si Python fonctionne correctement sous Windows.
Je pense que Python est un très bon langage. Il existe déjà de nombreuses bibliothèques et des bibliothèques pour l'édition d'images, et c'est un langage que de nombreux programmeurs peuvent gérer.
En effet, il ne nécessite pas de compilation et présente l'avantage de pouvoir écrire et modifier directement des données locales telles que le chemin et le nom de fichier requis pour chaque environnement dans lequel l'outil est utilisé dans le code source Python.
Et l'avantage de pouvoir exécuter un seul fichier depuis la ligne de commande. Un autre facteur dans le choix de Python était le manque d'idée de pouvoir effectuer une compilation croisée sur Mac / Windows car cela a commencé avec un très petit programme comme un problème pratique.
Le problème avec le programme Python que j'ai créé cette fois-ci est que j'ai besoin qu'un concepteur qui n'est pas un programmeur prenne le temps de créer un environnement tel qu'une bibliothèque sur la machine qui fonctionne car il ne nécessite pas de compilation, et je demande de créer cet environnement. ・ C'est le point que je devais faire.
Maintenant, je pense que j'aurais dû choisir un langage qui peut être croisé.
Tout d'abord, j'ai écrit Python sur Mac, exécuté le fichier Python à partir du terminal, confirmé que cela fonctionnait, puis en ai fait un zip et l'ai remis au concepteur par chat. Mais quand je le passe, cela ne fonctionne pas sous Windows. Je reçois des rapports de situations et d'erreurs dans le chat et je réponds, mais cela ne fonctionne pas du tout. Finalement, j'ai marché jusqu'au siège du designer et j'ai vérifié le programme. Cela a interrompu son travail et retardé ses autres implémentations.
Lorsque j'ai suivi l'erreur, je n'ai pas pu trouver la bibliothèque sur mon Mac. Il n'y avait certainement pas de bibliothèque d'imagerie Python (PIL) à l'époque. Ce gars était vraiment ennuyeux.
Tout d'abord, comme solution
$ brew install pil
Je me souviens avoir passé des heures à étudier le travail qu'il suffisait de faire et à gaspiller l'introduction de diverses bibliothèques.
(Il semble qu'une sorte de bibliothèque ait été compilée avec gcc ...)
Ce travail était vraiment difficile.
Vient ensuite le téléchargement CSV à partir de la feuille de calcul Google. Initialement, les données des éléments étaient référencées à partir des données de base du projet de jeu géré par Unity's Asset Server (propre système de gestion de version d'Unity). Cependant, lorsque le développement de la prochaine version sera décidé, la branche du projet sera nouvellement découpée en svn, et les données de base référencées jusqu'à présent deviendront obsolètes. Par conséquent, afin de garder les éléments à jour, j'ai décidé de me référer (heureusement) à la feuille de calcul Google, qui est toujours à jour. J'utilise une bibliothèque Python appelée gspread pour parcourir les feuilles de calcul Google.
J'ai décidé de demander au concepteur d'écrire le compte google et son mot de passe directement dans le fichier chauve-souris qui appelle Python. Et comme j'échangeais encore avec zip, le designer a engagé zip sur svn à mon insu. Cela conservera son compte et son mot de passe sur svn pour le reste de sa vie et quiconque pourra consulter ce fichier zip pourra détourner son compte.
J'ai fait changer mon mot de passe.
Et en raison du danger et de la dépréciation des adresses e-mail et des mots de passe par gspread, la prise en charge d'OAuth était nécessaire. Oui, ce n'était plus un "petit programme". Je l'ai sauté, mais bien sûr j'ai dû créer gspread dans l'environnement du designer, ce qui était très difficile pour moi.
Et ce programme est toujours maintenu et développé. J'aimerais changer rapidement, mais je n'ai pas pu épargner le temps réel du problème. (Divers mauvais programmeurs ...)
La mission de ce programme a toujours été de réduire la charge de travail des concepteurs. Par conséquent, j'aimerais l'exécuter depuis UnityEditor et importer Atlas, mais cela n'a pas été fait depuis longtemps en raison du manque d'étude et du manque de temps. Je ne suis pas un programmeur d'outils. Vous devez également implémenter le jeu.
Cependant, ce que j'ai tiré de cette affaire était très important. Une force qui peut être exécutée depuis la ligne de commande par Python. En outre, il a été constaté que la charge et la gestion de l'environnement d'exécution sont réduites car le programme compilé ne nécessite pas d'environnement de bibliothèque. Je pense que c'était une découverte et une expérience très importantes pour moi.
Et par-dessus tout, je pense que j'ai besoin d'autres programmeurs inexpérimentés comme moi. Si l'environnement d'exécution du programme que vous essayez de créer couvre plusieurs systèmes d'exploitation, j'espère que cet article vous sera utile.