Какой язык программирования лучше всего подходит для создания игры с рогейнами?

С интересом создайте рогалинную RPG (такую ​​как Nethack, Rogue и ADOM), какой язык программирования будет наиболее подходящим и почему?

С выбранным вами языком обязательно указывайте любые библиотеки или грани языка, которые делают его особенно подходящим.

Ответы

Ответ 2

Мой язык использования (я тоже пытаюсь создать roguelike) - это Python, потому что:

  • Это высокоуровневый язык программирования, мне не нужно постоянно думать о распределении памяти и т.д., но не забывайте об алгоритмах.
  • Там очень много полезных библиотек для почти всего. Недавно я нашел TDL/libtcod, который может могут быть полезны для развития рогалей.
  • С привязками вы можете легко использовать библиотеки C/С++ или даже писать несколько критических функций в C/С++ и использовать их.
  • Это самый читаемый язык программирования, который я когда-либо видел.
  • Во время программирования на Python я научился использовать внутреннюю документацию. Это очень полезно, я просто прочитал свой код несколько месяцев спустя, и я все еще знаю, что он делает.

Ответ 3

Это очень личный выбор, как всегда: -)

Я написал свою игру Roguelike (Tyrant) на Java по следующим причинам:

  • Очень портативный (даже с графикой)
  • Сбор мусора/управление памятью
  • Доступно множество бесплатных бесплатных библиотек с открытым исходным кодом (полезно для алгоритмов, структур данных и управления файлами сохранения файлов и т.д.).
  • Это статически типизированный язык - у этого есть преимущества производительности и надежности, которые, как я оценил, стоят дополнительной сложности кодирования.
  • Я хотел больше оттачивать свои навыки Java для использования в других проектах.

EDIT: для тех, кого это интересует, это с открытым исходным кодом, весь код доступен по адресу SourceForge

Ответ 4

Хорошо, что я сделал пару роговых игрушек на C, потратив немало времени на roguebasin, что является отличным сайтом для все, что связано с развитием рогаликов.

Что касается языка, который вы должны использовать, я действительно не вижу, чтобы это имело огромное значение. Я выбираю C из-за переносимости, и многие библиотеки хорошо работают с ним. Но объектно-ориентированный язык может очищать некоторые вещи, которые вы не можете отслеживать.

Нет никаких языков, которые я бы назвал особенно большими, чем остальные для roguelikes. Если вы делаете его графическим, вы можете предпочесть что-то, что имеет встроенный, такой как flash/silverlight. Но даже тогда есть библиотеки для любых других языков, которые приносят им примерно такую ​​же степень сложности в этом отношении.

Итак, я бы сказал, возьмите язык, который вам известен и нравится, или что вы не знаете и хотите узнать.

Ответ 5

Большинство из этих ответов велики, но есть кое-что, что можно сказать об объединенной силе объектно-ориентированного материала и низкоуровневых команд, которые можно злоупотреблять на С++. Если вы ищете какое-то вдохновение, исходный код C для NetHack широко доступен и задокументирован достаточно хорошо, чтобы вы могли наверстать урок, чтобы узнать кое-что. Тем не менее, это огромный проект, который рос в течение десятилетий, и не все так же чисто, как вы хотите, чтобы что-то делало для вашего собственного проекта - не попадайте в неправильный выбор дизайна, основанный на том, что вы найдете в NetHack.

Честно говоря, с точки зрения того, что вы используете, это, вероятно, не имеет значения, хотя я настоятельно рекомендую использовать язык OO. Там так много дерьма, чтобы обращаться с roguelike (черт возьми, любой CRPG на самом деле), что ООП - это самый простой способ оставаться в здравом уме.

Ответ 6

Оригинальный nethack был написан на C, а источник доступен, если вы хотите получить некоторые идеи о том, как он был написан, и проблемы, которые вы можете найти, которые могут быть хорошим способом начать принимать решения на языке.

Ответ 7

Мой первый вопрос будет состоять в том, будет ли в игре веб-интерфейс или быть каким-то консольным/оконным делом, как оригинальные игры, подобные Rogue? Если бы я сказал, что любой язык, с которым вам удобно, будет хорошим выбором. Ruby on Rails, Python/Django, PHP/CakePHP и т.д. Все будет отлично.

Но если ответ последний, это игра, которую вы хотите, чтобы люди могли загружать и устанавливать локально, я собираюсь пойти с Java. Это отличный язык без управления памятью для вас. Он обеспечивает очень высокую производительность благодаря своевременной компиляции и оптимизации, а также имеет чрезвычайно богатую библиотеку, которая поможет вам с структурами данных, Swing создает для некоторых действительно красивых пользовательских интерфейсов, а 2D-библиотека позволяет использовать самую богатую кросс-платформенную рендеринг вне PostScript. Он также имеет доступность через Windows, Mac OS X и Linux, которые вы не собираетесь получать из других вариантов.

Наконец, распространение вашего приложения легко и с помощью Java Web Start, так что люди могут загружать и устанавливать игру всего за пару кликов, когда у них есть Java, и держать их на своей машине, чтобы они работали столько, сколько им захотелось.

Ответ 8

Для любой игры любой язык будет правильным, если:

  • вы можете использовать его (вы можете использовать его, по знаниям или если его достаточно легко изучить прямо сейчас для вас или вашей команды).
  • он создает приложения, которые запускаются на вашем клиентском компьютере.
  • он может легко создавать приложения, которые работают достаточно быстро для ваших нужд игры.

Я думаю, что для Rogue-Like любой язык, который вы знаете, будет прав, насколько он работает на вас. Выступления на самом деле не являются проблемой в этом виде игры. Мировое поколение может требовать высокой производительности, если ваше мировое поколение действительно сложно, хотя...

Ответ 9

просто пойдите с чем-то, что будет обрабатывать детали низкого уровня для вас. все, что вы знаете, должно работать.

Эй, они могут написать один в javascript.

Ответ 10

Я рекомендую Actionscript для этих игр.

Ответ 11

Вы можете рассмотреть Silverlight.

Он сидит поверх С# и .Net, поэтому им не нужно беспокоиться об управлении памятью. С SL вы получите встроенную поддержку рендеринга типа графа сцены - отбраковка не на экране, клавиатура, события мыши, клики на объекты и т.д.

Есть начальная кривая обучения, но я считаю, что это отличная среда для работы.