Na forum 4programmers.net korzystamy z plików cookies. Część z nich jest niezbędna do funkcjonowania
naszego forum, natomiast wykorzystanie pozostałych zależy od Twojej dobrowolnej zgody, którą możesz
wyrazić poniżej. Klikając „Zaakceptuj Wszystkie” zgadzasz się na wykorzystywanie przez nas plików cookies
analitycznych oraz reklamowych, jeżeli nie chcesz udzielić nam swojej zgody kliknij „Tylko niezbędne”.
Możesz także wyrazić swoją zgodę odrębnie dla plików cookies analitycznych lub reklamowych. W tym celu
ustaw odpowiednio pola wyboru i kliknij „Zaakceptuj Zaznaczone”. Więcej informacji o technologii cookie
znajduje się w naszej polityce prywatności.
Potrafię już trochę z Pythona i C++. Aktualnie uczę się C++.
Czy ktoś mógłby podać najlepsze języki do gamedev? Zastanawiałem się nad C#, czy C# byłby odpowiedni do pisania gier w jakichś silnikach. Chciałbym pisać gry na Windowsa oraz Androida.
Nie ma czegos takiego jak najlepszy jezyk do czegos. Najlepsze jest to co pozwoli Ci uzyskac dobry efekt przy najmniejszym wysilku, nawet jesli jest to jakis game maker w ktorym wszystko przeklikujesz. Zamiast szukac w jakim jezyku poszukaj lepiej w czym sie najlatwiej / najszybciej robi gry (najlepiej szukaj o konkretnym typie gry ktory chcesz zrobic).
Co do jezykow to wiekszosc jezykow jest prawie identyczna, takze jesli nauczysz sie dowolnego jezyka w takim stopniu ze zrozumiesz obiektowosc to praktycznie kazdego podobnego jezyka jestes w stanie nauczyc sie w ciagu kilku dni (moze bez znajomosci bibliotek, ale to jest wszystko w internecie i mozesz szukac uzywajac analogi do innego jezyka np. "jaki jest odpowiednik C++-owego vectora w Javie").
Ej… człowiek się katuje pracując nad silnikiem https://github.com/PistonDevelopers, a potem słyszy, że tylko C++ :( Smutłem, idę się ciąć stołem po twarzy. Choć to chyba raczej zasługa @xmisi3g
Profesjonalnie - nie mówię tu o wykonaniu, a o użyciu; Rust jest jako tako świeżynką, ale chętnie rzucę okiem na cokolwiek poważniejszego w tymże języku ;)
Jest "świeżynką" jeśli chodzi o wersje stabilne. Jeśli chodzi o rozwój, to jest jeden z najdłużej rozwijających się języków (5 lat, Clojure, które jest uznawane za długo powstający język, powstało w 3 lata).
Biblioteki, bo z narzędzi to brakuje mi tylko rustfmt, ale praca w toku (jedyny problem to, że libsyntax jest cały czas unstable, a to by znacznie pomogło z narzędziami).
Z twoim obecnym poziomem wtajemniczenia to w ogóle nie jest ważne czego będziesz się uczył.
Samo przejście nie będzie zbyt przyjemne, ponieważ - w przeciwieństwie do relacji z pythonem i javascriptem - C++nie jest naturalnym "przyjacielem" C#.
@n0name_l moim osobistym zdaniem i tak i tak naprodukuje się gównianego kodu, a tak przynajmniej pouczy się chłopak czegoś ciekawego, skoro jak działa program już wie :P (bazując na Potrafię już trochę z Pythona i C++)
Ale co niby tym C# zawojujesz? Proste gierki na Androida klepie się w Javie, a duże gry na Windowsa robi się głównie korzystając z gotowych silników w C++ (no chyba, że trafisz do firmy, która robi silniki gier w C++, ale to już raczej trudno).
Z drugiej strony, żeby np pracować jako programista przy grach 3D pasuje najpierw wiedzieć jak się generuje grafikę 3D (czyli zarządzanie zasobami, generowanie efektów, obsługa karty graficznej, kopanie się z API, itd), a to można zrobić pisząc w dowolnym popularnym języku (bo w niepopularnym dodatkowo kopiesz się z integracją platformy programistycznej z API i sterownikami karty graficznej).
W "tradycyjnym"/"dużym" gamedevie (PC, konsole) króluje C++ w silnikach, C# w toolsetach (narzędzia), lua jako skryptowy / logika gry (ale kawałek po kawałku C# też ten tort zabiera).
W mobilnym i "małym" (część indie) jest większa różnorodność z pythonami, javascriptami i tak dalej.
Sądzę, że znajomość C# w perspektywie 5 lat będzie bardzo pożądana (do Unity przekonały się już największe studia, a C# wkracza również do Unreal Engine). Zwłaszcza z rozwojem natywnej kompilacji (do tej pory używany był tylko kompilator AOT Mono, a teraz dojdzie il2cpp Unity oraz .NET Native Microsoftu).
@Rev wspomniałem o scali w przypadku ogólnego dylematu autora pod tytułem C# czy C++; Autor nie jest osobą w żadnym stopniu zaawansowaną, więc o poważnym gamedevie tutaj w ogóle nie mówimy. Niech najpierw ogólnie nauczy się programować.
@Rev w przypadku osoby początkującej możemy w ogóle zignorować temat gier, na który się wszystkie młodziki łasą; Ale jeśli naprawdę się uprzeć, to można podstawić gry na platformę java w miejsce gier w scali
A w przyszłości znajomość C++ będzie potrzebna? Czy da się być dobrym programistą, bez znajomości C++?
Może daj sobie spokój z tymi pytaniami (za każdym razem o inny język) i programuj w czym ci się podoba. Język na początku nie ma znaczenia, liczy się, że nauczysz się programować, a nie że nauczysz się jakiegoś języka.
A ja po dłuższym namyśle bym polecił Rusta. http://www.rust-lang.org/
Znalazłem na szybko nawet jakieś bindingi do graficznych API: https://github.com/gfx-rs/gfx-rs
Jako, że Rust jest stworzony pod kompilację do kodu natywnego i minimalne środowisko uruchomieniowe (brak odśmiecacza, bajtkodu/ kodu pośredniego/ kompilacji JIT) to powinien dobrze współgrać z API do grafiki 3D jak DirectX, OpenGL, Mantle (które jest bazą dla OpenGL Vulkan i hmm inspiracją (?) dla DirectX 12).
Rust jak na razie jest świeżynką i ciężko przewidywać jego przyszłość. Jak na razie jest mocno niepewny jeśli chodzi o jego wykorzystanie komercyjne, ale moim zdaniem wartość edukacyjną może mieć sporą. Ja np swoje przygody z programowaniem na poważnie zaczynałem od czystego asemblera i wałkowałem go wiele lat hobbystycznie. Później trzeba było znaleźć pracę, więc zostałem Javowcem, a teraz jestem Scalowcem i generalnie nie uważam, by lata spędzone nad asemblerem były stracone.
W ogóle grzebałem w wielu językach:
czysty asembler x86,
C,
Pascal,
C++,
Java,
Scala,
OpenCL,
Python,
Haskell,
JavaScript,
SQL,
Bash (ale w nim strasznie ciężko się poruszam),
Moim zdaniem, jeśli zależy ci na klepaniu gierek, to bierz się za Rusta. Z języków bez VMek C jest zbyt toporny, C++ zbyt zamotany (z mojego punktu widzenia, C++ to C wzbogacony o konstrukcje, które niby mają usprawnić życie programisty, ale przez obsesję na punkcie minimalizacji narzutu są trudne w utrzymaniu i rozwoju), a Rust wydaje się spoko.
Napisałeś, że masz 14 lat, więc i tak nie ma sensu się teraz nastawiać na komercję, bo zanim zaczniesz pracować na pełen etat to minie z 7 - 10 lat, a to jest czas na naukę kilku języków, a nie jednego,
Jeśli chodzi o poważniejszy C++ to jedyną rzeczą wartą zaznaczenia jest podwyższony próg wejścia jaki narzuca sam język, po tym wszystko przychodzi naturalnie jak poranne...a medytacja
Jeżeli miałbym pisać teraz silnik do gier od zera to z pewnością Rust byłby bardzo dobrym wyborem. To unikat jeśli chodzi o język typu 'systems programming'. Zdarzyło mi się rozmawiać kilka tygodni temu z Chrisem Heilmannem i generalnie wszyscy w Mozilli są bardzo optymistycznie nastawieni do przyszłości Rusta. Są już plany by pod koniec roku zacząć wprowadzać elementy napisane w Ruście do Firefoksa, a i nieformalną opieką nad Servo sprawuje Samsung i jest szansa, że ten silnik znajdzie się w mobilnej przeglądarce na telefonach tegoż producenta.
@Rev zamiast gadać, że "pisałbyś" to dołącz do https://github.com/PistonDevelopers. Ja aktualnie siedzę głównie w statycznych obrazach, ale niedługo mam zamiar przejrzeć trochę rendery 3D. Co do integracji z Gecko, to są plany by to zrobić do końca roku (integracja nowego języka w build chain Gecko to dość dużo roboty). Dodatkowo wczoraj wyszła beta (większość libstd już jest stable, a w becie kompilator zabrania używać innych stadiów), a na 15 maja jest deadline wersji stabilnej kompilatora. @spartanPAGE jak się w końcu zbiorę to może coś na mikro naskrobię o tym.
Profesjonalnie
- nie mówię tu o wykonaniu, a o użyciu; Rust jest jako tako świeżynką, ale chętnie rzucę okiem na cokolwiek poważniejszego w tymże języku ;)rustfmt
, ale praca w toku (jedyny problem to, żelibsyntax
jest cały czas unstable, a to by znacznie pomogło z narzędziami).