• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jaki język powinienem wybrać z myślą o pisaniu gier w przyszłości?

+2 głosów
424 wizyt
pytanie zadane 22 czerwca w Inne języki przez Walczyk Nowicjusz (180 p.)
zmienione kategorie 22 czerwca przez Comandeer
Hej

Jestem właśnie przy wyborze swojego pierwszego języka programowania na poważnie.

Jaki język powinienem wybrać z myślą o pisaniu gier w przyszłości?

Świetnie byłoby gdybyście napisali też dlaczego to ma być właśnie ten język.

9 odpowiedzi

+3 głosów
odpowiedź 22 czerwca przez mokrowski VIP (112,660 p.)
Na dziś, C/C++. świat nie kończy się na PC i "frameworkach". Jak celem będzie napisanie gry na konsolę, to w grę będzie wchodził Vulcan, OpenGL, obliczenia na karcie. Bardziej wymagające gry wymagają sięgania do sprzętu bez pośrednictwa warstw ułatwiaczy. Ale to docelowo..

Na początek Python i jakieś PyGame :)
1
komentarz 22 czerwca przez reaktywny Mądrala (7,010 p.)
No to w tym wątku python wygrywa :) Oprócz PyGame o którym słyszeli chyba wszyscy, jest parę innych rozwiązań. Dość ciekawe jest SDK Panda3D - https://www.panda3d.org/
1
komentarz 22 czerwca przez mokrowski VIP (112,660 p.)
Wygrywa bo jest dla ludzi którym nie zaszkodzi (na początku) brak rozróżniania kontenerów i typów. Później (może) zrozumieją po co te elementy są... A jak nie zrozumieją, także nie szkodzi bo do pewnych zastosowań Python się nie nadaje.
+2 głosów
odpowiedź 22 czerwca przez Comandeer Mentor (465,040 p.)
Rzeknę tak: dowolny, który da się przemielić do Web Assembly. Dzięki temu będziesz w stanie odpalić swoją grę absolutnie w każdej przeglądarce, a zatem – będzie multiplatformowa od razu na start.
komentarz 22 czerwca przez Walczyk Nowicjusz (180 p.)
Raczej nie chodzi mi o gry przeglądarkowe.
2
komentarz 22 czerwca przez Comandeer Mentor (465,040 p.)
Mnie też nie
komentarz 23 czerwca przez Walczyk Nowicjusz (180 p.)
To C++ jest takim językiem, to oznacza, że jakbym napisał grę na Windowsa w C++ to można to "przemielić" do Web Assembly i uruchomić grę przez przeglądarkę?
1
komentarz 23 czerwca przez Comandeer Mentor (465,040 p.)
W teorii tak i głównie po to powstało web assembly: żeby móc portować aplikacje napisane w "normalnych" językach do przeglądarki. Udało się nawet (i to dość dawno temu) odpalić w taki sposób unreal engine.

Obecnie największym problemem jest pewien spadek wydajności przy konwersji do web assembly, ale to wciąż młoda technologia i myślę, że w przyszłości będzie stanowić alternatywę do tworzenia wielu wersji danej aplikacji na różne platformy.
komentarz 23 czerwca przez Walczyk Nowicjusz (180 p.)
Fajna sprawa
2
komentarz 23 czerwca przez adrian17 Ekspert (203,560 p.)
Zaznaczę tylko że to jest obecnie bardzo długoterminowy i "futurystyczny" punkt widzenia; możliwe że tak właśnie będzie, ale również jest możliwe że za 5-10 lat nikt w branży gier nie będzie będzie do tego na poważnie podchodził. (Słyszałem że Unity zaczęło wspierać wasm, ale nie słyszałem jeszcze by to było już przez kogoś "na produkcji" używane.)
2
komentarz 23 czerwca przez Comandeer Mentor (465,040 p.)

Na razie Google chyba ma najwięcej wasmowych rzeczy na produkcji (Squoosh choćby), a i wiem, że jest już port np. ffmpeg do wasma (co brzmi jak dobry moment, żeby poeksperymentować z edytorem filmów bezpośrednio w przeglądarce).

Co do gier i wasma: z portowaniem całych produkcji może być problem obecnie, ze względu na ich wielkość i koszt/moc łączy. Ale rozwiązania hybrydowe, typu część gry streamowana (Google Stadia!), część wasmowa – why not, why not… No ale powiedzmy sobie otwarcie: ja jestem fanatykiem Sieci jako uniwersalnej platformy ;)

+1 głos
odpowiedź 22 czerwca przez Secrus Nałogowiec (32,340 p.)
Jeśli nigdy nie programowałeś to Python, żeby poznać podstawy programowania. W innym wypadku, wybierz C#, poznaj Unity, a docelowo przejdź do C++, który jest głównym językiem do tworzenia gier obecnie. Jest on bardzo wydajny i pozwala na użycie każdego dostępnego zasobu, bez dodatkowego narzutu w postaci środowiska uruchomieniowego czy maszyny wirtualnej
komentarz 23 czerwca przez Walczyk Nowicjusz (180 p.)
A dlaczego polecasz najpierw zająć się C# a nie od razu C++?
1
komentarz 23 czerwca przez Secrus Nałogowiec (32,340 p.)
C# jest stosunkowo prostszy od C++, nie ma wskaźników, które potrafią mocno mieszać, a pozwala na zapoznanie się z mechanizmami obiektowości itp. Poza tym, C# oferuje bardzo dużo "out of the box", dzięki platformie .NET, w C++ jest z wieloma rzeczami nieco trudniej
+1 głos
odpowiedź 22 czerwca przez marcin99b Maniak (64,470 p.)
Obecnie języki które są topowe na rynku są do siebie tak podobne, że przejście z jednego na drugi nie jest żadnym problemem

Wiele osób przywiązuje do ich wyboru jakąś wielką wagę... a przejście na inny, kiedy tamten okazuje sie lepszy do naszych rozwiązań, jest często tylko formalnością

To troche tak jak w... załóżmy w montażu filmów, czy przejście z sony vegas na np adobe premiere będzie trudne?
Na pewno pewne elementy będą inne
Ale wiedza z jednego, usuwa ci masę nauki w przypadku drugiego

Liczy sie to jak myślisz, a nie jakiego narzędzia używasz

 

 

A co do tworzenia gier
Porozglądaj się bardziej za silnikami, który do czego służy i jak to pasuje do typu gier, który cie interesuje
Np czy chciałbyś tworzyć małe zręcznościowe, duże rpg, fps czy inne

Sprawdź do którego języka jest dużo poradników, w kontekście tego silnika
I się ucz

(silnik to też narzędzie, ale wybór powinien być prostszy, bo jest ich mniej niż języków)
1
komentarz 22 czerwca przez tkz Dyskutant (8,640 p.)
Przejście z pythona, na C będzie troszku wymagające...
1
komentarz 22 czerwca przez Eryk Andrzejewski Mędrzec (159,400 p.)

Bardziej wymagające, niż nauka C od zera? cheeky

1
komentarz 22 czerwca przez miro Pasjonat (21,230 p.)

@marcin99b, Ja się trochę nie mogę zgodzić z tym, że język jest bez znaczenia. Oczywiście podstawy się nie zmieniają jednak im dalej w las tym te przejście jest bardziej bolesne. 

Jak ktoś pracował zawodowo z Photoshopem to przejście na inny edytor obniży znacznie jego produktywność przez jakiś czas. 

Nie lepiej od razu zacząć od narzędzi z których branża używa? Po co sobie utrudniać życie i tracić ewentualny czas na przejścia?

1
komentarz 22 czerwca przez marcin99b Maniak (64,470 p.)
edycja 22 czerwca przez marcin99b

Nie powiedziałem że jest bez znaczenia 

Wspomniałem że 

przejście na inny, kiedy tamten okazuje sie lepszy do naszych rozwiązań, jest często tylko formalnością 

Każdy język jest dobry do konkretnych rzeczy 
Ale to nie oznacza, że programowanie w nich jest kompletnie różne => przez co zaczynanie z nowym językiem często wygląda tak, że sprawdzamy jak zapisać w nim element który już znamy 

Przykładowo nie musimy drugi raz uczyć się jak działają typy generyczne, tylko uczymy się jak to zapisać w innym języku 
Nie musimy uczyć się drugi raz czym są reflekcje, tylko sprawdzamy jak zapisać je w innym języku 

A wiele osób początkujących podchodzi do wyboru języka tak, jakby nauka kolejnego była nauką od kompletnych podstaw 

Pewnie przez skojarzenia z językami ludzkimi, gdzie co prawda z czasem wyrabiamy sobie schematy, przez które uczymy się szybciej, ale jednak

nauczenie się polskiego, żeby przejść na chiński, po czym ogarnąć szwedzki

jest nie do porównania z

nauczeniem się c#, żeby przejść na javascript, a później c++
gdzie po otwarciu edytora i chwili patrzenia na dokumentacje, jesteśmy w stanie napisać coś co działa tak jak chcemy 

 

=======

wyjątkiem mogą być tutaj języki typowo funkcyjne, chociaż z biegiem czasu będzie to coraz mniejszy problem, bo od dłuższego czasu wiele języków, dodaje do siebie coraz więcej elementów z języków funkcyjnych 

1
komentarz 22 czerwca przez tkz Dyskutant (8,640 p.)

@Eryk Andrzejewski, nauka nauce, nierówna, powiedzmy, że przyzwyczajenia z pythona mogą być na początku trochę denerwujące. 

marcin99b

nauczeniem się c#, żeby przejść na javascript, a później c++ 
gdzie po otwarciu edytora i chwili patrzenia na dokumentacje, jesteśmy w stanie napisać coś co działa tak jak chcemy

już się tak nie zapędzaj...

1
komentarz 23 czerwca przez miro Pasjonat (21,230 p.)
Bardzo dobrze, że dałeś przykład nauki języków obcych. Ja uważam, że one jak i języki programowania można i powinno się porównywać bo jest dużo stycznych.

Mamy rodziny językowe, gdzie przejście w obrębie ich jest mniej problematyczne ponieważ masz podobne wyrazy. Języki zazwyczaj składają się z tych samych rzeczy (czasy, czasowniki, przymiotniki, podmioty itp.).  Uczenie się 20-stego języka będzie prostsze ponieważ masz doświadczenie z tych 19 poprzednich. Jedynie języki programowania są bardziej "formalne" i słabo rozbudowane.

Marcinie, ja rozumiem co chciałeś przekazać swoją wypowiedzią. Ja się tylko pytam po co uczyć się czeskiego jak wybierasz się do Brazylii? Po co uczyć się syntaxu jednego języka jak możliwe, że lepiej jakbyś lepiej poznał drugi język?

Fajnie poznać jakiś język typowo funkcyjny jak się uczy jakiś obiektowy, aby widzieć inne podejście w pisaniu kodu. Wydaje mi się, że jednak to nie jest ważna rada dla początkujących.
+1 głos
odpowiedź 22 czerwca przez reaktywny Mądrala (7,010 p.)
W game dev, chyba najwięcej dzieje się w C++. Sporo też w Java i C# (głównie z Unity), mniej w JS, PHP,....

Na start, jednak uderzyłbym w Pythona (masz PyGame i inne, oraz dobre współpracę z Blenderem). Jak się zapoznasz dobrze z Pythonem, to już później sam będziesz wiedział co wybrać następnego.
1
komentarz 22 czerwca przez DragonCoder Pasjonat (22,190 p.)
Tak i nie, na rynku glownie C++/C# bo wspieraja je najwieksze silniko do gier. I C++ uzywa się tez przy pisaniu silnikow. C++ ma SFML/OpenGL, wiec PyGame nie jest tez jakims super plusem w tym przypadku. W czym sie zgodze, to ze lacznir sie z serwerami i bazami w pythonie jest duzo latwiejsze i przyjrmniejsze, ale warto dodac, ze mozna polaczyc ze soba pythona i C++. No i wazne sa tez jezyki jak LUA, ktore sa uzywane miedzy innymi do tworzenia questow w grach.
2
komentarz 22 czerwca przez reaktywny Mądrala (7,010 p.)
edycja 22 czerwca przez reaktywny
Masz rację, ale kolegi pytanie było typu "jak/w czym zacząć?"...  Jak zacznie od poważnego języka to szybko może się zniechęcić :)

A w Pythonie oprócz PyGame jest Panda3D oraz znakomite Kivy (jeden kod i masz grę na wiele platform, wliczajac nawet IOS i MacOS). Podobno można w Pythonie działać z Unreal Engine 4 - przykład: https://www.youtube.com/watch?v=7y25kDWIba4

Więc można zacząć w pythonie, a później w miarę gładko przeskoczyć do świata C++.

Nie znam dokładnych statystyk, ale te super-hiper produkcje to zwykle powstawały ponoć w silniku Unreal.
+1 głos
odpowiedź 22 czerwca przez Tomek Sochacki Mędrzec (190,720 p.)
A ja powiem może nie do końca na temat, ale zaproponuję rozpoczęcie od Javy. A dlaczego? A no dlatego, że uwierz mi, nie wiesz jeszcze teraz czy na pewno chcesz iść w gamedev w przyszłości. To wbrew pozorom ciężki kawałek chleba.

A Java otworzy Ci szerokie spektrum możliwości - od apek desktopowych, przez webowe (back-end) po apki mobilne. Popróbuj sobie na przykład wszystkiego po troszku i sam zobaczysz. Powiem Ci, że ja jeszcze do niedawna byłem fanem głównie JS i apek webowych, ale jakiś czas temu przyszło mi trochę pracować w apkach mobilnych i była dyskusja - react native i zostajemy przy JS czy może Java/Kotlin i idziemy w tę stronę... wybrałem Kotlina i Android SDK i powiem Ci, że jestem bardzo zadowolony.

Z Javą i trochę Kotlinem miałem do czynienia w API (Spring) ale apki mobilne to zupełnie inne wyzwania, inne problemy itp. A w przyszłości migracje między językami nie są żadnym problemem.
1
komentarz 22 czerwca przez reaktywny Mądrala (7,010 p.)
Java jest uniwerslana, ale C# i Python oraz JS - też, w kazdym z tych czterech zrobisz aplikacje mobile, web i desktop. Python dorzuca do tego jeszcze machine learning / data science, itp. (z kolei z mobile w pythonie jest nieco gorzej niż w pozostałých). Wybór nie jest prosty.

 

Jak Ci się działa w Kotlin + Spring?
2
komentarz 22 czerwca przez Tomek Sochacki Mędrzec (190,720 p.)

Jak Ci się działa w Kotlin + Spring?

całkiem spoko, choć przyznam, że gdy dłużej posiedzę w JS to potem nie mogę przywyknąć do braku ternary operator w Kotlinie... ale to pierdoły, z takich największych minusów dla Kotlina to mogę podać brak zasięgu pakietowego... przy bardziej złożonych mikroserwisach przydałoby się to aby ładnie powydzielać sobie klasy do pakietów ale udostępniać tylko konkretne elementy, a nie wsio.. ale to w sumie kwestia pewnej dyscypliny i nie stanowi tak wielkiego problemu.

Na Androida też robię głównie w Kotlinie, aczkolwiek mam też apki, gdzie większość jest w Javie i dopiero zacynają się tak naprawdę prace nad wyniesieniem na Kotlina... tu plusem jest możliwość współistnienia javy i kotlina.

Aczkolwiek kotlin ma też pewne swoje niuanse podczas pisania testów... chociaż może to wynika z faktu, że raczej testy to u mnie groovy i spock, może trzeba by się przesiąść na "bardziej kotlinowe" rozwiązania... 

1
komentarz 22 czerwca przez reaktywny Mądrala (7,010 p.)
Dzięki za komentarz!
2
komentarz 23 czerwca przez jpacanowski VIP (101,660 p.)

Java jest uniwerslana, ale C# i Python oraz JS - też, w kazdym z tych czterech zrobisz aplikacje mobile, web i desktop. Python dorzuca do tego jeszcze machine learning / data science,

PHP też jest uniwersalny... można w nim pisać również aplikacje okienkowe, czy bawić się w ML...

https://github.com/php-ai/php-ml

http://gtk.php.net/

a już niedługo czeka nas PHP 8.0 + JIT... to będzie dopiero zabawa...

komentarz 23 czerwca przez Tomek Sochacki Mędrzec (190,720 p.)
a moze by tak dla fanu napisac apke desktopowa w php, mobilna w pythonie a webowa w c++ z webassembly :)
+1 głos
odpowiedź 23 czerwca przez marta.zawisla Nowicjusz (220 p.)
Miesiąc temu stałam właśnie przed wyborem pomiędzy c++ a c# w celu pisania gier.

Mój wybór padł na c++ i Unreal Engine. Do tej pory uczyłam się sama, ale lepiej jest gdy ma się kogoś kto ci pokaże co i jak albo chociaż kurs, a tych jest do UE znacznie mniej niż do Unity.
+1 głos
odpowiedź 23 czerwca przez MegaaSoft Obywatel (1,420 p.)
c/c++/c# i w ogóle jakiś z serii c

jest dosyć zoptymalizowany
0 głosów
odpowiedź 23 czerwca przez Walczyk Nowicjusz (180 p.)
Przepraszam was wszystkich bo mogłem trochę rozwinąć to pytanie.

Przed jego zadaniem myślałem tylko czy najpierw C++ czy C# bo docelowo te dwa języki będzie trzeba opanować.

W większości pojawił się C++  a więc to go bym wybrał, piszecie też o Pythonie aby poznać podstawy, tylko czy to ma sens jeśli wcześniej pisałem w PHP i przerobiłem kilka kursów teoretycznych C++, C#, czy proponujecie Pythona tylko dlatego, iż nie wspomniałem, że miałem styczność z programowaniem, i uważacie że to pozwoli nowemu poznać ten świat, czy Python tak bardzo jest skierowany na gamedev?
1
komentarz 23 czerwca przez jpacanowski VIP (101,660 p.)

Ludzie na siłę na gwałt hypują tego Pythona, ale ten język to nieporozumienie dla mnie. Ale to tylko moja opinia. Najlepsze jak ludzie polecają Pythona w kontekście, "bo ML"... śmiechu warte... gdyby nie ML, to ten język by dawno padł. W Machine Learning możesz się nawet pobawić w PHP https://github.com/php-ai/php-ml

Co do PHP...
https://forum.pasja-informatyki.pl/436484/jaki-jezyk-powinienem-wybrac-z-mysla-o-pisaniu-gier-w-przyszlosci?show=436643#c436643

Ok, język jak każdy inny (w tym wypadku Python)... ale co on robi w tym wątku jako odpowiedzi, to ja nie wiem...

2
komentarz 23 czerwca przez adrian17 Ekspert (203,560 p.)

ale co on robi w tym wątku jako odpowiedzi, to ja nie wiem...

Faktem jest że Python jest używany w backendach kilku znanych gier online... ale poza tym (i VNkami) zgadzam się że faktycznie jest to raczej słaby wybór.

Natomiast cała reszta rantu o Pythonie i ML jest raczej nie na miejscu; osobiście chętnie bym się z nią posprzeczał, ale znowu - to nie jest na to miejsce.

2
komentarz 23 czerwca przez reaktywny Mądrala (7,010 p.)
Python jest polecany przez kilka osób (ja też go polecam), bo pytający jest osobą początkującą i pyta "co na start"... To że są lepsze języki do gamedev niż python to oczywista oczywistość.

A co do backendu, to python ma tu dość mocną pozycję, na Django, Pyramid i innych frameworkach powstały naprawdę duże strony.

Co do ML, pisałem w innym kontekście. Koledzy nie zrozumieli. Zresztą AI w nowych grach też jest dość często wykorzystywane.

Podobne pytania

0 głosów
4 odpowiedzi 406 wizyt
–1 głos
3 odpowiedzi 239 wizyt
pytanie zadane 20 sierpnia 2018 w PHP, Symfony, Zend przez Ubermade Obywatel (1,980 p.)
0 głosów
2 odpowiedzi 819 wizyt
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

67,091 zapytań

114,027 odpowiedzi

241,646 komentarzy

47,017 pasjonatów

Przeglądających: 98
Pasjonatów: 0 Gości: 98

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...