Co to jest „tworzenie narzędzi?”

18

Patrzyłem na różne oferty pracy w branży gier i wiele z ofert, które widziałem w reklamie, dotyczy stanowiska „programisty narzędzi”. Nie wiem, co to właściwie jest.

Czy ktoś mógłby mi wyjaśnić, co to dla mnie jest? I jeśli ktoś ma jakieś linki do materiałów, które pomogłyby mi zrozumieć to bardziej, to byłoby bardzo mile widziane.

Elliott
źródło

Odpowiedzi:

22

Pozycja programowania narzędzi dotyczy generalnie mnożnika siły dla reszty zespołu programistów. Dokładny charakter pracy będzie oczywiście bardzo różny w poszczególnych studiach, w zależności od zindywidualizowanych potrzeb tej firmy.

Przede wszystkim jednak miałbyś za zadanie stworzyć oprogramowanie, które miałoby być konsumowane przez innych programistów w studio, a rolą tego oprogramowania może być:

  • zasoby lub zawartość autora (poziomy, modele, przedmioty, zaklęcia, cokolwiek) bezpośrednio w grze
  • działać jako pomost między grą studia lub budowaniem potoku a innymi narzędziami do tworzenia treści (na przykład eksporterami Mayi).
  • być częścią zautomatyzowanych procesów budowania, które przekształcają zasoby gry źródłowej w ich ostateczne skompilowane formularze do dystrybucji z grą detaliczną
  • pomagać programistom w codziennych zadaniach, takich jak synchronizowanie z konkretnymi wersjami gry lub przechodzenie między gałęziami

Ważne jest również, aby pamiętać, że w niektórych studiach jest to uważane za wyjątkowo podstawowe, ponieważ kończy się to głównie bezmyślną chrząkaniem (być może przesuwanie przycisków w interfejsie użytkownika dla projektanta). W innych jest dokładnie odwrotnie, ponieważ obejmuje opiekę i karmienie krytycznych rurociągów budowania i wdrażania dla MMO wysyłających na żywo.

Zakres odpowiedzialności i oczekiwań jest duży (choć tak naprawdę dotyczy to prawie każdej pozycji w branży), ale ogólny cel jest zwykle taki sam: wypatruj wszelkich wąskich gardeł w organizacji, a następnie kup, buduj lub trenuj, aż zoptymalizujesz to wąskie gardło.


źródło
17

W skrócie: Twórz programy używane przez innych do tworzenia czegoś (np. Narzędzia).

Popularnym i łatwym przykładem może być edytor poziomów dla gry.

Ale może to być znacznie więcej za kulisami, na przykład jakiś program do śledzenia wersji, narzędzie do śledzenia błędów, fora, niektóre narzędzie sprawdzające, czy zawartość jest bez błędów itp.

Mario
źródło
6

Programista narzędzi to specjalistyczna rola, która staje się niezbędna w produkcji. Zasadniczo jesteś osobą, która patrzy na potok użyty do stworzenia gry i znajduje sposoby na zoptymalizowanie procesu.

Jako programista narzędzi dla kilku gier potrójnych A zrobiłem:

  • Twórz nowe edytory, np. Poziom, wykres i dźwięk, do wykorzystania przez projektantów.
  • Rozszerz, napraw błędy lub dodaj funkcje do istniejących edytorów, np. W Unreal 3 i 4.
  • Pisanie skryptów i wtyczek do pakietów Digital Content Creation (DCC), takich jak Maya i Photoshop, np. Import / eksport animacji, zarządzanie treścią itp.
  • Integracja kontroli źródła (Perforce) z narzędziami.
  • Modyfikowanie narzędzi open source w celu dopasowania do potoku.
  • Weryfikacja treści.
  • Opanowanie finalnej gry na konsole.
  • Zbuduj system i ciągłą integrację.
  • Narzędzia do importu i eksportu lokalizacji.
  • Od czasu do czasu pisz nowe funkcje silnika i narzędzia pomocnicze.
  • Zarządzane bazy danych z miliardami rekordów, np. Dane dotyczące wydajności.
  • Przetwarzanie w chmurze / aplikacje dla serwerów zaplecza (AWS)
  • ... itd

W niektórych studiach, np. Niezależnych, oczekuje się, że każdy programista może pisać narzędzia pomagające w produkcji gry.

Poniżej znajduje się kilka linków do IGDA Tools SIG i bloga Toolsmiths (International Game Developers - Tools Special Interest Group).

Dennis
źródło
1

Scenariusz 1: Flash i AS3

Czasami musisz stworzyć pewne funkcje, które pomogą ci bardziej w procesie produkcji gier. Przez „narzędzie” oznacza coś, co może pomóc przyspieszyć proces rozwoju.

Na przykład Flash zasadniczo nie zapewnia idealnego wykrywania kolizji pikseli. Możesz więc napisać samemu lub spróbować googlować, czy jakiś facet zrobił to wcześniej i ustawić jako kod opensource. Zbiór kodów źródłowych w odpowiednio ułożonych folderach zapewni foldery na dłuższą metę. Coś jak twoja biblioteka.

Scenariusz 2 Jedność

Podobnie możesz używać unityscript (jednowymiarowa wersja javascript) lub c # do pisania komponentów, małych małych narzędzi, na przykład B Spline, krzywych Beziera. Rzeczy, które nie są domyślnie w jedności. Albo napisz jedną, albo zdobądź ją w Internecie. Występują w wersjach darmowych / płatnych.

Wisznu
źródło
1
Z mojego doświadczenia wynika, że ​​„programista narzędzi” jest najczęściej zatrudniony w studiach AAA, których w ogóle nie uwzględniono w „scenariuszach”.
Stephan van den Heuvel