Ich habe keine Vorliebe für Ruby (oder Python), ich bin selbst eine Java-Person. Aber UnknownDevices Antwort, wie Ruby irgendwie "nicht wirklich für Spiele" und Python ist, hat mich frustriert. Ich hoffe, er wird klarstellen.
Ich weiß, dass Pygame existiert und existiert, und ich erkenne, dass Python eine größere Nutzerbasis als Ruby hat. Aber um ehrlich zu sein, scheint keine von beiden eine Sprache "für Spiele" zu sein. Java auch nicht, und das ist meine bevorzugte Programmiersprache. (und wenn ich "Wahl" sage, meine ich damit Wahl , nicht weil es das ist, was in der Schule gelehrt wird oder weil es etwas ist, was ich "weiß"). Und was ist eigentlich eine Sprache "für Spiele"? Nun, Geschwindigkeit ist ein Faktor, und natürlich muss es Bibliotheken für Grafiken und andere Spielsysteme (Audio, Eingabe usw.) geben.
Was die Geschwindigkeit anbelangt, scheint es sich um ein Chaos zwischen Ruby und Python zu handeln. Bei einigen Suchvorgängen finden Sie schnell Benchmarks und Argumente für beide Seiten des Spektrums sowie verschiedene Konfigurationen, die den einen oder anderen Vorsprung verleihen. Python mit dem Namen "Psycho" scheint im Vergleich zu Ruby ein beliebter Geschwindigkeitsdämon zu sein, aber reguläres Python scheint etwas langsamer zu sein als Ruby. Wenn Sie sich für eine solche Hochsprache entscheiden, interessiert Sie die native Geschwindigkeit letztendlich sowieso nicht. Gehen Sie mit der Sprache, die Sie am besten kennen. Und offensichtlich kennst du Ruby am besten, also ermutige ich ihn!
Der andere Faktor ist, ob die Technologie zum Erstellen von Spielen vorhanden ist. ob es das Zeichnen auf dem Bildschirm und das Sammeln von Eingaben und das Abspielen von Audio unterstützen kann. Ruby kann all dies. Tatsächlich gibt es in dieser Hinsicht eine Reihe von Optionen. Es gibt ein Ruby-Opengl- Paket bei RubyForge, das Ruby OpenGL-Unterstützung bietet (oder ist es möglicherweise standardmäßig enthalten?). Alternativ bietet Chingu "blitzschnelle OpenGL-beschleunigte 2D-Grafiken!" laut seiner Homepage; Es baut zusätzliche Funktionen auf Gosu auf , die Sie verwenden können, wenn Chingu zu viel für Sie ist. Oder für 3D-Grafiken, wenn Sie Ruby-OpenGL nicht verwenden möchten, versuchen Sie es mit G3DRuby , "einem sehr sauberen Satz von Wrapper-Klassen für viele der fortgeschritteneren OpenGL-Funktionen". Dort'Rubygame , zu dem ich nicht viele Informationen finden kann, der aber behauptet, eine "plattformübergreifende Multimediabibliothek" zu sein und den Namen zu tragen, muss den Schwerpunkt auf die Spieleentwicklung legen. Wenn Sie mit der beliebten SDL- Bibliothek für C ++ vertraut sind , gibt es Ruby / SDL oder RUDL , die beide Ruby-Wrapper von SDL sind. Wenn Sie das neuere, objektorientiertere SFML bevorzugen , ist es auch für Ruby verfügbar!
Es gibt keinen Grund, warum Ruby weniger eine Programmiersprache für Spiele sein sollte als Python. Wenn es einen gibt, würde ich ihn gerne hören, damit ich dagegen argumentieren kann. Wenn Sie sich beim Programmieren in Ruby am wohlsten fühlen und sich der Vor- und Nachteile im Vergleich zu anderen gängigen Sprachen bewusst sind, können Sie auf jeden Fall Spiele in Ruby entwickeln!
http://gafferongames.com/2009/01/11/ruby-is-not-at-all-suitable-for-game-development/
Die URL ist wahrscheinlich ein bisschen wie ein Spoiler.
tl; dr: der naive müllsammler ist ein echtes problem.
quelle
Es gibt keinen Grund, warum Sie nicht können. Solange es Multimedia-Unterstützung für eine Sprache gibt, ist es Spielev-Material. Heck, ein großer Teil eines der Rollercoaster Tycoon-Spiele wurde von Hand in ASM gemacht.
quelle
Enterbrain hat die Spieleentwicklungsprogramme RPG Maker VX und RPG Maker XP entwickelt, die auf Ruby basierende Skripte verwenden: http://www.rpgmakerweb.com/
Dies war eigentlich mein erster Tauchgang in die Sprache. Wie die meisten Leute sagten, werden Sie wahrscheinlich nicht die hohe Leistung anderer Sprachen erhalten, aber wenn Sie ein 2D-Rollenspiel (oder wirklich ein anderes 2D-Spiel) starten möchten, ist es wahrscheinlich einer der anspruchsvollsten Spieleditoren auf dem Markt Hilfe.
quelle
Ruby ist eine nette Sprache, aber um ehrlich zu sein, ist es nicht wirklich für Spiele. Wenn Sie C ++ nicht verwenden möchten, aber etwas wie Ruby möchten, schauen Sie sich Python an. Für ein gutes Python-Framework sollten Sie sich www.cocos2d.org/ ansehen.
quelle
Es hängt davon ab, welche Art von Spiel Sie schreiben möchten. Ich habe Ruby verwendet, um KI-Clients für verschiedene Spiele zu schreiben, darunter Diplomacy , Poker und Lost Cities . Ich finde, es ist eine sehr freundliche Sprache, um schnell mit verschiedenen Konzepten zu experimentieren. Andererseits möchte ich damit nicht meinen Echtzeit-Shooter schreiben - er hat einfach nicht die Leistung, die ich brauche.
quelle
Ihre Frage ist zu allgemein. Möchtest du einfach ein Computerspiel als Hobbyprojekt schreiben oder in die Entwicklung von Indie- / Profispielen einsteigen? Wird es Grafiken haben? Auf welchen Plattformen soll es laufen?
Im Allgemeinen eignet sich Ruby für Hobbyprojekte (übrigens Ruby Warrior ist mein Lieblingsspiel ) und für die Entwicklung von webbasierten Spielen wie Farmville. Es gibt sogar eine gewisse Nachfrage nach solchen Programmierern, die versuchen, so etwas wie "Ruby Programmer Social Game" zu googeln.
Auf der anderen Seite ist Ruby nicht die beste Option, wenn Sie Desktop- oder Mobile-basierte Spiele mit Grafiken entwickeln möchten. Erwägen:
quelle
Erwarten Sie nicht, mit Ruby hochleistungsfähige, professionelle, kommerzielle 3D-Spiele zu schreiben, aber Ruby ist eine großartige Sprache, um Spieleentwicklungskonzepte zu erlernen.
Gosu ist die beliebteste (und aktiv gewartete) Bibliothek zum Schreiben von 2D-Spielen in Ruby. Es verfügt über eine zugrunde liegende C ++ - Bibliothek, die verwendet wird, um die Leistung zu verbessern und mit den zugrunde liegenden Darstellungsbibliotheken wie OpenGL zu interagieren.
Was die Leistung betrifft, funktioniert die "Standard" -Ruby-Implementierung (MRI) einwandfrei (ich empfehle die neueste Version von Ruby 2.0, um die beste Leistung zu erzielen). Es gibt jedoch alternative Implementierungen mit systemeigenen Threads und alternativen Algorithmen zur Speicherbereinigung wie Rubinius, JRuby usw Wenn Sie Threads verwenden, sollten Sie Rubinius ausprobieren, andernfalls funktioniert MRT Ruby einwandfrei.
quelle
Ich sagte Python, weil es eine größere Nutzerbasis und mehr Auswahlmöglichkeiten hat, wenn es um Frameworks / Bibliotheken für die Spieleentwicklung geht. Es ist ziemlich offensichtlich, dass diese Person keine Erfahrung in der Spieleentwicklung hat. Daher ist es für mich nicht sinnvoll, die Verwendung von Ruby zu empfehlen, nur weil dies möglich ist.
Wenn ich an Spielen arbeite, die ich in C ++ mit Lua verwende, schreibe ich mein Spiel nicht in Visual Basic, nur weil es Medienunterstützung bietet. Ich bin sicher, jeder hier hat jemanden sagen hören, bestimmte Werkzeuge für bestimmte Jobs. Ich bin sicher, Sie können einen Nagel mit einem Schuh hämmern, aber warum sollten Sie das tun, wenn Sie einen Hammer verwenden können?
quelle