У меня нет никаких предпочтений по отношению к Ruby (или Python), я сам человек Java. Но ответ UnknownDevice о том, что Ruby почему-то «не совсем для игр» и Python, разочаровал меня. Я надеюсь, что он прояснит.
Я знаю, что Pygame существует и существует, и я понимаю, что Python имеет большую базу пользователей, чем Ruby. Но, честно говоря, ни один из них не кажется языком «для игр». Так же как и Java, и это мой любимый язык программирования игр. (и когда я говорю «по выбору», я имею в виду под выбором не потому, что это то, чему учат в школе, или потому, что это то, что я «знаю»). И действительно, что такое язык "для игр"? Ну, скорость является фактором, и, очевидно, она должна иметь библиотеки для графики и других игровых систем (аудио, ввод и т. Д.).
Что касается скорости, то между Ruby и Python, похоже, возникли трудности. Сделайте некоторые поиски, и вы быстро найдете критерии и аргументы для обеих сторон спектра, а также различные конфигурации, которые ставят одну или другую вперед. Python с чем-то под названием «Psycho» кажется популярным демоном скорости по сравнению с Ruby, но обычный Python, кажется, немного медленнее, чем Ruby. В конце концов, если вы выбираете такой высокоуровневый язык, вы, очевидно, не заботитесь о нативных скоростях; иди с языком, который ты знаешь лучше всего. И, очевидно, вы знаете Руби лучше всех, поэтому я поощряю это!
Другой фактор - есть ли технология для создания игр; может ли он поддерживать рисование на экране и сбора ввода и воспроизведения звука. Руби может сделать все это. На самом деле существует множество вариантов в этом отношении. В RubyForge есть пакет ruby-opengl , который предоставит поддержку OpenGL для Ruby (или он может быть включен по умолчанию?). Кроме того, Chingu обеспечивает «молниеносную ускоренную 2D-графику OpenGL!» в соответствии с его домашней страницей; он строит дополнительные функции поверх Gosu , которые вы можете использовать, если Chingu слишком много для вас. Или для 3D-графики, если вы не хотите использовать ruby-opengl, попробуйте G3DRuby , «очень чистый набор классов- оболочек для многих из более продвинутых функций OpenGL». Там'Rubygame , о которой я не могу найти много информации, но она претендует на звание «кроссплатформенной мультимедийной библиотеки» и, учитывая ее название, должна уделять особое внимание разработке игр. Если вы знакомы с популярной библиотекой SDL для C ++, есть Ruby / SDL или RUDL , оба из которых являются Ruby-обертками SDL. Или, если вы предпочитаете более новый, более объектно-ориентированный SFML , он также доступен для Ruby!
Нет причин, по которым Ruby должен быть языком программирования меньше, чем Python; если таковой имеется, я бы очень хотел услышать это, чтобы спорить с этим. Если вы чувствуете себя наиболее комфортно в программировании на Ruby и знаете о плюсах и минусах по сравнению с другими популярными языками, то вы непременно можете разрабатывать игры на Ruby!
http://gafferongames.com/2009/01/11/ruby-is-not-at-all-suitable-for-game-development/
URL, вероятно, немного спойлер.
tl; dr: наивный сборщик мусора - это реальная проблема.
источник
Там нет причин, почему вы не можете. Если есть поддержка мультимедиа для языка, то это материал для gamedev. Черт, большая часть одной из игр Rollercoaster Tycoon была сделана вручную в ASM.
источник
Хотя я не знаком со многими подробными работами, связанными с Ruby, Enterbrain создал программы для создания игр RPG Maker VX и RPG Maker XP, которые используют игровые сценарии на основе Ruby: http://www.rpgmakerweb.com/
Это было на самом деле мое первое погружение в язык. Как говорили большинство людей, вы, вероятно, не добьетесь высокой производительности других языков, но если вы хотите запустить 2D RPG (или другую 2D-игру, на самом деле), то это, вероятно, один из самых сложных игровых редакторов, чтобы Помогите.
источник
Ruby - хороший язык, но если честно, игры не совсем так. Если вы не хотите использовать C ++, но хотите что-то вроде Ruby, посмотрите Python. Для хорошей платформы Python вы должны проверить что-то вроде www.cocos2d.org/.
источник
Это зависит от того, какой тип игры вы заинтересованы в написании. Я использовал ruby для написания AI-клиентов для нескольких игр, включая Diplomacy , poker и Lost Cities . Я считаю, что это очень дружелюбный язык для быстрого эксперимента с различными концепциями. С другой стороны, я не хотел бы использовать его для написания своего шутера в реальном времени - он просто не будет иметь нужную мне производительность.
источник
Ваш вопрос слишком общий. Вы хотите просто написать какую-нибудь компьютерную игру в качестве хобби-проекта или хотите заняться инди / профессиональной разработкой игр? Будет ли это иметь графику? На каких платформах он должен работать?
В общем, Ruby подходит для хобби-проектов (кстати, моя любимая игра на Ruby Ruby Ruby Warrior ) и для разработки веб-игр, таких как Farmville. Есть даже определенный спрос на таких программистов, попробуйте гуглить что-то вроде: "ruby programmer social game".
С другой стороны, если вы хотите разрабатывать настольные или мобильные игры с графикой, Ruby - не лучший вариант. Рассмотреть возможность:
источник
Не думайте, что будете писать высокопроизводительные, профессиональные, коммерческие, 3D-игры на Ruby, но Ruby - отличный язык для изучения концепций разработки игр.
Gosu - самая популярная (и активно поддерживаемая) библиотека для написания 2D-игр на Ruby. Он имеет базовую библиотеку C ++, которую он использует для повышения производительности и взаимодействия с базовыми библиотеками визуализации отображения, такими как OpenGL.
Что касается производительности, то реализация Ruby по умолчанию (MRI) будет работать нормально (я рекомендую последний Ruby 2.0 для лучшей производительности), но есть альтернативные реализации, которые имеют собственные потоки и альтернативные алгоритмы сборки мусора, такие как Rubinius, JRuby и т. Д. Если вы используете потоки, вы можете попробовать Rubinius, иначе MRI Ruby будет работать просто отлично.
источник
Я сказал Python, потому что он имеет большую базу пользователей и больше возможностей, когда дело доходит до фреймворков / библиотек для разработки игр. Совершенно очевидно, что у этого человека нет опыта в разработке игр, поэтому мне не имеет смысла рекомендовать использовать что-то вроде Ruby только потому, что это возможно.
Когда я работаю над играми, я использую C ++ с Lua, я не пишу свою игру на Visual Basic только потому, что она поддерживает мультимедиа. Я уверен, что все здесь слышали, как кто-то говорит определенные инструменты для определенных рабочих мест. Я уверен, что вы можете забить гвоздь обувью, но зачем вам это делать, если вы можете использовать молоток.
источник