LINUX.ORG.RU

Выбор языка программирования для разработки текстовых игр

 


0

1

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

Есть две основные цели:


1. Писать (составлять, разрабатывать — не знаю, какой термин правильнее) текстовые и аудио игры.
2. Писать и оформлять электронные книги с возможностью перемещения между их частями (словами, главами, страницами и т.д.) в формате epub.

Образование далеко не «информатика и вычислительная техника», но некоторые силы в себе, всё же, нахожу..

Прошу у вас совета — наставьте на путь истинный. Подскажите, правильно ли будет писать игры под Instead и учить для этого Lua. Мне Instead нравится пока больше остальных, но это, наверное, иррациональная симпатия. А хотелось бы и порассуждать немного, чтобы не потратить время зря.

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

Словом, прошу помочь, посоветовать, покритиковать )
Спасибо

Опиши свою задачу побольше. Под какую платформу ты пишешь свою игру? Почему именно текстовая/аудио, кто по твоему мнению в нее будет играть? Для 2017 года текстовая игра звучит весьма маргинально.

Aswed ★★★★★
()

INSTEAD выглядит самым подходящим. Есть и другие движки для т.н. «интерактивной литературы».

Можно и без движка, просто писать html'ки. А ещё лучше взять статический генератор сайтов (jakyll, hugo), чтобы комфортно писать главы в markdown, и генерить из них уже готовый набор html'ек по шаблону.

А epub это и есть набор html'ек по сути:

https://ru.wikipedia.org/wiki/Electronic_Publication

настрой структуру каталогов в том что генеришь в соответствии с этим форматом, останется только запаковать в zip.

slovazap ★★★★★
()
Последнее исправление: slovazap (всего исправлений: 2)

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

Aswed ★★★★★
()
Ответ на: комментарий от Aswed

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

anonymous
()

Автор, INSTEAD - хороший выбор, одобряю.

anonymous
()
Ответ на: комментарий от Aswed

Под какую платформу ты пишешь свою игру?

Как раз, пытаюсь определиться:


1. Под какую платформу писать игры
2. Какой язык программирования или сценарный (?) язык разучивать, в связи с п. 1.

Вероятно, профессионалы делают по-другому — язык программирования изучают не для определённой цели, а исходя из видения перспектив. Но я не профессионал, а любитель.

Больше всего склоняюсь к INSTEAD. В комментариях к другим ответам постараюсь объяснить, почему.

Почему именно текстовая/аудио

Немало людей повторяют высказывание «Лучшая компьютерная графика — это человеческое воображение».
Присоединяюсь к этим людям и считаю, что развлечение должно иметь созидательные цели и соответствующие средства.

кто по твоему мнению в нее будет играть?

Не знаю... Хороший вопрос.

Для 2017 года текстовая игра звучит весьма маргинально.

Тут надо определяться со значением слова «маргинально».
Текстовая игра — это всегда определённая интеллектуальная работа. У слова «интеллект» и слова «интеллигент», похоже, одинаковое латинское происхождение — познавание, мышление.
«Интеллигенция — социальная группа, которая занимается умственным трудом, отличается высоким образовательным уровнем и творческим характером своей деятельности» (Википедия).
Вот, подавляющее большинство посетителей и участников ЛОРа — интеллигенция. Порой сюда заходишь просто почитать комментарии, поскольку беседу умных людей слушать приятно (особенно, если она пересыпана неоскорбительными колкостями). Чем у нас в стране больше мыслящих и хороших людей, тем лучше.
Исходя отсюда, мы можем способствовать выведению жанра текстовых игр из пограничного (маргинального) состояния в активное и общепринятое. Это может послужить фактором увеличения численности здравомыслящего населения, что само по себе неплохо.
)) Такая вот теория на коленке. Наверное, можно было покороче, но уж как получилось.

Sasazuka
() автор топика
Ответ на: комментарий от slovazap

INSTEAD выглядит самым подходящим.

Спасибо Вам — соглашаюсь по целому ряду причин.
По поводу html тоже спасибо. Ссылку, которую вы мне дали уже изучал — очень интересно.
Совал нос в код epub с помощью программы Sigil. Возможности мне очень понравились. Если правильно понял, то epub — это уже архив, состоящий из страниц в xhtml, которые имеют связи друг с другом? Это то, что надо:
1. Воспроизводится в любой операционной системе
2. Позволяет давать заинтересованному лицу полноценную иллюстрированную, озвученную (слышал, что там можно встраивать аудио) инструкцию.
Большего и не требуется.
Пока изучение html и css кажется весьма трудоёмким...) Хочется рассчитать силы и время. Поэтому и обратился к вам с данной темой — спросить совет, как подступиться к решению.
Обязательно посмотрю «статический генератор сайтов» — не слышал о таком. Возможно, это очередной выход

Sasazuka
() автор топика
Ответ на: комментарий от Aswed

не нужны языки программирования

Ну да. Нужны html и css: без них редактировать электронные книги — довольно напрягающее занятие. Наглядного редактора мне лично не хватает.

Sasazuka
() автор топика

В работе с текстом рулят Ruby и Python. Как и в прототипировании. Поэтому не старадай х с луа, а компилируй последний Ruby, и в бой. Там как раз есть атасный фреймверк для социальных html игрушек - Ruby on Rails.

menangen ★★★★★
()

нужен не язык, а движок, который и определит выбор языка (да, я прочитал слово «текстовых»)

next_time ★★★★★
()
Ответ на: комментарий от Sasazuka

подавляющее большинство посетителей и участников ЛОРа — интеллигенция

У меня пенсне выпало на этом месте.
Вы всё правильно делаете, и более дельного вряд ли кто тут посоветует.

К документации по Lua (на английском) уже приступил.

Если английский в тягость, возьмите документацию на русском. Например, эта книга от одного из авторов Lua: https://scanlibs.com/programmirovanie-na-yazyike-lua

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

пенсне выпало

Монокль, всё же? )
Ну, может быть, может быть.. Просто изложил собственные впечатления. «Субъективное отражение объективного мира», все дела.

Вы всё правильно делаете, и более дельного вряд ли кто тут посоветует.

Стараюсь уважать любое мнение специалистов и практиков.. Эта область для меня практически неизвестна. Единственно, что помню о программировании — это бейсик, на котором мы писали короткие программы в промежутках между Saboteur-2 и чего-то там ещё +Levels.
Главная ценность, которую хочется сберечь в этом вопросе — время. Изучение языка программирования требует времени. Времени изучать несколько языков для указанных целей у меня вряд ли найдётся в необходимом достатке.

Sasazuka
() автор топика
Ответ на: комментарий от Virtuos86

Если английский в тягость, возьмите документацию на русском.

Ох, забыл поблагодарить — спасибо, посмотрю.
Приходится заставлять себя читать по-английски... Видимо, ближайшую пятилетку никуда от этого не уйти. А там, может, появится какой-нибудь русский язык программирования, звездолёты направятся покорять иные галактики и проч, и проч.

Sasazuka
() автор топика
Ответ на: комментарий от menangen

А там будет не только текст же.
Фото и аудио материалы тоже будут.
Конечно, хотелось бы ещё всякой красоты, которую можно наблюдать в программах от AXMA story Maker, но что-то меня пока останавливает..

Ruby и Python посмотрю обязательно. Bruce_Lee, спасибо за рекомендацию.

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

Sasazuka
() автор топика
Ответ на: комментарий от loz

Не знаю чем, но в руби на моей памяти нет проблем с UTF-8, а про пайтон много раз говорилось, что 2.x, что в 3.x UTF-8 доставляет проблемы (причём разными способами).

Exmor_RS ★★★
()
Ответ на: комментарий от Exmor_RS

а про пайтон много раз говорилось, что 2.x, что в 3.x UTF-8 доставляет проблемы (причём разными способами).

Это кто такую ересь несёт? Он хоть осилил официальную документацию?

th3m3 ★★★★★
()

По большому счёту, есть готовые движки. И как говорилось, выбор языка может зависеть от движка.

Но и прозвучали неплохие мысли, в сторону генерации html. Можно использовать всю мощь современного html5. Там и с аудио работай, и с видео, ну и текстом - конечно же. Можно иметь просто набор html, а ещё можно запилить целое веб-приложение, используя Vue.js и подобное.

Готовый web app, можно легко запаковать под любую платформу. Даже расширение для браузера можно запилить.

th3m3 ★★★★★
()

Как обычно насоветовали ерунды: питон, руби, работа со строками, утф8, хтмл,... Причем тут строки вообще? Типа если игра текстовая значит строками надо жонглировать чтоли? лавров.жпг

anonymous
()
Ответ на: комментарий от anonymous

Ну так в сетевом стеке питончик тоже рулёз!

menangen ★★★★★
()
Ответ на: комментарий от Exmor_RS

но в руби на моей памяти нет проблем с UTF-8

В 2017 году если в языке есть проблемы с юникодом то это вобще не язык. Я говорю про современные языки а не те которым место в музее.

loz ★★★★★
()
Ответ на: комментарий от th3m3

Вот к примеру: https://habrahabr.ru/post/208192/
Но я много где ещё слышал про это.
Вы наверное программируете на питоне каждый день и это ваш любимый язык и хлеб — не сочтите за грубость, обить вас через критику вашего выбора у меня не было намерения.
Дело как я понимаю в архитектуре 3 версии языка.

Exmor_RS ★★★
()

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

Exmor_RS ★★★
()
Ответ на: комментарий от menangen

... Python ... Как и в прототипировании.

А вот и нет. Python для динамического языка очень нединамичен.

ados ★★★★★
()
Ответ на: комментарий от Exmor_RS

У каждого языка есть некоторые нюансы, которые нужно знать и учитывать. Опять же, нет идеального языка программирования. Здесь такая же ситуация, если ты это знаешь, то ты это будешь учитывать при разработке.

th3m3 ★★★★★
()

Писать (составлять, разрабатывать — не знаю, какой термин правильнее) текстовые и аудио игры.

что за текстовые игры? если вроде книг с ветвлением сюжета (такие и бумажные были), то хватит гипертекста (html+css) плюс скрипты генераторы случайных чисел а-ля «кости» для боёвки и, может быть, ещё случайного выбора событий.

anonymous
()

Instead хорош, но в западных интернетах почему-то популярен более архаичный Inform.

Khnazile ★★★★★
()

Блин, столько всего есть, оказывается.. Спасибо вам за рекомендации.
Изучать теперь надо.

Sasazuka
() автор топика
Ответ на: комментарий от Exmor_RS

тогда можно порекомендовать RenPy

Читаю сейчас https://www.renpy.org/doc/html/ — очень интересный проект.
Единственно, пока не дочитал, есть ли там возможность внедрять операции с предметами. Это в небольших дозах, но потребуется.

Sasazuka
() автор топика
Ответ на: комментарий от th3m3

Можно использовать всю мощь современного html5.

html5 и css манят меня своими возможностями, но сомневаюсь, что хватит мозгов «использовать всю мощь» хотя бы через полгода.
Изучать их, естественно, стоит. Кажется, AXMA Story maker построен именно на них. Очень красивое оформление игр получается — видел, пробовал.

Sasazuka
() автор топика
Ответ на: комментарий от Sasazuka

Там изучать нечего :) html - можно освоить за пару часов. css - чуть дольше. Там тоже просто. Проблемы могут быть только с некоторой магией css. Но если брать на вооружение сразу CSS Grid и FlexBox, то будет меньше магии с непонятным поведением. На худой конец, использовать фрамеворки вроде Bootstrap.

Сложности будут только с JavaScript. Тут будет тяжелее, есть куча новых стандартов, тонны библиотек/фрамеворков, которые переписывают заново каждые пол года, решая те же задачи :) Всякие там ES6/ES7/+, ещё будут советовать костыли в виде CoffeScript или TypeScript. Потом пойдут ещё в ход всякие Webpack, PostCSS и т.д. Будет тот ещё вынос возга.

А вся мощь описана в документации, если чего-то непонятно - в сети куча примеров, опять же можно всегда спросить совета и т.д.

th3m3 ★★★★★
()
Последнее исправление: th3m3 (всего исправлений: 2)
Ответ на: комментарий от saahriktu

Не всем нужно работать с сетью и бд, не всем нужна параллельность, не всем нужен компьютер. Ну и что теперь?

loz ★★★★★
()
Ответ на: комментарий от Sasazuka

Вот, подавляющее большинство посетителей и участников ЛОРа — интеллигенция

Ты нас переоценываешь
Ну а вообще, если ты уже нашел готовый движ(INSTEAD), то лучше и используй его, раз уж ты во-первых непрофессионал, во-вторых не ставишь своей целью сделать новый движ. Поскольку написание любой игры с нуля без готового движка это всегда изобретание своего движка.

Aswed ★★★★★
()
Ответ на: комментарий от Virtuos86

Например, эта книга от одного из авторов Lua:

Зачем давать ссылку на какую-то помойку, если она на Рутрекере лежит?

ashot ★★★★
()
Ответ на: комментарий от ashot

Да ладно, всё нормально.. Уже читаю.
Там начинается с того, что читателю требуются «основы программирования» для начала и «определённые знания в области программирования на C». Так что, приходится параллельно смотреть курсы по основам программирования, чтобы хотя бы разбираться в терминах.
Очень специфичная тема.. Может, поэтому многие специалисты по ИиВТ классической повседневной одежде предпочитают лёгкие майки, всякие джинсы и проч. )) Мол, столько внимания расходуется на работу, что об остальном думать некогда.

Sasazuka
() автор топика
Ответ на: комментарий от Aswed

Ну а вообще, если ты уже нашел готовый движ(INSTEAD), то лучше и используй его

А по поводу HTML+CSS+Javascript можете посоветовать что-нибудь?
Мне нравятся перспективы: можно свободно публиковать игры в Сети, передавать их кому-угодно готовыми к воспроизведению, можно воспроизводить игры на любой машине и так далее.

во-вторых не ставишь своей целью сделать новый движ

Ну да, это точно. Жизни не хватит )

Sasazuka
() автор топика
Ответ на: комментарий от ashot

Русский перевод Programming in Lua (3 издание) есть на озоне и лабиринте. Я читал в pdf, решил в взять в бумажном виде для коллекции. Этой книги, reference manual (https://www.lua.org/docs.html) и вики (http://lua-users.org/wiki/LuaDirectory) достаточно для изучения. Пожалуй, для не программиста это самый простой язык.

anonymous
()
Ответ на: комментарий от Sasazuka

По HTML+CSS+Javascript - какие-нибудь книжки из серии для чайников/выучить за 24 часа/head first o'reilly. Но веб-программирование - тема необъятная и там придется гораздо больше читать и изучать, если не ограничиться азами верстки веб-страниц.

anonymous
()
Ответ на: комментарий от Sasazuka

Я не шарю в вебе и стараюсь его избегать. В тему влез потому что на предыдущей работе занимался обычными играми под ведроид и иос.

Aswed ★★★★★
()
Ответ на: комментарий от ashot

Чем твоя помойка отличается ? Смешная какая-то претензия. Нашёл за пять минут и порекомендовал человеку.

Virtuos86 ★★★★★
()
Ответ на: комментарий от Virtuos86

Чем твоя помойка отличается ?

Скачать попробуй и ощути разницу.

ashot ★★★★
()

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

entefeed ☆☆☆
()
Ответ на: комментарий от th3m3

Когда одна программа нормально выводит в консоль, но падает при перенаправлении stdout в файл - это ненормально, что ни говори.

anonymous
()
Ответ на: комментарий от Sasazuka

«определённые знания в области программирования на C»

Видимо, это если заниматься встраиванием луа в си. Частый случай, но не твой, не трать время.

Переменная, функция, ветвление и цикл - вот и достаточные основы программирования!

anonymous
()

1. Писать (составлять, разрабатывать — не знаю, какой термин правильнее) текстовые и аудио игры.

Inform, TADS, RenPy :-)

в Inform в Glorb/Blorb можно свои ресурсы добавлять — картинки, музло и т.п.

2. Писать и оформлять электронные книги с возможностью перемещения между их частями (словами, главами, страницами и т.д.) в формате epub.

гугли про CYOA, книги-игры насчёт epub.

а так, см. parchment — Inform в браузере. также см. русский информ, и оттуда примеры в браузере

javascript должен быть включён.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.