Язык программирования для рогалика.
Модераторы: Sanja, Максим Кич
Re: Язык программирования для рогалика.
Мне кажется, что изначально (семь лет назад, гыгыгы) вопрос был поставлен некорректно.
Правильнее будет спросить - а какой язык я могу выучить, пытаясь написать рогалик?
Ваш покорный, например, именно так и подходил к вопросу, и может зачислить в заслуги разработке рогалика знакомство меня с Python (хорошо), Lisp/Scheme (так себе) и два подхода к Хаскелю (пока неудачно, будет третий). Сейчас вот пытаюсь на Go.
При таком подходе нужные алгоритмы и то, как устроено приложение - вещи уже сразу более или менее понятные. От того что сменился язык ведь не меняется разделение render loop и logic loop, не становится другим LOS, поиск пути, генератор карты наконец. Вопрос скорее в том, как на этом конкретном языке их реализовывать - получаете быстрое впечатление о языке, так сказать, со входа. А вот когда уже ядерной субмариной всплывают вопросы работы с IO для управления/сейвов, организация классов/трейтов/структур/whatever для игровых объектов, быстродействия - очень быстро придется "погружаться в подробности". В итоге за месяц-два получаете неплохое представление о языке, профит несомненен.
Правильнее будет спросить - а какой язык я могу выучить, пытаясь написать рогалик?
Ваш покорный, например, именно так и подходил к вопросу, и может зачислить в заслуги разработке рогалика знакомство меня с Python (хорошо), Lisp/Scheme (так себе) и два подхода к Хаскелю (пока неудачно, будет третий). Сейчас вот пытаюсь на Go.
При таком подходе нужные алгоритмы и то, как устроено приложение - вещи уже сразу более или менее понятные. От того что сменился язык ведь не меняется разделение render loop и logic loop, не становится другим LOS, поиск пути, генератор карты наконец. Вопрос скорее в том, как на этом конкретном языке их реализовывать - получаете быстрое впечатление о языке, так сказать, со входа. А вот когда уже ядерной субмариной всплывают вопросы работы с IO для управления/сейвов, организация классов/трейтов/структур/whatever для игровых объектов, быстродействия - очень быстро придется "погружаться в подробности". В итоге за месяц-два получаете неплохое представление о языке, профит несомненен.
Re: Язык программирования для рогалика.
А на каких языках вообще писали рогалики участники данного форума? С++ видел, Pascal (Delphi) был, Python встречался неоднократно. А писал кто-нибудь на чём-то более экзотичном? Был хоть один рогалик, написанный на Java? Язык распространённый, но не среди рогаликостроителей.
Re: Язык программирования для рогалика.
на Java:
Land of Darkness, мультиплеерный рогалик
https://powerwyrm.monsite-orange.fr/pag ... 5b82f.html
Land of Darkness, мультиплеерный рогалик
https://powerwyrm.monsite-orange.fr/pag ... 5b82f.html
https://discord.gg/RuMDQHj - русскоязычный рогаликовый discord-чат
youtube.com/StreamGuild — стримы на русском // youtube.com/GameGlaz — стримы на англ. // tangaria.com — MMO-рогалик
youtube.com/StreamGuild — стримы на русском // youtube.com/GameGlaz — стримы на англ. // tangaria.com — MMO-рогалик
Re: Язык программирования для рогалика.
Навскидку - на Java написаны Hale и, вроде-бы, The Battle for Wesnoth.
Re: Язык программирования для рогалика.
На Pascal (Delphi)писал, да ещё как, потом на С++, к ним прицеплял LUA. C# как то не пошёл...А на каких языках вообще писали рогалики участники данного форума?
Сейчас пытаюсь на JavaScript + Node.js чего то ваять - говорят что модно и кроссплатформенно...
Но чувствую какое то отторжение в организме, от чего? - Объяснить не могу. Может быть от того, что раньше было чувство нeсерьёзности языка, как впрочем и к Python такое-же чувство.
Потом прицепил LUA через https://fengari.io/ https://github.com/fengari-lua/fengari чтобы заново не писать A* и т.д, вроде веселей пошло...
Очевидно надо втянуться, привыкнуть. Будем посмотреть, будем пробовать.
Всех с наступающим новым годом!
Re: Язык программирования для рогалика.
LUA с С++ мне кажется проще всего корректить или мне реально ток кажется.
сам я игры не писал никогда, до шедевра типа е+ мне не допрыгнуть я думаю, а сделать еще 1 ничем не выдающуюся игру..опыт есть но зачем... потому ток корректировал при необходимости.
всех с наступающим!
сам я игры не писал никогда, до шедевра типа е+ мне не допрыгнуть я думаю, а сделать еще 1 ничем не выдающуюся игру..опыт есть но зачем... потому ток корректировал при необходимости.
всех с наступающим!
Re: Язык программирования для рогалика.
Сейчас использую с++, но с самописным препроцессором. Пока размер кода с контентом (без редактора) - 667кб, препроцессор отрабатывает за 26мс.
Если в итоговом коде будет не более 2-3 секунды, будет вообще клёво. На жаву аллергия уже - её на работе завались.
Lua+c++ наверно, один из оптимальных вариантов. Lua позволит не перебилживать полпроэкта при точечных изменениях. На Rayel 0.1 это подзадалбывало. Кода было 4+Мб, после каждого мелкого изменения ждать устаёшь. Это один из важных критериев, имхо.
Если в итоговом коде будет не более 2-3 секунды, будет вообще клёво. На жаву аллергия уже - её на работе завались.
Lua+c++ наверно, один из оптимальных вариантов. Lua позволит не перебилживать полпроэкта при точечных изменениях. На Rayel 0.1 это подзадалбывало. Кода было 4+Мб, после каждого мелкого изменения ждать устаёшь. Это один из важных критериев, имхо.
Re: Язык программирования для рогалика.
Это да, в lua изменения можно вносить налету, даже не закрывая игру, и уже на следующем ходу они действуют. Особенно актуально для отладки ИИ - я так (всего) пол дня бился с цепляющимися за углы мобами. Если обходишь препятствие по часовой стрелке - они идут за тобой, если против - цепляются за углы и останавливаются. Представляю, если бы я после каждой правки заново пересобирал проект.
Re: Язык программирования для рогалика.
Прикольно) Специальные тактики в ИИ пока даже не планировал точно, не знаю, к чему там можно привязаться. Но к углам - да, один из вариантов. Сейчас уже я предпочитаю потратить больше времени с листочком бумаги, и придать алгоритму кристальную ясность в голове. Потом гораздо приятней кодить. Выдаёшь большой кусок кода, а он сразу из коробки работает, это драйв) Ну когда поправишь откровенные опечатки и глупые баги, без них не всегда обходится. Но да, не всегда это получается. Если подход сильно экспериментальный, то бывает правильней методом проб: покодил - посмотрел что получится. В этом плане архитектурные подходы "design first" и TDD не подходят. Ну и отдельные хитрые баги бывает ловишь и подольше, чем полдня.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 30 гостей