Mam bardzo ogólne pytanie, które mnie niepokoi, ale najpierw chcę dodać kilka szczegółów. Jestem głównym programistą Java. Dla zabawy samodzielnie stworzyłem małe gry w Javie. Im bardziej patrzę na profesjonalne tworzenie gier, tym bardziej się mylę. Dzieje się tak, ponieważ ilekroć szukam w Google tematów związanych z tworzeniem gier lub odwiedzam fora itp., Napotykam różne sugestie.
Niektórzy powiedzą, że C ++ jest dobry, niektórzy powiedzą, że JAVA może być lepszy, a jeszcze inni powiedzą, że innym językiem jest język ur, taki jak Python, Lua, UnrealScript itp. Sugeruje się również, że należy mieć wiedzę na temat Silniki gry, takie jak Unreal, Torque, Blender, Panda itp., i wymagana jest znajomość OpenGL, AI, wykrywania kolizji. Stworzyłem nawet grę przy użyciu zestawu Android SDK.
Chcę zapytać:
- Jaki podstawowy zestaw umiejętności musi posiadać profesjonalny programista gier? Czy jest to 1 język programowania + 1 język skryptowy + 1 znajomość silnika gry + OpenGL? (Uff !!)
- Jeśli chcę wejść do branży gier jako programista rozgrywek lub programista AI, to czy mogę wziąć w niej udział z moimi obecnymi umiejętnościami i portfolio (jak wspomniano powyżej)?
- Czy nauka jednego języka programowania wystarcza do tworzenia gier?
Wszelkie wytyczne będą pomocne.
źródło
Im dłużej badam ten temat i rozmawiam z profesjonalnymi twórcami gier, tym bardziej myślę, że tak naprawdę sprowadza się to do kilku rzeczy. W szczególnej kolejności:
źródło
Wiele zależy od twoich celów zawodowych. Jeśli wszystko, czego chcesz, to „tworzenie pracy” przed ukończeniem wymaganego 5,5 roku, wypaleniem się i odejściem, to myślę, że po prostu patrzysz na oferty pracy na poziomie podstawowym i szukasz tego, czego chcą, uczysz się i aplikujesz. Prosty. (Ale jeśli twoje pytanie naprawdę sprowadza się do „jaki minimalny wysiłek muszę włożyć, aby znaleźć pracę?”, Odpowiedź brzmi: „jeśli włożysz minimalny wysiłek, dostaniesz minimalną pracę! „)
Ale na dłuższą metę nie sądzę, żeby chodziło o znajomość niektórych języków lub naukę konkretnego. Języki się zmieniają - dziesięć lat temu nikt nie korzystał z Objective-C, XNA, C # lub AS3, a dziesięć lat od teraz masz pewność, że każdy język, którego uczysz się dzisiaj, i tak będzie przestarzały.
Tak więc jedną z rzeczy, które należy zabezpieczyć na przyszłość, jest nie tylko „nauka języka”, ale także nauczenie się JAK uczyć się nowych języków. Po opanowaniu około 3 języków przekonasz się, że wybór nowego nie jest taki zły. Zresztą większość podstawowych komponentów jest taka sama - każdy język ma zmienne, tablice, pętle, warunki warunkowe itd., Więc chodzi tylko o naukę składni.
Druga połowa to zrozumienie podstawowych pojęć programowania i informatyki. Poznaj zarządzanie pamięcią, wskaźniki, rekurencję i tak dalej. Jeśli rozumiesz pojęcia, możesz je zastosować w prawie dowolnym języku.
Jeśli chcesz stać się bardziej zbywalny, naucz się specjalizacji programowej związanej z grami, cokolwiek Cię interesuje ... AI, bazy danych, sieci, narzędzia, cokolwiek.
źródło
Potrzebna jest jeszcze jedna bardzo ważna umiejętność, która wydaje się nieco przeoczona. Musisz wiedzieć, jak się dopasować i współpracować z zespołem ludzi, od innych twórców gier, po projektantów i kierowników projektów. Nie jest to umiejętność techniczna, ale nadal jest bardzo ważna, ponieważ możesz być najlepszym deweloperem w domu, a jeśli nie możesz dogadać się z ludźmi, tworzenie dużych gier będzie problemem!
Ponadto, ponieważ ShrimpCrackers dobrze znający jeden język jest lepszy niż z grubsza znajomość 5 języków, a zrozumienie tego, co dzieje się pod maską tego jednego języka, w którym jesteś głupcem, jest jeszcze lepsze, ponieważ w przypadku gier musisz wiedzieć, jak uzyskać najlepszą wydajność z języka
Wreszcie, choć trochę wiedząc o sprzęcie, szczególnie GPU nie zaszkodzi!
źródło
Do programowania gier społecznościowych potrzebne są tylko podstawowe umiejętności.
Skrypt akcji programu (możesz użyć środowiska elipse i svn), jest on używany w interfejsie gry (strona internetowa)
Program java (który można również zrobić zaćmienie i użycie svn), służy do działań po stronie serwera podejmowanych z żądań strony internetowej.
źródło