Najlepszy język do gamedev?

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.

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

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.

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?

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

0

Czyli zabrać się za C#, czy nadal uczyć się 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.

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

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 :|?

0

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

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.

0
xmisi3g napisał(a):

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

Zadzwoń do wróżki.

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.

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,

1 użytkowników online, w tym zalogowanych: 0, gości: 1