Nie mam preferencji w stosunku do Ruby (lub Python), sam jestem osobą Java. Ale frustracja mnie wywołała odpowiedź UnknownDevice o tym, jak Ruby jest „nie do gier”, a Python. Mam nadzieję, że to wyjaśni.
Wiem, że Pygame istnieje i istnieje, i zdaję sobie sprawę, że Python ma większą bazę użytkowników niż Ruby. Ale szczerze mówiąc, żadne z nich nie wydaje się językiem „do gier”. Podobnie jak Java, i to jest mój wybrany język programowania gier. (a kiedy mówię „z wyboru”, mam na myśli wybór , nie dlatego, że uczy się tego w szkole, albo dlatego, że „coś wiem”). A tak naprawdę, czym jest język „do gier”? Szybkość jest czynnikiem, i oczywiście musi mieć biblioteki dla grafiki i innych systemów gier (audio, wejścia itp.).
Jeśli chodzi o prędkość, wydaje się, że jest to sprzeczka między Ruby a Pythonem. Wykonaj kilka wyszukiwań, a szybko znajdziesz punkty odniesienia i argumenty dla obu stron spektrum oraz różne konfiguracje, które stawiają jedną lub drugą przed sobą. Python z czymś zwanym „Psycho” wydaje się być popularnym demonem prędkości w porównaniu do Ruby, ale zwykły Python wydaje się być nieco wolniejszy niż Ruby. W końcu, jeśli wybierzesz język wysokiego poziomu, oczywiście i tak nie interesujesz się natywnymi prędkościami; idź w języku, który znasz najlepiej. I oczywiście znasz Ruby najlepiej, więc zachęcam!
Innym czynnikiem jest to, czy technologia służy do tworzenia gier; czy może obsługiwać rysowanie na ekranie oraz zbieranie danych wejściowych i odtwarzanie dźwięku. Ruby może to wszystko zrobić. W rzeczywistości istnieje wiele opcji w tym zakresie. Na RubyForge znajduje się pakiet ruby-opengl , który zapewni obsługę Ruby w OpenGL (czy może być domyślnie dołączony?). Alternatywnie, Chingu zapewnia „błyskawiczną grafikę 2D z akceleracją OpenGL!” zgodnie z jego stroną główną; buduje dodatkowe funkcje na Gosu , których możesz użyć, jeśli Chingu jest dla ciebie za dużo. Lub grafiki 3D, jeśli nie chcesz używać ruby-opengl, wypróbuj G3DRuby , „bardzo czysty zestaw klas opakowań dla wielu bardziej zaawansowanych funkcji OpenGL”. Tam'Rubygame , o której nie mogę znaleźć wielu informacji, ale twierdzi, że jest „wieloplatformową biblioteką multimedialną” i biorąc pod uwagę nazwę, musi kłaść nacisk na tworzenie gier. Jeśli znasz popularną bibliotekę SDL dla C ++, istnieje Ruby / SDL lub RUDL , z których oba są opakowaniami Ruby w SDL. Lub jeśli wolisz nowszy, bardziej obiektowy SFML , jest on również dostępny dla Ruby!
Nie ma powodu, dla którego Ruby powinna być mniej językiem programowania gier niż Python; jeśli jest taki, naprawdę chciałbym go usłyszeć, abym mógł się z nim kłócić. Jeśli czujesz się najwygodniej w programowaniu w Ruby i znasz zalety i wady w porównaniu do innych popularnych języków, to z pewnością możesz rozwijać gry w Ruby!
http://gafferongames.com/2009/01/11/ruby-is-not-at-all-suitable-for-game-development/
Adres URL jest prawdopodobnie trochę spoilerem.
tl; dr: naiwny śmieciarz to prawdziwy problem.
źródło
Nie ma powodu, dla którego nie możesz. Tak długo, jak istnieje multimedialne wsparcie dla danego języka, to jest to materiał gamedev. Heck, duża część jednej z gier Rollercoaster Tycoon została wykonana ręcznie w ASM.
źródło
Chociaż nie jestem zaznajomiony z wieloma szczegółami dotyczącymi Ruby, Enterbrain stworzył programy do tworzenia gier RPG Maker VX i RPG Maker XP, które używają skryptów opartych na Ruby: http://www.rpgmakerweb.com/
To było właściwie moje pierwsze nurkowanie w tym języku. Jak większość ludzi powiedziała, prawdopodobnie nie uzyskasz wysokiej wydajności w innych językach, ale jeśli chcesz rozpocząć grę RPG 2D (lub inną grę 2D, naprawdę), jest to prawdopodobnie jeden z najbardziej wyrafinowanych edytorów gier Wsparcie.
źródło
Ruby to fajny język, ale tak naprawdę nie jest to uczciwe. Jeśli nie chcesz używać C ++, ale chcesz czegoś takiego jak Ruby, sprawdź Python. Dla dobrego frameworku Python powinieneś sprawdzić coś takiego jak www.cocos2d.org/.
źródło
To zależy od rodzaju gry, którą chcesz napisać. Użyłem ruby do pisania klientów AI w kilku grach, w tym w dyplomacji , pokerze i Lost Cities . Uważam, że jest to bardzo przyjazny język do szybkiego eksperymentowania z różnymi koncepcjami. Z drugiej strony nie chciałbym używać go do pisania mojej strzelanki w czasie rzeczywistym - po prostu nie będzie miał potrzebnej wydajności.
źródło
Twoje pytanie jest zbyt ogólne. Czy chcesz po prostu napisać grę komputerową jako projekt hobby, czy chcesz zająć się tworzeniem niezależnych / profesjonalnych gier? Czy będzie miał grafikę? Na jakich platformach ma działać?
Ogólnie rzecz biorąc, Ruby nadaje się do projektów hobbystycznych (BTW moją ulubioną grą Ruby jest Ruby Warrior ) oraz do tworzenia gier internetowych, takich jak Farmville. Jest nawet pewne zapotrzebowanie na takich programistów, spróbuj wyszukać w Google coś w stylu: „gra społecznościowa dla programistów ruby”.
Z drugiej strony, jeśli chcesz tworzyć gry komputerowe lub mobilne z grafiką, Ruby nie jest najlepszą opcją. Rozważać:
źródło
Nie spodziewaj się pisać z Ruby wysoce wydajnych, profesjonalnych, komercyjnych gier 3D, ale Ruby to świetny język do nauki koncepcji tworzenia gier.
Gosu to najpopularniejsza (i aktywnie utrzymywana) biblioteka do pisania gier 2D w Rubim. Ma podstawową bibliotekę C ++, której używa do poprawy wydajności i interakcji z bazowymi bibliotekami wyświetlania, takimi jak OpenGL.
Jeśli chodzi o wydajność, „domyślna” implementacja Ruby (MRI) będzie działać dobrze (sugeruję najnowszą wersję Ruby 2.0 dla najlepszej wydajności), ale istnieją alternatywne implementacje, które mają natywne wątki i alternatywne algorytmy zbierania śmieci, takie jak Rubinius, JRuby itp. Jeśli korzystasz z wątków, możesz wypróbować Rubinius, w przeciwnym razie MRI Ruby będzie działać dobrze.
źródło
Powiedziałem Python, ponieważ ma większą bazę użytkowników i większy wybór, jeśli chodzi o frameworki / biblioteki do tworzenia gier. To oczywiste, że ta osoba nie ma doświadczenia w tworzeniu gier, więc nie ma dla mnie sensu zalecanie używania czegoś takiego jak Ruby tylko dlatego, że jest to możliwe.
Kiedy pracuję nad grami, używam C ++ z Luą, nie zaczynam pisać swojej gry w języku Visual Basic tylko dlatego, że ma obsługę multimediów. Jestem pewien, że wszyscy tutaj słyszeli, że ktoś powiedział pewne narzędzia do określonych zadań. Jestem pewien, że możesz wbić gwóźdź butem, ale dlaczego miałbyś to zrobić, skoro możesz użyć młotka.
źródło