Bei Auswahl der Python-Sprache ist die Schwierigkeit beim Erstellen der Umgebung hoch und für das Wartungsmanagement und die Erweiterung zu einem sehr teuren Vorgang geworden.
Bei der Arbeit musste ich ein Tool erstellen, das unter Mac und Windows funktioniert. Deshalb habe ich mich für Python entschieden, das einfach über das Terminal (Befehlszeile) meines Mac-Computers ausgeführt werden kann.
Dieses Tool synthetisiert und gibt viele Bilder von Spielsymbolen aus. Der Designer erstellt das Material für das Symbol, und das Python-Programm gibt eine große Anzahl von Symbolen aus, während es auf die Daten in der Google-Tabelle verweist. (Schließlich wird dieses Symbolbild in Form von Atlas in Unitys NGUI zu einem zusammengefasst und endet als mehrfacher Atlas.)
Das erste, was ich diesmal aus Python gelernt habe, ist die Schwierigkeit, eine Umgebung aufzubauen. Und anstatt der Bequemlichkeit einer Sprache, die keine Erstellung (Kompilierung) erfordert, mangelte es auch an Überlegungen zur Quellcodeverwaltung. Schließlich habe ich zunächst nur einfache Bildkompositionen erstellt, daher habe ich die Verwaltung dieses Tools als Zip des Python-Quellcodes, der auf meinem lokalen Mac anstelle von svn ausgeführt wurde, an den Designer übergeben. Aus diesem Grund dachte ich nicht, dass es mir später so schwer fallen würde, beispielsweise eine Bat-Datei und sogar einen Windows-Computer vorzubereiten, um zu überprüfen, ob Python unter Windows ordnungsgemäß funktioniert.
Ich denke, Python ist eine sehr gute Sprache. Es gibt bereits viele Bibliotheken, und es gibt auch Bibliotheken für die Bildbearbeitung, und es ist eine Sprache, mit der viele Programmierer umgehen können.
Dies liegt daran, dass kein Build erforderlich ist und der Vorteil besteht, dass lokale Daten wie Pfad und Dateiname, die für jede Umgebung erforderlich sind, in der das Tool im Python-Quellcode verwendet wird, direkt geschrieben und bearbeitet werden können.
Und der Vorteil, eine einzelne Datei über die Befehlszeile ausführen zu können. Ein weiterer Faktor bei der Auswahl von Python war das Fehlen der Idee, eine Cross-Kompilierung auf Mac / Windows durchführen zu können, da es mit einem wirklich kleinen Programm als praktischem Problem begann.
Das Problem mit dem Python-Programm, das ich dieses Mal erstellt habe, ist, dass sich ein Designer, der kein Programmierer ist, die Zeit nehmen muss, um eine Umgebung wie eine Bibliothek auf einem Computer zu erstellen, der ausgeführt wird, weil keine Kompilierung erforderlich ist, und ich weise an, diese Umgebung zu erstellen. ・ Dies ist der Punkt, den ich tun musste.
Jetzt hätte ich eine Sprache wählen sollen, die sich gegenseitig kompilieren lässt.
Zuerst schrieb ich Python auf dem Mac, führte die Python-Datei vom Terminal aus aus, bestätigte, dass sie funktioniert, machte sie dann zu einem Reißverschluss und gab sie dem Designer per Chat. Aber wenn ich es bestanden habe, funktioniert es unter Windows nicht. Ich erhalte Berichte über Situationen und Fehler im Chat und antworte, aber es funktioniert überhaupt nicht. Schließlich ging ich zum Sitz des Designers und überprüfte das Programm. Dies unterbrach seine Arbeit und verzögerte seine anderen Implementierungen.
Als ich dem Fehler folgte, konnte ich die Bibliothek auf meinem Mac nicht finden. Zu dieser Zeit gab es sicherlich keine Python Imaging Library (PIL). Dieser Typ war wirklich nervig.
Zunächst als Lösung
$ brew install pil
Ich erinnere mich, dass ich Stunden damit verbracht habe, die Arbeit zu untersuchen, die nur erledigt werden musste, und die verschiedenen Bibliotheken vergeblich eingeführt zu haben.
(Es scheint, dass eine Art Bibliothek mit gcc kompiliert wurde ...)
Diese Arbeit war wirklich hart.
Als nächstes folgt der CSV-Download aus der Google-Tabelle. Anfänglich wurden die Artikeldaten aus den Stammdaten des Spielprojekts referenziert, das von Unitys Asset Server (Unitys eigenem Versionsverwaltungssystem) verwaltet wurde. Wenn jedoch über die Entwicklung der nächsten Version entschieden wird, wird der Zweig des Projekts neu auf svn zugeschnitten, und die bisher referenzierten Stammdaten werden veraltet sein. Um die Artikel auf dem neuesten Stand zu halten, habe ich mich (zum Glück) für die Google-Tabelle entschieden, die immer auf dem neuesten Stand ist. Ich verwende eine Python-Bibliothek namens gspread, um Google-Tabellen zu durchsuchen.
Ich beschloss, den Designer zu bitten, das Google-Konto und sein Passwort direkt in die Bat-Datei zu schreiben, die Python aufruft. Und da ich immer noch mit zip ausgetauscht habe, hat der Designer zip ohne mein Wissen an svn übergeben. Auf diese Weise kann jeder, der diese Zip-Datei auschecken kann, sein Konto und Passwort für den Rest seines Lebens auf svn behalten und sein Konto entführen.
Ich hatte mein Passwort geändert.
Und wegen der Gefahr und der Ablehnung von E-Mail-Adressen und Passwörtern durch gspread war OAuth-Unterstützung erforderlich. Ja, es war kein "kleines Programm" mehr. Ich habe es übersprungen, aber natürlich musste ich in der Umgebung des Designers gspread bauen, was für mich sehr schwierig war.
Und dieses Programm wird noch gepflegt und erweitert. Ich würde gerne schnell wechseln, aber ich konnte die eigentliche Problemzeit nicht sparen. (Verschiedene schlechte Programmierer ...)
Die Mission dieses Programms war es immer, die Arbeitsbelastung der Designer zu verringern. Daher möchte ich es von UnityEditor aus ausführen und Atlas importieren, aber es wurde aufgrund mangelnder Studien und Zeitmangel schon lange nicht mehr durchgeführt. Ich bin kein Werkzeugprogrammierer. Sie müssen auch das Spiel implementieren.
Was ich jedoch aus diesem Fall bekam, war sehr groß. Eine Stärke, die von Python über die Befehlszeile ausgeführt werden kann. Es wurde auch festgestellt, dass die Belastung und Verwaltung der Ausführungsumgebung verringert wird, da das kompilierte Programm keine Bibliotheksumgebung erfordert. Ich denke, das war eine sehr wichtige Entdeckung und Erfahrung für mich.
Und vor allem denke ich, ich brauche andere unerfahrene Programmierer wie mich. Wenn die Ausführungsumgebung des Programms, das Sie erstellen möchten, mehrere Betriebssysteme umfasst, hoffe ich, dass dieser Artikel hilfreich ist.