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

VPS Starter Arubacloud
+2 głosów
1,321 wizyt
pytanie zadane 22 czerwca 2019 w Inne języki przez Walczyk Nowicjusz (180 p.)
zmienione kategorie 22 czerwca 2019 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 2019 przez mokrowski Mędrzec (156,260 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 2019 przez reaktywny Nałogowiec (42,200 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 2019 przez mokrowski Mędrzec (156,260 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 2019 przez Comandeer Guru (604,880 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 2019 przez Walczyk Nowicjusz (180 p.)
Raczej nie chodzi mi o gry przeglądarkowe.
2
komentarz 22 czerwca 2019 przez Comandeer Guru (604,880 p.)
Mnie też nie
komentarz 23 czerwca 2019 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 2019 przez Comandeer Guru (604,880 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 2019 przez Walczyk Nowicjusz (180 p.)
Fajna sprawa
2
komentarz 23 czerwca 2019 przez adrian17 Ekspert (349,740 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 2019 przez Comandeer Guru (604,880 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 2019 przez Secrus Nałogowiec (32,880 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 2019 przez Walczyk Nowicjusz (180 p.)
A dlaczego polecasz najpierw zająć się C# a nie od razu C++?
1
komentarz 23 czerwca 2019 przez Secrus Nałogowiec (32,880 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 2019 przez marcin99b Szeryf (82,960 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 2019 przez tkz Nałogowiec (42,020 p.)
Przejście z pythona, na C będzie troszku wymagające...
1
komentarz 22 czerwca 2019 przez Eryk Andrzejewski Mędrzec (164,260 p.)

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

1
komentarz 22 czerwca 2019 przez miro Pasjonat (23,870 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 2019 przez marcin99b Szeryf (82,960 p.)
edycja 22 czerwca 2019 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 2019 przez tkz Nałogowiec (42,020 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 2019 przez miro Pasjonat (23,870 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 2019 przez reaktywny Nałogowiec (42,200 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 2019 przez DragonCoder Nałogowiec (36,500 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 2019 przez reaktywny Nałogowiec (42,200 p.)
edycja 22 czerwca 2019 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 2019 przez Tomek Sochacki Ekspert (227,490 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 2019 przez reaktywny Nałogowiec (42,200 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 2019 przez Tomek Sochacki Ekspert (227,490 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 2019 przez reaktywny Nałogowiec (42,200 p.)
Dzięki za komentarz!
2
komentarz 23 czerwca 2019 przez jpacanowski VIP (101,940 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 2019 przez Tomek Sochacki Ekspert (227,490 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 2019 przez marta.zawisla Początkujący (260 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 2019 przez MegaaSoft Obywatel (1,430 p.)
c/c++/c# i w ogóle jakiś z serii c

jest dosyć zoptymalizowany
0 głosów
odpowiedź 23 czerwca 2019 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 2019 przez jpacanowski VIP (101,940 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 2019 przez adrian17 Ekspert (349,740 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 2019 przez reaktywny Nałogowiec (42,200 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 1,925 wizyt
–1 głos
3 odpowiedzi 680 wizyt
pytanie zadane 20 sierpnia 2018 w PHP przez Ubermade Bywalec (2,020 p.)
0 głosów
2 odpowiedzi 1,959 wizyt

93,009 zapytań

141,976 odpowiedzi

321,257 komentarzy

62,351 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...