Ruby , a gry

Obecnie piszę w C++ ze względu na pisanie gier. Ostatnio spróbowałem swoich sił w Rubim. Ten język tak bardzo mi się spodobał, że chciałbym spróbować napisać grę w Rubim. Słyszałem o SDL. I tu pytanie: Czy gry napisane w Rubim będą wolniejsze itp. niż te w C++?

w rubym gry bedą wolniejsze bo c++ jest językiem kompilowanym

Generalnie tak. Jest jednak mnóstwo gier, które spokojnie można napisać w rubym i będą śmigać. Możesz zerknąć na bibliotekę gosu: http://www.libgosu.org/. Jakiego typu gry pisałeś do tej pory w c++?

Proste “platformówki” jednolevelowe w sensie:
-Jakiś wróg/wrogowie
-odtwarzanie animacji
-i inne proste rzeczy

Chodzi mi oczywiście o proste rzeczy.
PS
Korzystałem wtedy z SFML.
EDIT:
Właśnie czytam o tej bibliotece, którą podałeś.
EDIT 2:
Próbowałem zainstalować gosu na próbę. Napewno działa z najnowszą wersją Rubiego? Ponieważ coś mi ne odpala.

Na pewno będą wolniejsze oraz będziesz musiał dostarczać z grą środowisko uruchomieniowe (interpreter z kompletem potrzebnych bibliotek). Generalnie nie warto.

Jeśli chcesz przyjemniej niż w C++ pisać gry, daj szansę jednemu z kompilowanych ale bardziej cywilizowanych języków jak D czy Rust.

Prędkość to jedna kwestia, nie ma wątpliwości, że w ruby nie da się napisać dobrze kolejnego Modern Warfare, ale jeśli chcesz pisać proste platformówki dla własnej rozrywki, to ruby + gosu totalnie da radę. Ruby pozwoli ci szybko testować różne idee, podejścia, jeśli chodzi o organizację kodu i logiki. Przepisanie kodu o ustabilizowanej i sprawdzonej architekturze z ruby do c++ może być prostsze niż pisanie tego w c++ od samego początku.

W takim razie uważam, że spokojnie możesz spróbować rubiego.

Jakiego systemu używasz? Bawiłem się niedawno libgosu z najnowsza wersję rubiego i działało bez zarzutu (system OSX).

Ja proponuję skorzystać z http://libgdx.badlogicgames.com/. Korzysta z javy i opengl no i jest multiplatformowy. Na upartego jako że jest to java można skorzystać z jruby.

Skoro znasz C++ to może wypróbuj Unreal Engine. Podstawową grę zrobisz tam nie dotykając klas C++, jednak zawsze możesz zrobić swoje rozszerzenie. Jeżeli jesteś studentem to możesz mieć dostęp za darmo w ramach https://education.github.com/pack.

Myślę, że warto zerknąć też na Swift i cały toolbox jaki daje nowy osx/ios. Myślę, że będzie coraz większe zapotrzebowanie na programistów Swifta. Sam język i nowy xcode na pierwszy rzut oka też wydaje się przyjemny (np. Playground).

Na ogół używam Windowsa, ale mam dostęp do Linuxa. Niestety do OSX nie mam.

Kolega pyta o programowanie gier w rubym, a padły tu już propozycje języków rust, D, java, swift. Nie róbmy koledze mętliku w głowie. Specjalnie zapytałem o rodzaj gier i jak wnioskuję z odpowiedzi, kolega tworzy amatorskie gry (i nie piszę tego negatywnie bo sam takie amatorskie gry od czasu do czasu tworzę :)).

W takim razie jaki masz błąd i czy próbowałeś pod oboma systemami?

1 Like

Przynajmniej myśle, że wszystko napisałem w kodzie dobrze.
Kod na próbę skopiowałem z: https://github.com/jlnr/gosu/wiki/Getting-Started-on-Windows

Pod Linuxem jeszcze nie próbowałem, ale spróbuje dopiero jutro/2-3 dni.

Niestety pod windowsem ruby jest słabo wspierany. Masz do wyboru: albo spróbować działać na linuksie, albo zostaje mailowanie z autorem biblioteki. Widzę, że są pozgłaszane błędy związane z windowsem 64 bit: https://github.com/jlnr/gosu/issues/163. Z kolei w https://github.com/jlnr/gosu/issues/248 autor napisał “Gosu does not support 64-bit Ruby on Windows but that’s probably only a matter of me precompiling it with RubyInstaller’s 64-bit Ruby 2.0.0 :)” Możesz więc pytać śmiało go o to kiedy wypuści nowy release.

Dzięki, a nie ma innych bibliotek, w których można byłoby pisać gierki dla Rubiego? Może przeglądarkowe?

Spróbuj tą : http://rubygame.org/

Wszystko fajnie, ale to chyba nie jest już rozwijana biblioteka.

Tutaj masz jeszcze trochę bibliotek: https://www.ruby-toolbox.com/categories/game_libraries

Programowanie pod Windowsem to katorga (no chyba, że w .net). Najwygodniej będzie Ci zainstalować wirtualną maszynę z Linuksem.

To chyba dobrze o nas świadczy, że nie jesteśmy fanatykami którzy umiejąc operować młotkiem każdy problem widzą jako gwóźdź :wink: Ruby do pisania gier jest po prostu kiepski, tyle. Jeśli kolega chce użyć języka wysokopoziomowego o szerszym wsparciu, Python będzie lepszym pomysłem.

A dla mnie kiepskie to jest takie podejście. Pisanie gier to bardzo szeroka dziedzina. Od prostego “zgadnij jaką mam na myśli liczbę” po gry AAA tworzone przez zespoły kilkuset osobowe z budżetem idących w dziesiątkach milionów. Nie widzę problemu by ktoś kto zaczyna z pisaniem prostych gier robił to właśnie w ruby. Jeśli kiedykolwiek napisałeś jakąś grę to wiesz, że pisząc je rozwiązuje się mnóstwo różnych (często algorytmicznych) problemów. Dobrze jest na etapie nauki skupić się na sednie tych problemów niż zastanawiać się dlaczego mój program segfaultuje.

A python to z jakiego powodu miałby być lepszy niz ruby?