Topic: INSTEAD в вопросах и ответах (FAQ)

Отвечая на реплики с lor я вдруг понял, что можно уже составлять что-то вроде FAQ. Начинаю это делать.

Вопросы по разработке INSTEAD

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

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

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

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

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

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

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

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

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

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

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

Re: INSTEAD в вопросах и ответах (FAQ)

раз это FAQ, то надо и тему ветки так назвать
и разделять -- одно сообщение -- один "вопрос-ответ". это поможет делать ссылки извне на конкретную информацию

Re: INSTEAD в вопросах и ответах (FAQ)

Перевод я, помнится, делал по такому принципу:

dsc = txt_("room1dsc") [[Описание комнаты]]

Re: INSTEAD в вопросах и ответах (FAQ)

Гм. Ну я правильно понял что это типа gettext? Описание комнаты становится ключом, по которому и ищется перевод? Или тут отдельный ключ? room1dsc?  Если второе - то хорошая идея. Надо ее в виде модуля. И наверное, можно подумать как еще упростить.

Предлагаю возродить эту тему: http://instead.syscall.ru/forum/viewtopic.php?id=17

Re: INSTEAD в вопросах и ответах (FAQ)

Я не знаю, что такое gettext smile
В качестве ключа в данном случае выступает именно "room1dsc", конечно, а не само описание комнаты. В принципе можно и просто:

dsc = txt_("room1dsc")

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

Re: INSTEAD в вопросах и ответах (FAQ)

Да, вот то что у тебя рядом текст оригинальный и есть ноу хау. smile