Najlepszy język do gamedev?

Najlepszy język do gamedev?
X3
  • Rejestracja:około 10 lat
  • Ostatnio:około 10 lat
  • Postów:53
0

Witam,

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.

KR
  • Rejestracja:prawie 16 lat
  • Ostatnio:6 miesięcy
  • Postów:2514
0

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").


░█░█░█░█░█░█░█░█░█░█░█░
edytowany 2x, ostatnio: krwq
spartanPAGE
  • Rejestracja:prawie 12 lat
  • Ostatnio:około miesiąc
0

Profesjonalnie prawie zawsze wygląda to tak:

  • Silnik napisany w C++ mała szansa na coś innego
  • Język skryptowy wykorzystujący api silnika.

Sierawno, koniec końców najczęściej używana okazuje się być lua, python i javascript.

Pewnym odchyleniem w tej sprawie jest Unity i Godot, który bazuje na języku pythonopodobnym.

hauleth
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
spartanPAGE
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 ;)
hauleth
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).
spartanPAGE
fakt; Jeszcze dać trochę czasu aż wykreują się porządne narzędzia i można używać;)
hauleth
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).
X3
  • Rejestracja:około 10 lat
  • Ostatnio:około 10 lat
  • Postów:53
0

A warto się uczyć C#, znając tylko podstawy C++? W ogóle, czy C# ma przyszłość?
I ja taki niewtajemniczony: czy da się pisać w C# na linuxie?

KR
Powoli nad tym pracujemy, tak samo na OSX: https://github.com/dotnet/corefx . Z tego co slysze zaczyna powoli dzialac.
spartanPAGE
  • Rejestracja:prawie 12 lat
  • Ostatnio:około miesiąc
0
xmisi3g napisał(a):

A warto się uczyć C#, znając tylko podstawy C++? W ogóle, czy C# ma przyszłość?
I ja taki niewtajemniczony: czy da się pisać w C# na linuxie?

  1. Jeden z najpopularniejszych i najprężniej rozwijających się języków; Kto wie...
  2. Da się, wraz z mono1

1- lub z oficjalnym .netem, który powolutku staje się opensource

X3
  • Rejestracja:około 10 lat
  • Ostatnio:około 10 lat
  • Postów:53
0

Czyli zabrać się za C#, czy nadal uczyć się C++?

spartanPAGE
  • Rejestracja:prawie 12 lat
  • Ostatnio:około miesiąc
0

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#.

Właściwie to ucz się scali.

edytowany 5x, ostatnio: spartanPAGE
Zobacz pozostałe 7 komentarzy
n0name_l
@spartanPAGE Ale polecanie jej początkującym to szaleństwo na miarę polecania im C++. :|
spartanPAGE
Cytując @Koziołek próg wejściowy scali jest podobny do progu wejściowego javy
spartanPAGE
@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++)
n0name_l
Moim zdaniem jak już liznął 2 języki to niech wybierze sobie któryś i nauczy się programować, na dziwactwa typu scala będzie miał jeszcze czas.
Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 6 godzin
1

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).


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
RE
Moderator
  • Rejestracja:około 18 lat
  • Ostatnio:około rok
0

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).

@spartanPAGE: gdzie ty z tą scalą w gamedevie :|?

edytowany 1x, ostatnio: Rev
spartanPAGE
@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ć.
RE
A czy jakakolwiek gra w Scali została kiedykolwiek wydana?
spartanPAGE
@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
X3
  • Rejestracja:około 10 lat
  • Ostatnio:około 10 lat
  • Postów:53
0

A w przyszłości znajomość C++ będzie potrzebna? Czy da się być dobrym programistą, bez znajomości C++?

Wizzie
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 7 lat
3

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.

Programmer98
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 9 lat
0
xmisi3g napisał(a):

A w przyszłości znajomość C++ będzie potrzebna?

Zadzwoń do wróżki.

matoung
  • Rejestracja:około 10 lat
  • Ostatnio:ponad 7 lat
  • Postów:53
0

Tego nikt nie wie. Ale im więcej nauczysz się teraz, kto wie... może okazać się to bardzo pomocne np: za 10 lat.

Wibowit
  • Rejestracja:prawie 20 lat
  • Ostatnio:około 6 godzin
1

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,


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
edytowany 1x, ostatnio: Wibowit
spartanPAGE
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
RE
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.
spartanPAGE
@Rev ciekawe, wręcz nadające się na mikrobloga ;)
hauleth
@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.
spartanPAGE
@winerfresh Będę czekał ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.