Jaki język programowania do gry komputerowej?


(Lord Nightmarek) #1

Witam, mam mały problem z wyborem języka programowania (C/C++/C# ?)do stworzenia gry (RPG) wykorzystującej modele Blendera, tekstury GIMP-a. Konkretnie chodzi o połączenie tych bibliotek w całość, aby kompilować tylko części logiczne gry, a nie pisać cały silnik gry. Oczywiście fizyka itp. pozostaną napisane własnoręcznie oprócz właśnie definicji funkcji animacji oraz renderowania. Do tej pory pracowałem w Sharp Develop. Proszę o odpowiedź z argumentami za i przeciw ( w miarę mozliwosci :slight_smile: )


(Sawyer47) #2

W tym języku, który znasz najlepiej i masz najwięcej doświadczenia - tym samym powinno Ci pójść szybciej. Jeśli wszystkie znasz porównywalnie dobrze to ja osobiście skłaniałbym się ku C++.


(Razi) #3

Jak Blender, to może Python i Blender Game Engine?

Osobiście to proponowałbym C++ i Javę. C++ do dużych gierek, który miałyby swoje wymagania co do CPU, a Java do mniejszych. Nie sugeruj się mitami o wolnej Javie, bo niemal na tych samych zasadach działa C#. A czemu nie C#? Bo pewnie byś używał najnowszych ficzerów niedziałających w Mono i takich aplikacji nie dałoby się nawet na Wine na Linuksie odpalić.

Co do silników, to zainteresuj się OGRE - dość solidny silnik graficzny. Z prostszych to np. Irrlicht. A z "elementarnych": SDL.

BTW. SDL został też sportowany na Androida, więc gierki napisany przy użyciu tej biblioteki da się skompilować i uruchomić na Andoidzie.


(Fiołek) #4

@up: Srsly, czy początkującego(bo takim niewątpliwie jest autor, jakby nie był to by nie pytał się o język) obchodzi obsługa Linuksa czy pochodnych(dodatkowo biorąc pod uwagę mały rynek nie-Windowsów)? C# jest wygodniejszy od Javy(subiektywne) i ma kilka ficzerów, których Javie brak(np. delegaty czy wyliczenia(które są, ale tylko w teorii)). Mono wspiera wszystkie wersje C#(http://www.mono-project.com/CSharp_Compiler), ma też dużą część .NET Fx 4(z którego większości przy grach i tak się nie korzysta). OpenTK(port OpenGL, OpenCL, OpenAL i jeszcze kilka rzeczy) działa na każdym systemie(.NET i Mono), SDL ma swój port, Ogre/Irrlicht też, Newton też, Box2D też(Farseer Physic).

Javę odrzuć - nie ma co się męczyć na początek. C#(bardzo przyjemny język) + XNA(czy jak wolisz SlimDX i Direct3D/Direct2D), bo jest bardzo przyjemne. C++ jeśli celujesz w wydajność(w co nie masz sensu, bo zanim ta gra się rozrośnie, to zaczniesz ją kilka razy od nowa :P).


(Ryan) #5

A może zamiast wynajdować koło na nowo, chwycić za istniejący silnik? Znajomość C# można łatwo wykorzystać w Unity 3D, ale oczywiście wspomniany wcześniej Blender Game Engine nie jest złym pomysłem. Najważniejsze jest nie to, czy lepszy czy gorszy język/silnik się wybierze, a czy ukończy się coś w sensownym czasie. Pierwszy projekt nie będzie powalający, choćby nie wiem jak zdolny autor był. Ale wiedza nabyta przy projekcie (ukończonym!) jest nie do przecenienia.


(pain3hp) #6

szkoda, że w PHP się nic nie wskóra konkretnego w grach a to z racji środowiska w jakim działa. Ja już wielokrotnie podchodziłem do tematu robienia gier jednak po kilku dniach rezygnowałem. Próbowałem coś z allegro C++ napisać ale nic z tego nie wyszło, to chyba przez słabe samozaparcie oraz brak wiary i poczucia sensu tworzenia tej gry. Ja z kolei uważam, że do robienia gier trzeba być dobrym z matematyki, geometrii a także fizyki. Język będzie tylko narzędziem. Wyobraźnia jest bardzo ważna. I jeszcze jedna rzecz, która powinna sprowadzić marzycieli o wielkich grach komputerowych - prawdziwe, największe gry tworzą zespoły ludzi ponad 100 osobowe zaczynając od scenarzystów, przez dźwiękowców, charakteryzatorów, kończąc na dziale IT- programistów. Do tego potrzeba dużego budżetu i wieloletniego doświadczenia, żmudnej pracy przy komputerze sporo godzin dziennie. Sprawa jest tak poważna, że jeżeli chcesz robić dobre gry musisz poświęcić temu spory kawałek swojego życia na czym ucierpią inne jego aspekty np. rodzina i życie w społeczeństwie...... Kurde, chyba trzeba być nerdem a to nie jest fajne :frowning:


(somekind) #7

Dlatego lepiej chyba na początku zrobić jakąś prostą grę, nie rzucać się na fabuły i grafikę, a zrobić dosłownie cokolwiek, byle tylko poćwiczyć programowanie i frameworki. Prosty projekt łatwiej skończyć, zobaczyć efekty swojej pracy i być z nich dumnym. Bo jak się zacznie grzebać w czymś dużym, to potem się odpadnie ze zniechęcenia, bo nie będzie widać efektów.