LINUX.ORG.RU

ИНСТЕДОЗ 3: Последний рейс

 , ,


6

4

Не прошло и 1100 лет, как вышла новая подборка текстово-графических игр для интерпретатора Instead «ИНСТЕДОЗ 3: Последний рейс»!

И ведь подборка не простая, а концептуальная, 17 разных игр подчинены общей теме путешествия на огромном межзвёздном корабле на околосветовой скорости. Вам предстоит поспать в криокамере, почувствовать себя роботом, побывать в шкуре крысы и многое другое!
Но и это ещё не всё, игры выполнены в стиле 8bit как графически, так и музыкально, скупая слеза ностальгии обеспечена. Встречайте!

  • Крысиная нора
  • Долгая служба
  • Ремонт
  • Отсек 001
  • Вахта
  • Разорванный цикл
  • Пояс астероидов
  • Робот, который видит
  • Инженер
  • Старый друг
  • Повар
  • Сон
  • Банкет
  • Личность
  • Пробуждение
  • Пробуждение 2
  • Прибытие

Instead

>>> Подробности

★★★★★

Проверено: JB ()
Последнее исправление: JB (всего исправлений: 6)

Ответ на: комментарий от toney

При том, что launcher, наверно, не от рута пускается? А куда он скачает игры, так, чтобы они всем пользователям были доступны? Для таких задач игры и опакечивают.

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

При том, что launcher, наверно, не от рута пускается? А куда он скачает игры, так, чтобы они всем пользователям были доступны? Для таких задач игры и опакечивают.

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

toney ★★★★★
() автор топика
Ответ на: комментарий от alt-x

Т.е., возвращаясь, к исходному вопросу, у каждого пользователя будет своя копия игр?

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

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

С другой стороны, для чего игры распихивать по репам дистрибутивов? Главное, чтоб в репах был сам Instead. А игры ведь и так через Instead-launcher устанавливать удобно, который и смотрит в репы игр.

А для чего вообще всё распихивать по репам дистрибутивов? Скачал с файлопомойки как в винде и нормально.

Ответом будет отсылка к принципу Оккама: а почему вдруг instead игры не должны обновляться как весь остальной софт? В дополнение к этому

  • чтобы скачать не неизвестно что, а проверенный и подписанный мантейнером пакет. Сюда уже к вам вопрос - запрещаят ли instead для своих игрушек загрузку модулей os и system, на которых можно без проблем написать неплозой троян?
  • чтобы поставив новую систему по заготовленному списку пакетов получить таки всё, без необходимости куда-то лезть и что-то докачивать
  • как уже сказали, чтобы не дублировать игры у каждого пользователя
  • чтобы пользователи, не знающие об instead могли найти игру по описанию, поставить и играть
slovazap ★★★★★
()
Ответ на: комментарий от toney

то разделять каталог сохранений по пользователям

Он и так разделён и хранится в ~/.instead, а игры в $prefix/share/instead/games

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

Да пожалуйста: от http://habrahabr.ru/post/184716/ до любых открытых игрушек с сингловыми кампаниями - flare, hero of allacrost, valyria tear.

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

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

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

Говорите за себя. Я вот готов перевести что-нибудь на английский. Где уверенность что гордые instead'овцы делающие всё по-своему примут обратно изменения? Без лицензии, мне вообще могут сказать «я этого не разрешал, иди отсюда мальчик». Без репозитория на гитхабе который я могу форкнуть и спокойно там переводить на виду у оригинального разработчика (у него в network будут видны все мои изменения), что мне делать - взять блоб и сделать из него репозиторий? Как его связать с оригинальным проектом? Что человек со стороны мог «взять и что-то сделать» вы тоже должны «взять и что-то сделать», в пустоту никто не будет работать.

Да, и возвращаясь к практическому вопросу перевода игры, я бы начал с чего-нибудь не такого масштабного как инстедоз. Его svn я видел, у других игр они есть? Я бы перевёл, например, дровосека.

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

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

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

перевод будет принят. файл с лицензией (ориентировочно cc by 4.0, но я хочу еще посоветоваться с автором музыки) - будет в свн в каталоге с игрой. В любом случае на код с лицензией даже теоретической проблемы я не вижу.

gloomy ★★
()
Последнее исправление: gloomy (всего исправлений: 1)
Ответ на: комментарий от slovazap

нет. но они тут и не нужны. gettext с игрой не прокатит. превратит в месиво. просто это как с книгой. нужен новый lua файл(ы). а оформить в многоязычную игру (выбор языка и прочее)-- это я сам сделаю.

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

нет. но они тут и не нужны. gettext с игрой не прокатит. превратит в месиво

Почему не прокатит, в какое ещё месиво? В свободных играх gettext используется поголовно без каких-либо проблем.

просто это как с книгой. нужен новый lua файл(ы). а оформить в многоязычную игру (выбор языка и прочее)-- это я сам сделаю.

Ага, и тогда если в оригинал будет внесено изменение то в другой язык оно не попадёт - получится две игры. Если бы с git это как-то можно было обрабатывать (2 ветки, cherry-pick), то тут увы и ах. И опять же всё упирается в вас, наличие у вас времени и энтузиазма и вообще возможности этим заниматься. Низковат bus factor, не находите?

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

это все мои проблемы. от вас нужен перевод текстов. смержить, поддерживать. я сделаю. просто переведите. :) конечно, можно на lua и getext сделать подобие. но повторюсь. текст квестов это в первую очередь художественные тексты. с немалым объемом. да, в дровосеке их не много, но это скорее исключение. работать с ним + gettext это кошмар. а работать мне. в общем, то что вы пишете — это теория. да и вообще говоря, перевод литературы может быть большим чем перевод строк одна в другую.

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

но я не настаиваю. опенсорс. не хотите - не делайте. :) кому проект интересен — помогают.

gloomy ★★
()
Последнее исправление: gloomy (всего исправлений: 3)
Ответ на: комментарий от slovazap

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

Идет код описания комнаты: dsc = [[И тут вступление на строчек 20]];

Допустим, сделали функцию _. Две проблемы. Во-первых, скорость работы на длинных строках (и поиск в немаленькой такой базе килобайт на 500 — обычное дело). Во вторых - любая правка ключевой строки означает правку перевода (тк мы поменяли ключ)

Второй пример. Формирование частей фразы с предлогами. Например — вывод сложной фразы. Понятно, что этот код будет языкозависимым и это приведет к ветвлениям (что-то вроде ifdef). После того, как я видел возвращения квантового кота на японском (или китайском?), я такого не хочу в тексте игры.

Вместо gettext можно было бы присваивать переменным массива значения текста и потом использовать их в игре. Я видел, как это будет. Это для php может и не плохо, но код игры превращается в полный мрак.

Ну и главное - перевод интерактивной литературы, это не вполне локализация. Так как перевод литературы - это по сути самостоятельное произведение.

Если вы мне подскажете, как можно решить это все другим способом, это будет замечательно. С удовольствием обсудим и внедрим хорошие идеи. :)

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

И да, сам инстед, как программа локализован на пачку языков, и код игры может даже узнать что за язык сейчас выбран... Но обычно, этот функционал в играх используется только для вывода фразы «Выбери язык игры» на родном для носителя языке.

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

Теперь насчет git. Дело в том, что когда у нас в репозитории с играми немалый объем данных это бинарные данные (графика и музыка) — с git не так здорово работать. Либо придется использовать shallow clone либо оставить за бортом людей с медленным инетом. В любом случае — это дополнительная сложность.

Теория говорит, что давайте данные хранить отдельно, и, например, в make сделаем их забор. Но на практике, это гораздо, гораздо менее удобно, чем просто сделать svn co.

Я понимаю, что github необычайно моден (хотя по сути - тоже коммерческий проект), но когда над проектом работают 1-2 человека (над одной игрой) простота и тупизна svn — это достоинство! Плюс хорошо отажена работа на винде (для виндоус разработчиков). Плюс функции файлопомойки — которые более меннее нормальны на sf (http://instead-games.sf.net). Мне проще дать вам доступ на svn и коммиттье, что хотите в ветку — не видя ужасного и продажного web интерфейса sf. Просто распределенные cvs не так часто нужны.

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

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

О чём я и говорю - всё на вас держится. Сколько проектов уже умерло из-за завязанности на одного человека.

художественные тексты. с немалым объемом

Это относится к любой свободной RPG, например.

работать с ним + gettext это кошмар

Вы работали? Я работал, никаких проблем.

а работать мне

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

Допустим, сделали функцию _. Две проблемы. Во-первых, скорость работы на длинных строках (и поиск в немаленькой такой базе килобайт на 500 — обычное дело).

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

Только вот какое дело - gettext'оские файлы снабжаются эффективным индексом.

Во вторых - любая правка ключевой строки означает правку перевода (тк мы поменяли ключ)

Вы высасываете проблемы из пальца. Часто ли после готовности игры меняются ключевые строки? По каким причинам? Не означают ли они что перевод тоже надо менять? Кроме того, gettext это умеет - fuzzy strings никто не отменял.

Второй пример. Формирование частей фразы с предлогами. Например — вывод сложной фразы.

Вы опускаетесь до частных случаев. 500кб, сложные фразы... Большая часть игр в которые я играл даже близко таких проблем не имеет и gettext справился бы на ура. А частные случаи - это частные случаи.

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

Альтернативных подходов немного: либо gettext, либо таблица со строками (не знаю к чему вы упомянули PHP, но способ тоже вполне рабочий, хотя и меньше автоматизации; идея в том чтобы держать поязыковые lua файлы со строками, в коде же использовать отсылки к ним в виде идентификаторов а-ля strings[first_intro], причём элементами хэша могут быть и функции, что позволит реализовать сложную лексику для разных языков), либо разные игры. Мне кажется что последний вариант - наихудший, а без vcs с нормальными ветками и cherry-pick, вообще неприемлемый.

Теперь насчет git. Дело в том, что когда у нас в репозитории с играми немалый объем данных это бинарные данные (графика и музыка) — с git не так здорово работать. Либо придется использовать shallow clone либо оставить за бортом людей с медленным инетом. В любом случае — это дополнительная сложность.

Во-первых, дополнительный объём появится только если графику и музыку постоянно редактировать. Часто такое происходит? Во-вторых, всё остальное git жмёт гораздо лучше svn. Выкачать всю историю нужно только один раз, да и медленный интернет - это уже сказки.

Теория говорит, что давайте данные хранить отдельно, и, например, в make сделаем их забор. Но на практике, это гораздо, гораздо менее удобно, чем просто сделать svn co.

Эта теория касается гигабайтных файлов. Маленькие картинки и музыка на считанные мегабайты замечательно хранятся в git. Не нужно только в репозиторий с игрой пихать zip с ней же (подколка intended).

Я понимаю, что github необычайно моден (хотя по сути - тоже коммерческий проект)

Не понимаете. Мода тут не при чём - github произвёл революцию в свободной разработке сократив порог необходимый для присоединения нового разработчика к проекту до одного клика. Если раньше это было <найди где хранятся исходники> - <зарегистрируйся там (подожди подтверждающего мыла и т.д.)> - <скачай исходники из svn> - <hack, hack, hack> - <отправь патч> - <жди пока его примут (при этом либо больше ничего не разрабатывай потому что svn не поддерживает локальной разработки, либо делай десяток чекаутов и не запутайся в них), причём ждать можно неделями а можно и не дождаться, при этом другие разработчики или просто интересующиеся пока не залезут в трекер, о патче не узнают> - (<повторить>, ...) - <возможно когда-нибудь тебе дадут права коммитить>, то с github стало <отредактируй в браузере и сразу создай pull request>, что замечательно подходит для мелких исправлений, или <скачай исходники из git> - <hack, hack, hack> - <push> - <создай pull request> без каких бы то ни было ожиданий вообще. При этом все чужие изменения абсолютно прозрачны и видны в network даже если их ещё не приняли в основной репозиторий, и их можно сразу откомментировать; если в оригинальный репозиторий ничего не принимают (разработчик потерял интерес, умер и т.д.), разработка спокойно перетекает в форк; не нужно ждать релизов - пакетные системы можно натравить на определённый коммит, в т.ч. в форке. Плюс все преимущества git как-то нормальные ветки и cherry-pick о которых я уже говорил.

Вот и получается что те кто этого не видит продолжает вариться в своём соку в sf'овском svn «с 1-2 разработчиками» (а потом, как правило, с 1, а потом и он отходит от дел, и получаем ещё один из тех мёртвых проектов, из которых sf состоит почти полностью), а те кто хотя бы пробует новый подход обнаруживает что в подходящей среде сообщество, оказывается, может расти, баги начинают исправляться совершенно незнакомыми людьми, переводы присылаться без лишних разговоров на LOR, и за дальнейшую жизнь кода становится спокойно.

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

Вы высасываете проблемы из пальца. Часто ли после готовности игры меняются ключевые строки?

Когда ключ - это несколько абзацев текста, gettext это, по моему мнению, все-таки, не нормально. По факту - часто ли меняется текст в текстовой игре? Да только это по большому счету и меняется. :) Про реальную проблему с gettext английским, как базовым - я не забыл, мне просто достаточно и остального.

да и медленный интернет - это уже сказки.

Игру «путь гоблина» насколько я знаю, авторы закачивают по нескольку часов...

Во-первых, дополнительный объём появится только если графику и музыку постоянно редактировать. Часто такое происходит?

В моих играх постоянно. Сначала я коммичу xcf вообще. И потом- через много много итерация - появляются png...

По последнему абзацу — я все же категарически не согласен, что перевод игр на гит сразу создаст пачку игр. В любом случае - я никому же не запрещаю писать свои игры хоть на github, хоть на битбакет. Проблемы нет.

gloomy ★★
()

Доступна версия 0.4. В данную версию добавлена расширенная информация о лицензиях.

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

Вообще, я хотел бы вернуться к реальности.

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

Перевод, хорошая помощь. И вы можете делать его на github. Ваш репозиторий станет основным — не вопрос. Работайте как удобно, и я под вас подстроюсь.

Каким образом вы его сделаете - тоже неважно (лишь бы хорошо :). На lua вы можете попробовать сделать свой вариант системы перевода. У нас готового решения пока нет, но на форуме мы это обсуждаем. Если придумаем, будет модуль.

Хотите инстед развить? Заводите репозиторий на гитхабе. Не вопрос. Либо это будет форк, либо я потом подтянусь (когда увижу результат).

gloomy ★★
()

По поводу репов - мы посовещались и действительно решили переехать. Все-таки сурсфордж - это не дело. Рассмотрели несколько вариантов и остановились на следующем - codeplex.com. Удобный простой и интерфейс, работает быстро, вообще нет никакой рекламы. В качестве системы контроля версий скорее всего будем использовать TFS.

Всем спасибо за участие в обсуждении этого вопроса!

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

CodePlex is Microsoft's free open source project hosting site.

Одумайтесь!

вообще нет никакой рекламы.

Advertise With Us

toney ★★★★★
() автор топика
Последнее исправление: toney (всего исправлений: 1)

А можно ли в игры для instead запихнуть malware? Или там в какой-то песочнице lua-скрипты исполняются и не имеют доступа к жд, сети и прочему?

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

К сожалению (хотя для кого-то, может и к счастью), lua скрипты в INSTEAD имеют доступ к фс. Так что да - запихнуть теоретически можно. Например, записав что-то в .bashrc.

Еще есть два вызова os.execute и io.popen - их заблокировать очень просто, но в свете доступа к функциям ФС это само по себе не даст 100% песочницу.

Доступ к фс нужен, так как есть модули для записи настроек игры, к примеру, которые записываются в .instead/ (unix) и в другие места (в других ОС).

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

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

В общем, сделал простенький sandbox (в svn) Запись допускается только в каталог с сохранениями. Запуск процессов запрещен... Надо будет поисследовать. Но опять же, автор вируса может написать часть кода на c, оформить в виде модуля и подложить его рядом с игрой. :)

gloomy ★★
()
Последнее исправление: gloomy (всего исправлений: 1)
Ответ на: комментарий от toney

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

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