Czy boli mnie to, że nie znam C ++ do projektowania gier? [Zamknięte]

14

W tej chwili czuję, że jestem silny zarówno w języku Java, jak i C #. (Naprawdę niewielki skok z jednego do drugiego).

Chociaż nie oczekuję, że twórca / programista gier będzie osiągalnym celem na początku mojej kariery, jest to cel, który osiągnę później.

Mając to na uwadze, czuję, że ignorowanie C ++ i powiązanych z nim narzędzi do projektowania gier w końcu mnie skrzywdzi lub spowolni moją zdolność do osiągnięcia celu.

Czy tak jest w przypadku? Czy mogę nadal doskonalić swoje umiejętności C # przy użyciu XNA i WPF do osobistych projektów, które mogą wznieść mnie na taką karierę?

Bryan Harrington
źródło
1
Przejrzyj pozycje firm produkujących gry i powiedz mi, co widzisz. Prawdopodobnie przekonasz się, że masz tłum fanów gier internetowych / facebookowych, którzy w większości szukają deweloperów ActionScript / php, tłumów komputerowych, którzy szukają c ++ / lua oraz tłumu i-gadżet, który używa celu-c. Zależy to od tego, co naprawdę chcesz zrobić, czy sam się ranisz. (To pochodzi od kogoś, kto koncentruje się na C # i python i ignoruje c ++)
Ken

Odpowiedzi:

21

IMO, tak, prawdopodobnie sam się skrzywdzisz. Przede wszystkim, słusznie lub nie jest postrzegane hierarchia wśród języków programowania - C ++ i generalnie ma wyższą pozycję niż Java lub C # (np kwestie takie jak Twoja są dość powszechne - odwrotna jest praktycznie niespotykane). Jeśli zastosujesz gdzieś, gdzie używa C # lub Java i znasz C ++, raczej nie będą kwestionować twoich umiejętności programowania. Jeśli aplikujesz gdzieś, w którym używa się C ++ i znasz C # i Javę, istnieje całkiem spora szansa, przynajmniej w pewnym stopniu podważą twoją umiejętność programowania. Nie oznacza to, że percepcji nie da się przezwyciężyć, ale wciąż stawiasz się w niekorzystnej sytuacji.

Po drugie, przynajmniej wśród niezależnych twórców gier, których znam (przyznaję, niewielu), istnieje podstawowa niechęć do C # tylko dlatego, że pochodzi od Microsoftu. Słońce było postrzegane o wiele bardziej pozytywnie, ale od wykupu Wyroczni wcale tak nie jest. Większość uważa, że ​​„Oracle” i „fajne gry” są tak zbliżone do dokładnych przeciwieństw, jak to tylko możliwe.

Wreszcie, z praktycznego punktu widzenia, gry są jednym z miejsc, w których C ++ jest najczęściej używany. Jeśli nie znasz C ++ przynajmniej w rozsądnym stopniu, po prostu znacznie ogranicza twoje opcje.

Jerry Coffin
źródło
5

Nie jest do końca jasne, ale jakie są twoje cele? Być projektantem gier? Jak myślisz, jakie jest to stanowisko?

W podstawowym przypadku, o ile nie piszesz rzeczywistego kodu, znajomość C ++ specjalnie cię nie skrzywdzi. Oczywiście, mając podstawową wiedzę na temat programowania obiektowego (sam projekt i jest w stanie myśleć w kategoriach warunkowych, etc) jest zamiar pomóc. To, co robi sam C ++ w porównaniu z C # lub Javą, prawdopodobnie nie będzie miało znaczenia, jeśli chodzi o pomoc w projektowaniu reguł gry, które są łatwe do opisania za pomocą kodu.

Tetrad
źródło
3

To naprawdę zależy od twoich celów. Jeśli chcesz przejść do projektowania tak szybko, jak to możliwe i pracować na stanowisku reżysera, posiadane doświadczenie techniczne w języku Java i C # będzie wystarczające.

Jeśli zamierzasz awansować na wyższe stanowisko programistyczne / kierownicze i przejść stamtąd na stanowisko dyrektora, lepiej naucz się jakiegoś niezarządzanego języka. Niekoniecznie byłoby C ++ - C, Cel C lub coś bardziej grzywkowego jak D. Ale nawet pracując na wyższych poziomach abstrakcji w języku C #, ciężko jest być świetnym programistą bez zrozumienia wskaźników i zarządzania pamięcią, bez umiejętności odczytywania zrzutów zestawu i zrzutów pamięci, bez możliwości zrozumienia lub nawet rzeczywistej implementacji optymalizacji na niskim poziomie.

Powinienem też dodać - jeśli nie jesteś teraz w branży, planowanie 20 lat jest głupie. Może dowiesz się, że go nienawidzisz; może dowiesz się, że nie chcesz być reżyserem z powodu wszystkich bzdur niezwiązanych z programowaniem i wolisz po prostu zostać starszym projektantem lub programistą, pracując pod dyrektorem, ale z dużą swobodą w określonym domena, którą lubisz.


źródło
2

Prawdopodobnie będziesz w porządku, używając języków, które znasz; C # z XNA jest teraz popularny, ponieważ możesz rozwinąć się do XBOX360, Zune i PC. Popularność Javy powraca z powodu niezależnego sukcesu Minecraft.

Byłem w podobnej sytuacji, jak Ty, i postanowiłem „zacząć od nowa”, aby porozmawiać z C ++, a 2 tygodnie temu kupiłem „Począwszy od C ++ poprzez programowanie gier”. To NIE jest książka do programowania gier, ale książka dla początkujących w C ++, która obejmuje wszystko, co musisz wiedzieć w C ++ podczas programowania gier z innym API lub biblioteką, i zastępuje nudne projekty większą ilością związanych z grami. To była świetna lektura.

Teraz przechodzę do DirectX i kupiłem książkę Carla Granberga zatytułowaną „Programowanie gry RTS w DirectX”. Ma fantastyczne recenzje. Nadal nie jestem pewien, czy podjąłem złą decyzję z DirectX nad OpenGL, ale zobaczymy.

Shadowprotocol
źródło
2

Uczenie się więcej języków będzie dla Ciebie korzystne. Nawet jeśli prawie wszystkie pro silniki używają - lub powinny używać - skryptów i / lub rozbudowanych narzędzi ułatwiających pracę projektanta, masz rację, ponieważ bardzo pomaga projekt, nad którym konkretnie pracowałeś. Nawet jeśli Twój ankieter nie zwraca uwagi na twoje projekty (co jest już mało prawdopodobne), praca nad nawet jednym osobistym projektem będzie ogromnym doświadczeniem edukacyjnym.

Dla projektantów i artystów portfolio jest prawdopodobnie jeszcze ważniejsze, ponieważ nie można przystąpić do testów programowych ani prowadzić bezpośrednich wywiadów technicznych. Nie mówię więc, że powinieneś wariować i uczyć się wszystkiego, co można wiedzieć o C ++.

Zamiast tego powinieneś być w stanie pokazać kilka gier, które mają dobry potencjał projektowy (pomyśl o małych, przejrzystych koncepcjach gier, takich jak Limbo lub Portal), niezależnie od tego, czy opracowałeś je samodzielnie, czy stworzyłeś za pomocą Flasha. Używaj kodowania jako narzędzia, a nie jako podstawowej broni. Upewnij się, że są łatwo dostępne w Twojej witrynie dzięki filmom z gry, zrzutom ekranu i dostępnym materiałom do pobrania.

Przede wszystkim wypoleruj wszystko, co stworzysz, bez względu na to, jak mały lub jaki masz projekt. Jeśli w programowaniu chodzi o solidność i użyteczność, to projektowanie to zabawa (ludzie często o tym zapominają) i pokazanie, że naprawdę można dopracować szczegóły.

Jessica Nam
źródło
0

C ++ jest pomysłodawcą i twórcą niektórych z najczęściej używanych języków, w tym Java. Ucząc się C ++ (zarówno dla twórców gier, jak i innych), będziesz w stanie nauczyć się niemal każdego języka z szybkością i łatwością. To magia tego języka. C ++ daje większą kontrolę nad kodem w porównaniu z Javą. Więc jeśli naprawdę chcesz być prawdziwym mistrzem swojego kodu, to będziesz w znacznie lepszej pozycji, ucząc się C ++

Kiran
źródło