RSS
# Re: CYOA и линейность -- поиск идеального инструмента для написания историй
std.club
vvs(ping,12) — hugeping
2021-05-20 15:29:10


hugeping> Более того, я терпеть не мог эффект "угадай глагол". Почему сейчас всё поменялось, сам не понимаю. Ну, угадай глагол мне и сейчас не нравится, конечно. :) Просто я теперь знаю какие глаголы работают :)

А в point'n'click есть свой аналог: охота за пикселями.

# Re: CYOA и линейность -- поиск идеального инструмента для написания историй
std.club
hugeping(ping,1) — vvs
2021-05-20 14:11:29


vvs> Все эти споры о парсере подвигнули меня покопаться в исторических парсерных играх.

Вот что интересно, я почти не играл в "оригинальные" парсеры старой школы. И вообще, любил квесты попроще. Например, предпочитал графические адвенчуры от Lucas Arts (там подписывались объекты при наведнии, в отличие от игр Sierra).

Так что мои игры реконструкцией сложно назвать. Более того, я терпеть не мог эффект "угадай глагол". Почему сейчас всё поменялось, сам не понимаю. Ну, угадай глагол мне и сейчас не нравится, конечно. :) Просто я теперь знаю какие глаголы работают :)

vvs> Кстати, удивляет сегодня, что такое было возможно на компьютерах с 32 _килобайтами_ памяти и 8-битным процессором (в графике!). И да, разумеется, там же рядом можно полюбоваться исходным кодом Zork и Dungeon на ZIL или FORTRAN.

Вообще, старые технологии часто недооценивают. Например, в troff можно верстать не хуже, чем в Latex, но только при этом ресурсов нужно на порядок меньше.

# Re: CYOA и линейность -- поиск идеального инструмента для написания историй
std.club
vvs(ping,12) — hugeping
2021-05-19 18:27:12


Все эти споры о парсере подвигнули меня покопаться в исторических парсерных играх. Сравнение классических игр Sierra On Line и образцов типичной интерактивной литературы показывает интересные отличия. В частности очевидно, что игры Sierra имели немалый элемент аркадности.

Здесь исходный код Leisure Suit Larry (без интерпретатора AGI): https://github.com/historicalsource/leisuresuitlarry
А здесь исходный код нескольких парсерных игр для IBM PC (можно найти и тот же код для TRS-80 Color Computer, кому интересно): https://archive.org/details/mark-data-products-games-1984-85-source-code.-7z

Кстати, удивляет сегодня, что такое было возможно на компьютерах с 32 _килобайтами_ памяти и 8-битным процессором (в графике!). И да, разумеется, там же рядом можно полюбоваться исходным кодом Zork и Dungeon на ZIL или FORTRAN.

# Re: Новости с INSTEAD фронта
std.club
hugeping(ping,1) — hugeping
2021-05-15 11:31:02


Сегодня обновлены:

- МЕТАПАРСЕР3 до версии 2.0;
- metaparser-js до версии 2.0;
- instead-cli до версии 1.2;
- Обновлён metaparser-js на сайте https://parser.hugeping.ru

Ссылки на проекты:

МЕТАПАРСЕР https://instead.hugeping.ru/page/metaparser
instead-cli https://github.com/instead-hub/instead-cli
P.S. Edited: 2021-05-15 11:32:07

# Новости с INSTEAD фронта
std.club
hugeping(ping,1) — All
2021-05-14 17:41:29


Последнее время я внёс множество изменений в репозитории, которые относятся к проекту INSTEAD. Изменений накопилось масса. И я подумал, что неплохо держать гипотетических энтузиастов в курсе того, что именно происходит. Ведь нет ничего интересней, чем наблюдать за чьей-то работой, правда? :)

Изменения к 14 мая 2021.

# Метапарсер

Метапарсер изменился очень заметно. Толчком послужило мероприятие по написанию коллективного парсера "17 комнат". Сложно уже перечислить всё, что с происходило с кодом МЕТАПАРСЕРа. Назову только самые заметные вещи:

* Значительно улучшены подсказки. Смешных и абсурдных ситуаций должно стать меньше!
* Решение проблемы одушевлённости слов, которые имеют несколько смыслов;
* Улучшено качество распознавания при использовании сокращений;
* Исправлено множество внутренних недоработок (сообщения, ввод, и так далее);
* Улучшена документация;
* Служебные глаголы: счёт, парсер глаголы, парсер версия;
* Безопасный формат записи if "объект" ^ w (по сравнению с if w ^ "объект", w может быть nil);
* Новая тема по умолчанию;
* Экспериментальный модуль приказов.

Сейчас готовлю очередную версию, которая будет называться 2.0. После чего, перенесу на новый движок все свои парсерные игры. Парсер объективно стал удобней и для игрока и для автора.

# instead-cli

Долгое время я пользовался для разработки своих игр tiny instead. Эти минималистичный интерпретатор в 100 строк, который можно собрать в дереве исходного кода INSTEAD (src/tiny) и запускать его из терминала.

Для работы в Plan9 я сделал другой вариант tiny, который назвал 9instead. Очень удобная штука! Игра Луна-9 почти полностью написана с его помощью. Можно запустить редактор (acme или emacs), набирать текст и тут же прогонять заготовленный автоскрипт а другом фрейме редактора. Ничего лишнего!

Долгое время меня просили собрать такой интерпретатор, но в виде "продукта". Для Windows в том числе. И в этот раз у меня, наконец, нашлось время это сделать! Теперь на instead-hub появился проект https://github.com/instead-hub/instead-cli Он постоянно развивается. Сейчас готовится новая версия. Все наработки из Plan9 интерпретатора перешли в этот новый проект и я удалил 9instead. Присутствуют статические сборки для Windows и Linux. Особенно instead-cli удобно использовать при разработке парсерных игр, в том числе для перегенерации словаря и прогона тестов. Да и играть в нём тоже неплохо. К тому же, этот интерпретатор можно использовать как референсную реализацию при создании своих версий INSTEAD.

Ну и, конечно, instead-cli собирается в 9front. Так что теперь это официальная версия INSTEAD для Plan9 вместо 9instead.

# Модуль protect

Иногда хочется сделать так, чтобы исходники вашей игры не были доступны для изучения. Для этого есть "штатный" метод в виде doencfile в INSTEAD, но он довольно неудобен в использовании (требуется модификация кода) и легко вскрывается. Поэтому в stead3-modules появился protect! Как он работает?

Для его запуска вам нужен lua или instead с опцией -lua для запуска скрипта. Ну и instead-cli теперь умеет запускать скрипты Lua.

```
instead-cli -xprotect.lua main3.lua main3.lua
```

Осторожно! Файл main3.lua будет закодирован! Вы можете повторить эту процедуру для всех lua файлов вашего проекта.

Конечно, "защиту" можно взломать. Но сделать это сложнее, чем стандартный encoder в INSTEAD. Если вам удалось сделать расшифровщик, расскажите, насколько это было легко. Это правда любопытно. Сам я не сторонник закрытия исходников, но иногда художественный замысел требует этого. Например, если речь идёт о хардкорной головоломке.

# Перевод игры "Архив"

Я перевёл игру Архив на английский. Но нужна вычитка. Если у вас есть скиллы и возможность помочь, прошу на https://github.com/gl00my/instead-game-archive Игра полностью проходима на русском и на английском.

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

# INSTEAD, вперёд!

В общем, я доволен прогрессом. INSTEAD превращается в инструмент мечты. Много интересных задач. И радость творчества присутствует! Готовлю обновление: метапарсер + metaparser-js + instead-cli + перевыпуск всех своих парсерных игр. Потом в очередной раз подумаю, что делать дальше. Надеюсь, работа над INSTEAD доставляет радость не только мне. :) А пластмассовый мир пусть идёт лесом.

# Re: CYOA и линейность -- поиск идеального инструмента для написания историй
std.club
vvs(ping,12) — hugeping
2021-03-23 15:24:19


Кстати, чтобы увидеть возникающую путаницу достаточно посмотреть на "Земли сказаний" (http://instead-games.ru/forum/index.php?p=/discussion/412 ). Это типичная книга-игра, но которую трудно отличить от "квеста".
P.S. Edited: 2021-03-23 15:24:46

# Re: CYOA и линейность -- поиск идеального инструмента для написания историй
std.club
vvs(ping,12) — hugeping
2021-03-23 12:36:33


hugeping> Ходить по локациям, брать предметы и т.д.

Это условность. В любой книге-игре такие элементы тоже присутствуют, например: "если вы хотите пойти туда-то, то идите на параграф такой-то" или "если вы решили взять этот предмет, то впишите его в лист персонажа и идите на соответствующий параграф".

hugeping> В CYOA подходе обычно речь идёт не о моделировании локаций/действий, а о развитии сюжета непосредственно. Текст (художественный, а не сгенерированный движком) выводится порциями и в идеале не повторяется, не заставляет игрока ходит по тем же местам снова и снова, а ведёт игрока от начала истории и до конца, ветвясь в зависимости от замысла автора.

hugeping> Конечно и в CYOA можно применить элементы "моделирования", но это довольно дорогое удовольствие по сравнению с "квестом". Потому что требует от автора написания художественного текста для всех развилок.

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

Но идею я понял.

# Re: CYOA и линейность -- поиск идеального инструмента для написания историй
std.club
hugeping(ping,1) — vvs
2021-03-23 06:16:06


Я говорил об играх в рамках интерактивной литературы или классических point&click квестах. Под "квестом" или игрой с моделью мира я понимал игры в которых моделируются действия игрока. Ходить по локациям, брать предметы и т.д. Тогда и Zork и Maniac Mansion относятся условно к "квестам". Сюжет в таких играх обычно линеен. Чувство свободы возникает от свободы перемещений и действий, но на сам сюжет это не влияет.

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

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

# Re: CYOA и линейность -- поиск идеального инструмента для написания историй
std.club
vvs(ping,12) — hugeping
2021-03-22 21:28:33


Пытаюсь понять эту классификацию, но путаюсь в неоднозначной терминологии. Такие термины, как "квест", "линейность", "модель" или "механика" можно понимать по-разному.

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

В книгах-играх уже явно есть и игровой мир и дерево сюжета. Игрок может взаимодействовать с объектами этого мира, выбирая нужную ветку.

Куда тут отнести Zork или, например, Maniac Mansion? Есть игровой мир и есть набор (частично связанных) задач для достижения (одной из) целей игры. Сюжет присутствует, но на ход игры не влияет.

Это то, что тут имеется в виду?

# CYOA и линейность -- поиск идеального инструмента для написания историй
std.club
hugeping(ping,1) — All
2021-03-22 18:54:02


Недавно @technix подсунул мне статью https://if50.substack.com/p/1981-his-majestys-ship-impetuous в которой рассказывается о Роберте Лафоре (Robert Lafore) создателе интерактивной литературы и его играх. В играх применён довольно простой и забытый сегодня приём. История разворачивается как в CYOA играх, в ключевых моментах предлагая игроку вводить текст в свободной форме. Движок реагирует на:

* присутствие ключевых слов в фразе (например: да, нет, имя NPC и т.д.);
* отсутствие ключевых слов в фразе (попрошу обращаться ко мне как "сэр");
* объём текста и так далее...

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

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

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

Мне всегда нравилось писать истории, которые напоминают книги или кино (или театр). Загадки в такой истории воспринимаются как часть происходящих событий и естественно вплетаются в повествование. Поэтому и INSTEAD был написал с упором на такой вид игр. Условно, назовём их играми с моделью мира или просто квестами. Не смотря на ощущение свободы, на самом деле, именно свободы как правило в подобных играх нет. Мы просто "проживаем" разворачивающиеся события. Это "проживание" помогает погружению и не является средством реализации вариативности.

Модель мира позволяет реализовать линейную историю, потому что само разворачивание сюжета составлено из действий игрока. Это уже само по себе "актёрская игра". Возникает элемент вовлечённости. Сюжет один и тот же, но остаётся ощущение, что ты был в центре описываемых событий.

Зачем эти рассуждения? Дело в том, что меня давно интересует вопрос применения элементов CYOA для написания _линейных_ историй. И прочитанная статья вроде бы в очередной раз намекает на возможность этого пути. Мне казалось, что должен бысть способ скрестить парсер и CYOA и получить нечто новое.

Что мне нужно от CYOA? Литературный текст. Лёгкость работы с текстом (как в книге). Что мне нужно от парсера? Чувство свободы (хотя бы и мнимое) и вовлечённости. Однако, как только мы убираем модель мира, мы приходим к неизбежной нелинейности! Этот парадокс я долгое время не замечал.

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

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

Предполагаю, что речь идёт о (назову их так) "стратегических" играх. Я имею в виду игры с явно выраженной игровой механикой. Сюжет в таком случае будет "побочным" продуктом. Он будет развиваться не средствами CYOA подхода. Например, в случае игры про детектива, работающего с документами при помощью меню, сюжет, скорее всего, будет развиваться за счёт чтения игроком содержимого документов. А сам игровой процесс при этом не будет иметь прямого отношения к CYOA подходу.

То-есть, при проектировании игры мы можем выделить некую игровую механику и уже вокруг этой механики развернуть сюжет. В качестве примера: SMS игры, работа с документами, игры в виде диалогов, кликеры, текстовые-roguelike, расшифровка текстов и так далее. Да, мы всегда можем придумать новую уникальную (или не очень) механику и навесить на неё сюжет. Но, в таком случае, нельзя говорить об универсальности подхода. И, строго говоря, мы не можем назвать это CYOA. Потому что игровая механика таких игр не влияет на сюжет. Напомню, я говорю сейчас об играх с линейным сюжетом.

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

Игры с моделью мира -- настоящая интерактивная литература. ;)
P.S. Edited: 2021-03-22 18:58:47

# Re: Зимняя Олимпиада Квестов 20-21!
std.club
Enola(ping,16) — Enola
2021-03-01 07:15:45


Результаты конкурса объявлены и опубликованы!
https://forum.ifiction.ru/viewtopic.php?pid=39674#p39674

Номинация "Выбор игроков"
1-ое место - "Красная шапочка: охота на волков" (Вета, Tangarou, Ангел | Renpy) Итоговый балл: 8
2-ое место - "Не сдавайся, скелет!" (Out_or | Сторигейм) Итоговый балл: 7.9167
3-е место - "Луна-9" (Пётр Косых | Instead) Итоговый балл: 7.9091
4-ое место - "Хроники Нордхейма. Второй отряд" (Вячеслав Добранов | Ink) Итоговый балл: 7.4545

Номинация "Выбор жюри"
1-ое место - "Билет в один конец" (Виталий Блинов | Web) Итоговый балл: 178
2-ое место - "Луна-9" (Пётр Косых | Instead) Итоговый балл: 168
3-е место - "Красная шапочка: охота на волков" (Вета, Tangarou, Ангел | Renpy) Итоговый балл: 167
4-ое место - "С улицы Бассейной" (Finest ясный сокол | Instead) Итоговый балл: 156

# Re: Зимняя Олимпиада Квестов 20-21!
std.club
Enola(ping,16) — Enola
2021-02-15 13:29:27


Срок голосования за игры продлён до 27.02.2021 г. (включительно; время московское).

# Re: INSTEAD 3.3.3
std.club
artur(ping,3) — hugeping
2021-02-11 18:23:40


О, не зналь. Здорово=)

# Re: INSTEAD 3.3.3
std.club
hugeping(ping,1) — artur
2021-02-11 10:15:36


>>добавлен параметр темы scr.col.brd (цвет бордюра);
artur> Это, грубо говоря, рамочка вокруг картинок?
Это облась, которая возникает при масштабировании всей темы. Например, квадратная тема на широком мониторе. Справа и слева будут полосы. Теперь этот цвет можно задать.

# Re: INSTEAD 3.3.3
std.club
artur(ping,3) — hugeping
2021-02-10 13:58:45


>добавлен параметр темы scr.col.brd (цвет бордюра);

Это, грубо говоря, рамочка вокруг картинок?

# INSTEAD 3.3.3
std.club
hugeping(ping,1) — All
2021-02-10 11:14:41


Выпустил INSTEAD 3.3.3.

Список изменений:

* добавлен параметр темы scr.col.brd (цвет бордюра);
* поддержка RTL (при сборке с _USE_HARFBUZZ и новым SDL_ttf);
* добавлен флаг instead.tiny в минимальной версии;
* готовность сборки с emscripten 2.0.12;
* gtk3 сборка включается по умолчанию;
* параметр сборки APPIMAGE;
* новая реализация анимированных gif (из движка удалён LGPL код);
* возможность сборки с lua5.4;
* исправления ошибок.

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

Творите с удовольствием. :)

# Re: Зимняя Олимпиада Квестов 20-21!
std.club
Enola(ping,16) — Enola
2021-02-08 08:49:55


Приём игр завершён.
Всего прислали 16 игр!

Игры опубликованы: https://forum.ifiction.ru/viewtopic.php?id=2593

На страницах игр можно играть, писать комментарии, отзывы, и ставить оценки. Голосование продлится до 21.02.2021 г.

# МЕТАПАРСЕР 1.10
std.club
hugeping(ping,1) — All
2021-01-29 10:38:28


Обновлён модуль МЕТАПАРСЕР3.

Новое:
* mp:pager_mode() experiment;
* for_plural is documented;
* #Drop splitted in #Drop and #Insert;
* use less memory while compiling dict;
* all mp.msg.* can be functions;
* home/end keys while edit line;
* bugfixes.

https://instead3.syscall.ru/page/metaparser/

# Re: Зимняя Олимпиада Квестов 20-21!
std.club
Enola(ping,16) — Enola
2021-01-17 13:02:22


Новости. На текущий момент на конкурс принято 3 игры. Напоминаю, что до конца приёма игр осталось три недели (07.02.2021).

# Re: Зимняя Олимпиада Квестов 20-21!
std.club
Enola(ping,16) — Enola
2020-12-09 17:47:26


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

Также один из членов жюри Yandexx пожертвовал в фонд конкурса 13 000 рублей (огромное спасибо!) и, после распределения их по призовым местам, у нас получилось следующее (суммы с учётом уже имевшихся призов):

Номинация "Выбор жюри"
1-ое место - 14 000 рублей.
2-ое место - 3 000 рублей.
3-ое место - 2 000 рублей.
4-ое место - 1 000 рублей.

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

Номинация "Выбор игроков"
1-ое место - 4 000 рублей.
2-ое место - 3 000 рублей.
3-ое место - 2 000 рублей.
4-ое место - 1 000 рублей.

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

# Re: Зимняя Олимпиада Квестов 20-21!
std.club
Enola(ping,16) — Enola
2020-12-06 20:06:12


Вторая новость. В состав жюри вошла прекрасная Альфина aka Александра Голубева. Прошу любить и жаловаться. Для тех, кто в танке, Александра "Альфина" Голубева - нарративный дизайнер Pathologic 2, автор и художник вебкомикса "Маревый Мир", переводчик книг «Кровь, пот и пиксели» и «Кодзима — гений».

# Зимняя Олимпиада Квестов 20-21!
std.club
Enola(ping,16) — All
2020-12-06 13:34:20


Зимняя олимпиада квестов 2020-2021

Приветствую всех поклонников интерактивной литературы и текстовых игр на очередной Зимней Олимпиаде Квестов 2020-2021!

В этом году вас, как обычно, ждут обновлённые правила ЗОК, двусмысленные темы конкурса, скромные призы, мудрое жюри и эпатажный организатор женского пола.

Ниже приведены две версии правил.
Краткие правила – для тех, кому лень читать, и для тех, кто и так всё знает.
Подробные правила - для тех, кто желает разобраться во всех нюансах конкурса, или любит читать длинные бессмысленные тексты.

Все вопросы, на которые вы не нашли ответ в правилах, можно задавать напрямую организатору (это я, если кто-то до сих пор не понял 😉) на Discord-сервере сообщества интерактивной литературы, либо на почту project.enola@yandex.ru.

Краткие правила
Требования: текстовая игра на русском языке.
Отправка игр по адресу: project.enola@yandex.ru

Срок приёма игр: с 07.12.2020 г. по 07.02.2021 г.
Публикация игр: 07-08 февраля 2021 г.
Срок голосования: с 08 февраля 2021 г. по 21 февраля 2021 г.
Две номинации: «Выбор жюри» и «Выбор игроков».
Жюри: Альфина, Антон Ласточкин, Yandexx, techniX, cheshire, goraph.
Игроки: пользователи, зарегистрированные на форуме ifiction.ru и проголосовавшие за игры.

Призы: Номинация "Выбор жюри"
1-ое место - 14 000 рублей.
2-ое место - 3 000 рублей.
3-ое место - 2 000 рублей.
4-ое место - 1 000 рублей.

Номинация "Выбор игроков"
1-ое место - 4 000 рублей.
2-ое место - 3 000 рублей.
3-ое место - 2 000 рублей.
4-ое место - 1 000 рублей.

Призовой фонд формируется. Ищем спонсоров.

Связь с организатором (то есть мной) на канале #зок на https://discord.gg/5MwVHu9J5s Discord-сервере сообщества интерактивной литературы

Подробные правила:
Требования:
Впервые опубликованная текстовая игра на русском языке.
Допускаются: онлайн-игры, переводы иностранных игр, книги-игры (только в формате PDF с интерактивным геймплеем (гиперссылками)).
Жанр игры: любой, но, в первую очередь, приветствуются квесты (логично же, исходя из названия конкурса).
Игры, которые раньше были частично опубликованы (отдельная часть, глава, история из игры), допускаются на конкурс после решения организатора, в зависимости от количества нового контента.
Количество игр от одного участника не ограничено.

Темы(для тех, кто не знает, о чём писать):
1. Начхать на всё.
2. Девушка с короной.
3. От сумы и зимы не зарекайся…
4. Инъекция Олимпиады.
5. Квесты эпохи Нью-эйдж.

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

Сроки:
• Срок приёма игр: с 07 декабря 2020 г. по 07 февраля 2021 г. (включительно).
• Срок публикации присланных игр: с 07 на 08 февраля 2021 года.
• Срок голосования для жюри и игроков: с 08 по 21 февраля 2021 года. (включительно).
• Подведение итогов – после завершения голосования.
Все даты подразумевают московское время.

Отправка игр.
Архив с игрой и любыми дополнительными (по желанию автора) материалами необходимо прислать до окончания срока приема работ на e-mail адрес: project.enola@yandex.ru
Туда же нужно присылать все обновления.

В теме письма указать: Игра на ЗОК.
К игре необходимо приложить следующую информацию:
• Ник(и)/имя(ена) автора(ов) игры
• название игры
• описание игры
• название платформы
• обложку игры (можно скриншот) размером от 300×300 пикселей (по желанию автора, но обычно картинки лучше привлекают игроков)
• особые инструкции по запуску (если игра запускается нетривиальным образом): требуемые интерпретатор, операционная система, библиотеки для запуска и т.д.

Также желательно приложить краткое прохождение загадок или подсказки для жюри.

Онлайн-игры: Если вы пишете онлайн-игру на специализированных ресурсах, имеющих премодерацию публикации (например, hyperbook.ru, axma.info, quest-book.ru,apero.ru и другие подобные ресурсы), вам необходимо:
• уведомить организатора письмом на project.enola@yandex.ru о том, что игра, участвующая в ЗОК 20-21, будет опубликована на соответствующем ресурсе
• опубликовать игру (или отправить на модерацию) не ранее 07 февраля 2021 года.

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

Если вы пишете самостоятельную онлайн-игру, у которой не может быть оффлайн-версии, то до 07 февраля 2021 г. она не должна быть в открытом доступе.Вы можете, например, закрыть её паролем и открыть после начала конкурса. При этом, желательно, прислать пароль организатору вместе с заявкой. Чтобы у организатора была возможность ознакомиться с игрой и проверить на соответствие правилам конкурса заранее, а не в последние часы дедлайна.

Голосование:
Все присланные игры автоматически принимают участие в двух номинациях конкурса: «Выбор жюри» и «Выбор игроков».

Выбор игроков
Призовой фонд:
1-ое место - 4 000 рублей.
2-ое место - 3 000 рублей.
3-ое место - 2 000 рублей.
4-ое место - 1 000 рублей.

Игроки - все желающие, зарегистрированные на https://forum.ifiction.ru/ форуме ifiction.ru. Ссылка на голосование будет размещена здесь позднее. Игроки оценивают игры по шкале от 1 до 10.

Итоговая оценка игры считается, как среднее арифметическое всех поданных за неё оценок.
Голоса, отданные только за одну игру или явно не соответствующие уровню игр и/или их сравнительному качеству (например, всем играм - 1, а одной - 10), будут расцениваться организатором как «накрутки». В случае, если игра набрала менее трёх голосов игроков, она не может претендовать на призовое место.
В случае равенства голосов, отданных за какие-либо игры, решение о распределении мест между ними принимает организатор.

Выбор жюри:
Призовой фонд:
1-ое место - 14 000 рублей.
2-ое место - 3 000 рублей.
3-ое место - 2 000 рублей.
4-ое место - 1 000 рублей.

Состав жюри: Альфина, Антон Ласточкин, Yandexx, techniX, cheshire, goraph..
(Жюри - замечательные люди, имеющие за плечами немалый опыт текстового игростроения, чьему мнению по играм я доверяю. Надеюсь, что и большинство людей в сообществе интерактивной литературы разделяет мою убеждённость.)

Оценка игр(дальше много текста про систему судейства)
Жюри оценивает игры по четырём критериям:
Увлекательность, Сюжет, Геймплей, Литературный стиль.

По каждому критерию члены жюри выставляют оценку от 1 до 10.
Цифры можно расшифровать примерно так:
10 - «не забуду еще десять лет», 9 - «не оторвусь ни за что», 8 - «великолепно!», 7 - «хорошая штука, мне понравилось», 6 - «неплохо, но ничего особенного», 5 - «так себе, видал я много лучше», 4 - «играть можно только с большим трудом», 3 - «тоска, скука и скрежет зубовный», 2 - «где тут, собственно, игра?», 1 - «кто мне подсунул этот кошмар?!».

Также жюри предлагается выразить своё мнение об игре тремя короткими комментариями:
Запоминается…
Хотелось бы…
Итоговый вердикт…
Данные комментарии сугубо добровольные, жюри могут оформить свои впечатления от игр другим образом или не описывать их вообще.

Подробнее о критериях:

Увлекательность
Это - самое важное, что можно сказать об игре. Интересно ли в нее играть? Общие впечатления и ощущения.

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

Сюжет
Оригинальность истории, её непротиворечивость. Отсутствие логических неувязок, неясностей, последовательное, а не «рваное» повествование (если, конечно, это не специальный приём в игре).

Литературный стиль
Ошибки (орфографические, речевые и т.д.), стиль текста, лёгкость чтения и восприятия. Насколько приятно читается текст? Разнообразие художественных приёмов, образов, фигур речи.

Игры, получившие от любого члена жюри по одному из критериев оценку 3 и менее, не могут претендовать на призы в номинации "Выбор жюри".

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

P.S. Жюри могут участвовать со своими играми в конкурсе (ну а вдруг 😉), но только в номинации «Выбор игроков».

Заключительные положения

В случае нарушения правил конкурса участником организатор, посовещавшись с жюри, имеет право дисквалифицировать игру участника.
Настоящие правила могут меняться в течение конкурса, о чём организатор будет делать объявления.
Дальнейшие пополнения призового фонда будут распределяться пропорционально и соразмерно между местами. (Естественно, что призы за первые места могут быть больше и новые пожертвования можно направлять только на первые места по желанию спонсора).
P.S. Edited: 2021-03-01 07:13:52

# Re: Модуль xrefs: ещё один интерфейс для INSTEAD игр
std.club
hugeping(ping,1) — vvs
2020-11-24 18:00:56


vvs> Если сделать их видимыми только пока держишь шифт, то они все будут вообще незаметными.
vvs> Не знаю, кого это может раздражать, да еще имея полный выбор.

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

# Re: Модуль xrefs: ещё один интерфейс для INSTEAD игр
std.club
vvs(ping,12) — Andrew Lobanov
2020-11-24 12:36:07


AL> Малозаметные гиперссылки попадались только в одной игре -- в вахте :)

Если сделать их видимыми только пока держишь шифт, то они все будут вообще незаметными.

AL> Гипертекст в принципе не очень удобно читать, ИМХО. Но тут выбора нет. К парсеру общественность морально не готова :)

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

# Re: Модуль xrefs: ещё один интерфейс для INSTEAD игр
std.club
boscholeg(ping,5) — hugeping
2020-11-24 07:39:00


Думаю, что в качестве эксперимента вполне может быть.
Мне было бы любопытно посмотреть на новую игру с новой фишкой в управлении.

P.S. Edited: 2020-11-24 07:39:02
тут должна быть картинка с торсом Гомера Симпсона, но не судьба :)

# Re: Модуль xrefs: ещё один интерфейс для INSTEAD игр
std.club
hugeping(ping,1) — vvs
2020-11-24 06:52:14


vvs>Разве что сделать так, чтобы они были видны только пока удерживаешь шифт.
Думаю, будет раздражать определённую часть ещё больше. А так- замена визуализации просто. На самом деле, надо смотреть по играм. Испытывать.

# Re: Модуль xrefs: ещё один интерфейс для INSTEAD игр
std.club
hugeping(ping,1) — vvs
2020-11-24 06:45:05


vvs> Ну не знаю. Меня эти торчащие во все стороны индексы отвлекают еще больше, чем малозаметные гиперссылки.

Нужно искать компромисс. На самом деле, делать игры с ссылками, которые выделены в тексте цветом, мне не хочется. Остаются:
- парсер;
- невидимые ссылки (как в Вахте);
- xrefs;
- не писать уже. ;)

Я надеюсь, пока ещё, что xrefs приемлемый компромисс. Часть игроков, наверное, будет недовольна. Но какая часть, это вопрос....

# Re: Модуль xrefs: ещё один интерфейс для INSTEAD игр
std.club
Andrew Lobanov(tavern,1) — vvs
2020-11-24 04:18:31


vvs> Ну не знаю. Меня эти торчащие во все стороны индексы отвлекают еще больше, чем малозаметные гиперссылки. Разве что сделать так, чтобы они были видны только пока удерживаешь шифт.

Малозаметные гиперссылки попадались только в одной игре -- в вахте :)

Гипертекст в принципе не очень удобно читать, ИМХО. Но тут выбора нет. К парсеру общественность морально не готова :)

# Re: Модуль xrefs: ещё один интерфейс для INSTEAD игр
std.club
vvs(ping,12) — hugeping
2020-11-23 22:01:34


Ну не знаю. Меня эти торчащие во все стороны индексы отвлекают еще больше, чем малозаметные гиперссылки. Разве что сделать так, чтобы они были видны только пока удерживаешь шифт.

# Официальный и неофициальный чаты INSTEAD
std.club
hugeping(ping,1) — All
2020-11-22 20:11:06


Неофициальный Telegram чат INSTEAD https://t.me/insteadtalk стал большим и флеймообразующим. Новичкам там часто становится страшно и неуютно. Поэтому я создал модерируемый официальный чат.

https://t.me/insteadchat

Этот чат будет жёстко модерироваться. Оскорбления/грубость/сильный оффтоп -- запрещены.

# Модуль extlibs: частичка метапарсера для классики
std.club
hugeping(ping,1) — All
2020-11-22 08:54:37


Привет!

Давно уже хотел портировать часть функций метапарсера в классику. Сегодня я это сделал: https://github.com/instead-hub/stead3-modules/tree/master/extlib

Что есть? Словарь. Таким образом, можно делать стандартные реакции в зависимости от типа объекта. На данный момент поддерживаются:

- генерация описаний предметов, если у них не задан dsc (или dsc вернул false);
- supporter;
- container;
- transparent;
- concealed;
- openable;
- switchable;
- item (вещь можно брать и класть);
- дополнительные обработчики у obj: onact, onuse, oninv - которые вызываются перед стандартными.

Демонстрация:

loadmod 'extlib-ru'

obj {
	-"винтовка";
	nam = "винтовка";
	onuse = function(s, w)
		if w ^ 'ваза' then
			p [[Бах!]];
			remove(w)
			return
		end
		return false
	end;
}:attr 'item'

obj {
	-"телевизор";
	nam = "телевизор";
}:attr 'switchable';

obj {
	-"стол";
	nam = "стол";
}:attr 'supporter': with { 'винтовка', 'ваза', 'коробка', 'телевизор' }

obj {
	-"коробка";
	nam = "коробка";
}:attr 'openable,container';

obj {
	-"ваза";
	nam = "ваза";
}:attr 'container,item':with 'цветок'

obj {
	-"цветок";
	nam = "цветок";
}:attr 'item';

room {
	nam = 'main';
	title = "extlib demo";
	obj = { 'стол' };
}

Для сообщений стандартной библиотеки применяется такой-же язык шаблонов как и у метапарсера:

--"видеть"
ex.msg.EXAM = "{#Me} не {#word/видеть,#me,нст} {#vo/{#first/пр}} ничего необычного.";

В общем, как и всегда, надеюсь, что это кому-то понадобится на практике.

P.S. Конечно, модуль будет дорабатываться. Stay tuned!

extlib.png

# Модуль xrefs: ещё один интерфейс для INSTEAD игр
std.club
hugeping(ping,1) — All
2020-11-21 15:28:26


Играясь с INSTEAD на Plan9, я поймал себя на мысли, что играбельность простых игр в tiny-instead даже выше, чем в обычном настольном INSTEAD. И даже CYOA игры выглядят не так ужасно. Почему?

Не знаю как у других, а у меня сформирован рефлекс нажатия ссылок. Когда я вижу гипертекст, я:

- Сначала обращаю внимание на ссылки;
- Читаю текст фрагментарно и часто непоследовательно;
- Стараюсь нажать на эти ссылки раньше времени.

Поэтому то меня и тянет парсер, где текст -- это просто текст.

Так вот, в tiny-instead текст тоже выглядит текстом, а управление игрой осуществляется через ввод цифр: http://hugeping.tk/lib/uploads/9front-instead-cat.png

И тут я подумал, а может быть можно сделать что-то похожее и в обычном INSTEAD?

Оказалось, можно! Встречайте модуль xrefs.

http://hugeping.tk/lib/uploads/xrefs.png

Модуль уже в репозитории: https://github.com/instead-hub/stead3-modules

Как пользоваться?

1) В начало вашей игры добавьте loadmod 'xrefs'
2) Вы можете пользоваться мышкой, или клавиатурой, нажимая на клавиши для выбора ссылки. Для режима "использовать" нажимайте shift, затем две клавиши по очереди, которые соответствуют предметам.

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

# Re: Подкасты переехали на soundcloud
std.club
artur(ping,3) — Andrew Lobanov
2020-09-12 11:31:29


К тому же, инстед могёт во всякие графические штуки как к примеру на фоне в том же юбилейном видео-подкасте. Можно поиграться с этим всем...
Да, надо будет с ютаба загрузить видео=)
P.S. Edited: 2020-09-12 11:31:24

# Re: Подкасты переехали на soundcloud
std.club
Andrew Lobanov(tavern,1) — hugeping
2020-09-12 11:31:36


hugeping> Где я, где инстед и где видео? :)

Однако, юбилейный подкаст очень классный был :)
P.S. Edited: 2020-09-12 11:31:32

# Re: Подкасты переехали на soundcloud
std.club
vmg(tavern,32) — hugeping
2020-09-12 11:31:45


hugeping> С другой стороны, смотри сам. Я осяду здесь, а соц-сети пусть живут где-то там. :)

Ты не принадлежишь к телу, друг? Тело едино, так говорит Лэндрю! © «Star Trek»
P.S. Edited: 2020-09-12 11:31:40

# Re: Спойлеры в клубе
std.club
hugeping(ping,1) — boscholeg
2020-09-11 21:20:35


> А как назад расшифровать? Зеркальцем воспользоваться?

Ага. Или мозгом. :)

# Re: Подкасты переехали на soundcloud
std.club
hugeping(ping,1) — artur
2020-09-12 11:31:54


> Но если не надо --> не буду

Смотри на своё усмотрение. Мне ещё тут предлагали в яндекс-музыку залить. Вроде бы есть раздел: не музыка.

Подкасты нужно писать рассчитанные на широкую аудиторию, все-таки. А сейчас так и вообще - видео.

Где я, где инстед и где видео? :)
P.S. Edited: 2020-09-12 11:31:49

# Re: Спойлеры в клубе
std.club
boscholeg(ping,5) — hugeping
2020-09-11 21:18:47


А как назад расшифровать? Зеркальцем воспользоваться?

# Re: Подкасты переехали на soundcloud
std.club
artur(ping,3) — hugeping
2020-09-12 11:32:02


Но если не надо --> не буду
P.S. Edited: 2020-09-12 11:31:57

# Re: Подкасты переехали на soundcloud
std.club
artur(ping,3) — hugeping
2020-09-12 11:32:10


Боюсь, что группа инстеда "локальна". А подкасты видно будет через группу. Можно в принципе ещё и ограничить просмотр аудио, емнип.
Подкасты в ВК по разным направлениям, вообще, есть. Так что, думаю, подобный формат не вызовет непонимания у людей. Особенно у тех, кто вообще в эту группу вошёл=)
P.S. Edited: 2020-09-12 11:32:06

# Re: Подкасты переехали на soundcloud
std.club
hugeping(ping,1) — artur
2020-09-12 11:32:19


> Ну я загружу туда.

Честно говоря, мне кажется наши подкасты там вызовут нездоровую реакцию. Может не стоит?

С другой стороны, смотри сам. Я осяду здесь, а соц-сети пусть живут где-то там. :)
P.S. Edited: 2020-09-12 11:32:13

# Re: Подкасты переехали на soundcloud
std.club
artur(ping,3) — hugeping
2020-09-12 11:32:26


Ну я загружу туда. Всё равно можно записать автора. Запишу "INSTEAD сообщество" и т.п. В группе инстеда в ВК можно добавить как в альбом сообщества.
P.S. Edited: 2020-09-12 11:32:22

# Re: Подкасты переехали на soundcloud
std.club
hugeping(ping,1) — artur
2020-09-12 11:32:35


> А можно подкасты загрузить в ВК?

Я честно говоря не знаю что и как там делать. И немного побаиваюсь vk. :) Пусть пока в soundcloud полежат. Тем более, что уже неактуальны.
P.S. Edited: 2020-09-12 11:32:31

# Re: Подкасты переехали на soundcloud
std.club
artur(ping,3) — hugeping
2020-09-12 11:32:42


А можно подкасты загрузить в ВК?
P.S. Edited: 2020-09-12 11:32:38

# Подкасты переехали на soundcloud
std.club
hugeping(ping,1) — hugeping
2020-09-12 11:31:15


В связи с переездом все подкасты INSTEAD перенесены сюда: https://soundcloud.com/hugeping
P.S. Edited: 2020-09-12 11:31:08

# Перенос club.syscall.ru на станцию ping
std.club
hugeping(ping,1) — All
2020-09-10 10:38:52


Назад пути нет. Делегирую домены на сервера Яндекс. В относительно скором времени club.syscall.ru и syscall.ru будут указывать на станцию http://hugeping.tk

База поинтов не сохранится, но сообщения сохранятся. Если вы заинтересованы в общении на станции, уже можно регистрироваться на https://hugeping.tk
Новая станция больше похожа на форум.

Сервер крутится на малинке, как будет со стабильностью - не знаю. Статус проекта - личный арт-проект без всякой ответственности. http://hugeping.tk/rOf069UX8K24yAzvWa9N#rOf069UX8K24yAzvWa9N

В общем, поехали! :)

# Re: Ленты RSS в клубе
std.club
hugeping(ping,1) — Peter
2020-09-09 09:25:19


> Теперь можно получать сводную ленту из нескольких эх. Например, все эхи инстеда в одной RSS ленте:
> authstr можно посмотреть в личном профиле

На новом движке ii-go не так:

http://hugeping.tk/echo/all/rss - Все сообщения
http://hugeping.tk/echo/echo.name/rss - Выбранная эха echo.name
http://hugeping.tk/to/User/rss - Сообщения для User
http://hugeping.tk/from/User/rss - Сообщения от User

# Re: Спойлеры в клубе
std.club
hugeping(ping,1) — Peter
2020-09-09 09:22:14


> Теперь, если в вашем сообщении встречается строчка: %%spoiler%%

На новом движке ii-go теперь по другому.

@spoiler: А это спойлер!

!релйопс отэ А :reliops@

# Re: Сказки про INSTEAD: как всё начиналось
std.club
hugeping(ping,1) — hugeping
2020-09-09 06:29:45


Иллюстрация #2
2.png

# Re: Сказки про INSTEAD: как всё начиналось
std.club
hugeping(ping,1) — hugeping
2020-09-09 06:29:00


Иллюстрация #1
1.png

# Сказки про INSTEAD: как всё начиналось
std.club
hugeping(ping,1) — All
2020-09-09 06:21:00


> Опубликовано 09.05.2010

Уже больше года назад, увидела свет первая публичная версия INSTEAD и игра «Возвращение квантового кота». В то же время я написал статью в электронный журнал LGT о том, как создавался движок…

# Стать режиссёром

После просмотра захватывающего фильма или чтения полюбившейся книги кто из нас не ставил себя на место режиссёра или писателя? Подобрать актеров. Продумать сюжет. Сделать все так, как кажется правильным. Что касается меня, то я всегда мечтал написать свою историю. В эпоху постмодернизма большинство сюжетов — это циничные (хотя и изысканные) истории. Я хорошо помню чувство разочарования, когда мы с другом выходили из кинотеатра, посмотрев только что вышедшие новые «Звездные Войны». Я же всегда хотел написать историю, в которой бы смешались романтика и фантастика, я хотел создать «классическую» историю. Но я не был режиссёром, не был писателем, я был программистом.

Еще учась в институте, воспитанные лучшими квестами Lucas Arts, мы с моим другом пытались писать графический «плоский» квест, но как это часто бывает не хватило мотивации, да и терпения… Я писал тогда на смеси ассемблера и C. В результате не был написан даже движок.

Несколько лет назад, уже работая с Linux, я узнал о таком старом жанре компьютерных игр, как Interactive Fiction (интерактивная литература). Было похоже, что это то-что нужно! Днем рождения жанра считается 1975 год, когда Уилл Кроутер написал первый текстовый квест, Adventure. В этом квесте общение с игроком осуществлялось посредством ввода и вывода текстовой информации. Эта особенность и стала ключевой для игр жанра IF. Многие IF-игры очень похожи на книги. Кроме того, так как вывод игры это текст — автор не обязан быть художником, создание IF игры в целом гораздо проще создания графического квеста в стиле 90х. При этом, как и в случае интересной книги, сюжет определяет все. Фактически — написание такой игры это написание сценария — огромный простор для творчества, посильного для одного человека.

На данный момент, самыми популярными и старыми платформами для создания IF игр являются TADS и Inform. Для своего первого квеста я выбрал Inform. Но тут возникла сложность — русский язык гораздо тяжелее анализировать (парсить). К счастью, на тот момент Денисом Гаевым уже была сделана русификация Inform компилятора и я начал писать пробную историю на Inform.

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

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

Русский Inform был отложен. Но я все еще хотел написать свой квест.

# Первая попытка

Состояние жанра IF в Росии далеко от того, чтобы вызывать оптимизм. Тем не менее существуют проекты, которые являясь платформами для IF игр не реализуют парсерный ввод. В качестве примеров можно привести платформы URQ и QSP. Игры на этих платформах относят к так называемому «менюшному» типу, когда пользователь фактически выбирает варианты действий, хотя вывод игры по-прежнему является текстом. Графика и звуки тоже могут поддерживаться движком, но они скорее дополнение — как иллюстрации в книге.

Потратив некоторое время на изучение существующих движков я понял, что они не подходят. Я уже был «испорчен» Inform’ом в том смысле, что мне нравилась объектная ориентированность языка. Кроме того, я был в то время «фанатичным» и последовательным Linux’оидом, а данные платформы изначально были написаны для DOS и Windows. Качество существующих квестов под эти платформы меня тоже не удовлетворило, особенно в сравнении с английскими аналогами, и я начал продумывать свой движок.

В качестве языка я сначала планировал использовать какой-то простой basic-подобный скриптовый язык, но как-то наткнулся на Lua и был поражён его простотой, расширяемостью и лёгкостью его встраивания в C. И я просто начал писать движок на Lua.

В качестве идеи была выбрана следующая модель:

Внутри мир игры является объектно-ориентированным. Что-то вроде упрощённого Inform.

Диалоги должны выглядеть в стиле квестов 90-х. Вообще, диалоги всегда были одной из любимых особенностей графических квестов.

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

Схема взаимодействий объектов выбрана примерно такая, как она сделана в игре Goblins: игрок выбирает мышкой объект или действует объектом на другой объект — тоже мышкой, щелкая по словам, представляющие объекты. Игрок может переходить с локации на локацию, щёлкая по их именам.

Первоначальная версия движка на Lua оказалась очень простой — несколько сотен строк. Кроме того, движок писался одновременно с игрой — я просто включал в движок все то, что упрощало код игры. Так родилась тестовая версия квеста о сотрудниках института в котором я работал и об их борьбе со злом. Движок, как я уже сказал, представлял собой просто скрипт на lua, взаимодействие с ним осуществлялось через стандартный ввод/вывод. Это позволило реализовать графический интерфейс просто как надстройку, написанную на tcl/tk. Это был unix way — очень просто. Выглядело, конечно, грубовато, но в качестве концепта годилось. Весь проект — чуть больше 1000 строк, не считая 2000 строк самой игры.

Идея графического интерфейса была предельно проста. Слева: текст с игрой. Справа — столбец с объектами инвентаря. Кликая мышкой можно было взаимодействовать с объектами и комбинировать их.


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

# Обратно в 80-е

Все это время в моем подсознании зрела мысль, что квест еще не написан, а движок — не идеален… Я прочитал документацию по Lua еще раз и понял что все, что я написал — хлам. К счастью хлама было не много, и я переписал движок с чистого листа, учитывая ошибки и узкие места игры — концепта. На этот раз получилось около полутора тысяч строк на Lua, все еще достаточно просто и гораздо проще (и, надеюсь, достаточно гибко), чем существующие «менюшные» движки. И вот, дописывая движок меня прорвало — я начал писать свой «первый» квест, о хакере дауншифтире и парадоксах квантовой механики. Как и в случае с концептом, движок дорабатывался во время написания игры. В отличие от игры-концепта, я изначально планировал консольное, а не графическое управление игрой. С одной стороны, это добавляло шарма и сближало игру с классическими IF играми, с другой стороны — использование библиотеки readline делало управление игрой довольно комфортной.

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

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

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

Поэтому, я не стал выкладывать игру в открытый доступ и просто отложил её на неопределённое время.

# Графика

Не знаю, как пришла идея сделать игру похожей на визуальную новеллу? Наверное, это стало следствием понимания необходимости написания для игры графического интерфейса. Интерфейс tcl/tk, конечно, не тянул на то, чтобы стать основным, и я начал писать библиотеку для отрисовки текста на основе SDL. Идея была в том, чтобы написать среду для запуска игр, написанных под движок, с возможностью менять вид интерфейса в зависимости от игры. Кроме того, после изучения некоторых движков, в том числе и движка для визуальных новелл, я решил, что такая среда должна быть очень простой.

Написав основу, я ради интереса попробовал вставить произвольную картинку на первую страницу игры, над текстом описания сцены и… понял, что у меня получается новая игра. Тогда я не выдержал и достал свой недорогой планшет Wacom Graphire, когда-то купленный мной для обработки фотографий и благополучно забытый, запустил gimp и попробовал нарисовать картинку для первой сцены. Просто сделал набросок, как мог… Посмотрев результат в игре я понял, что нужно рисовать дальше…

Я осознавал, что я не художник, и поэтому я решил обратить этот недостаток в достоинство, выбрав в качестве иллюстраций простые наброски… Подтверждение того, что идея может сработать, я обнаружил в детской книге про медвежонка Паддингтона, которую я купил для своей дочки, и в которой было полно подобных простеньких рисунков. Они смотрелись вполне гармонично, не смотря на примитивизм, и даже обладали каким-то своим шармом. Я стал рисовать и игра, по мере заполнения её простыми черно-белыми набросками, стала походить на книжку с авторскими (какими они, собственно, и являлись) рисунками. В некоторых случаях я брал фотографии и стилизовал их под наброски, сначала выделяя границы в gimp, а затем прорисовывая и корректируя их руками.

Для этого использовалась следующая нехитрая техника:

1.Создать копию слоя.
2.На верхнем слое: инвертировать цвет.
3.Гауссовое размытие верхнего слоя.
4.50% прозрачности верхнего слоя.
5.Объеденить видимые слои.
6.Порог.
7.Ручная работа.

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

Параллельно шла работа над графической средой, которая действительно оказалась довольно простой в реализации. Всего менее четырех с половиной тысяч строк кода на C. Это было гораздо проще всего того, что я видел.

В конце встал вопрос по поводу оформления интерфейса моей первой игры. Для рисования графических элементов я использовал Inkscape, который успел полюбить при разработке прошлой SDL игры — Color Lines. Основной проблемой стал подбор удачной подложки под текст и графику. Изначально я думал использовать просто белый фон, да и картинки были нарисованы с учётом белого фона. Но посидев пару часов со своим другом Сергеем, была выбрана подложка в виде старой книжной страницы для текста и ещё одна замысловатая текстура — для подложки под инвентарь. Правда возникла проблема — наброски были нарисованы на белом фоне и просто так рисовать их поверх текстуры было нельзя. Но, как оказалось, в gimp это решалось очень просто — переводом слоя в альфа-канал. (Слой->Прозрачность->Цвет в альфа-канал). Результат нам очень понравился.

#Звук

Примерно в это время команда с http://websound.ru выпустила диск ремэйков олдскул треков — reTracked #2 http://retracked.org Закачав его в свою Nokia N800 я был очарован композицией Liberty. Я и раньше подумывал о звуковом сопровождении игры, но теперь я знал точно, что будет играть в последней сцене.

Итак, для музыкального сопровождения я искал старые олдскульные модули и пытался осмысленно их распределить по эпизодам моей первой истории. Со стороны движка никаких сложностей не было, библиотека SDL-mixer умеет играть модули практически всех форматов.

# Эффект LOR

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

Небольшое сообщество, собранное вокруг IF игр в России это в основном Windows пользователи, и я собирался попросить кого-нибудь портировать мою игрушку под эту систему, сам я не использовал Windows с тех пор, когда перестал под неё программировать. Теоретически, процесс обещал быть простым — SDL и lua — кросс платформенные вещи и давно собраны для Windows. Но так вышло, что единственный знакомый мне Windows программист (кстати, он же портировал Color Lines) был занят другими делами и я, сделав тарболл, просто выложил его на страничку, быстро созданную на google sites. Потом я кинул ссылку на linux.org.ru и уехал домой.

Результат меня поразил. Посетители linux.org.ru пробовали мою игру и она им нравилась! Вы должны знать особенности данного ресурса, чтобы понять, что это означало для меня. Фактически, не было ни одного негативного отзыва. Люди играли в мою игру! Конечно те, кто так или иначе были знакомы с жанром, но все-таки это было неожиданно. В результате превышения трафика (я так и не нашел информации, какая именно граница считается у них лимитирующей) google sites временно отключил мою страничку и мне пришлось переносить проект в google code http://instead.googlecode.com и на всякий случай — на sourceforge. Потом, несколько человек писали мне в jabber и я исправил несколько ошибок в движке.

# Что дальше?

Instead — так я назвал платформу, легко собирается в Unix среде, например, практически без изменений он собрался для Nokia N8XX, но все-еще не собран для Windows пользователей. Я думаю, что рано или поздно версия для Windows должна появиться, но пока её нет. Что касается развития платформы, то я придерживаюсь той мысли, что платформа это средство, а не цель. Главное — это интересная история. Движок — всего лишь способ запустить игру. Если найдутся люди, которые напишут что-нибудь на instead, и потребуется расширение возможностей движка — они будут расширены.

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

# Re: Тарковский о Каннском кинофестивале
std.club
Andrew Lobanov(tavern,1) — Peter
2020-08-05 04:38:01


Peter> Прочитал тут интересную статью с воспоминаниями о том, как снимался "Солярис".
Peter> https://old.kinoart.ru/archive/2002/04/n4-article16
Peter> Там много интересного, но решил выделить особо мнение о Каннском кинофестивале. В нём отчётливо слышится разочарование "пластмассовым миром", который добрался и до искусства. :)

Кино, в большинстве своём, это бизнес. А значит то, что лучше для кассы, то лучше для производителя. Пластмассовый мир победил. Хотя, иногда ещё попадается малобюджетное интересное кино, но так редко, что это можно считать флюктуацией.

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

# Тарковский о массовости
std.club
Peter(syscall,1) — All
2020-08-03 22:09:21


> Конечно, здесь может возникнуть проблема зрительского восприятия картины: будет ли она интересна и понятна всем? Но я давно не верю в то, что можно сделать какой-то фильм, всеми адекватно воспринимаемый. Мне кажется, глубоко ошибочно считать, что чем большее количество людей посмотрели фильм, тем лучше. Для кого? Для чего лучше? Для фильма? Можно согласиться только с тем, что это лучше для кассы. Это правда! Но здесь-то и возникает проблема подлинного художественного творчества в условиях кинорынка: совершенно ясно, что с одинаковым успехом воспринимается лишь общепринятое.

> ...

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

> Однако художник, претендующий на создание подлинного искусства, а не коммерческих поделок, может и должен рассчитывать на свою, пускай и ограниченную, но собственную аудиторию, что и является условием существования художника как индивидуальности. Между прочим, «Солярис» собрал 100 тысяч зрителей. Считается, что это неожиданно много. А, собственно, почему?

https://kinoart.ru/texts/andrey-tarkovskiy-o-tom-kak-on-hotel-snyat-film-zerkalo

# Тарковский о Каннском кинофестивале
std.club
Peter(syscall,1) — All
2020-08-03 19:43:46


Прочитал тут интересную статью с воспоминаниями о том, как снимался "Солярис".

https://old.kinoart.ru/archive/2002/04/n4-article16

Там много интересного, но решил выделить особо мнение о Каннском кинофестивале. В нём отчётливо слышится разочарование "пластмассовым миром", который добрался и до искусства. :)

> Уровень фестиваля просто чудовищный. О состоянии кино мои мысли не изменились: в мире правит коммерческий кинематограф, все хотят понравиться зрителю во что бы то ни стало — все, даже Феллини. Думаю, что такое положение дел установилось надолго и всерьез. Единственная попытка устроителей противостоять коммерции выразилась в отказе от порнографии — и это всё.

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

> В такой ситуации, скажем, Феллини оказывается ниже, чем другие режиссеры, предпочитающие не участвовать в фестивалях. Я сам все более укрепляюсь в мысли, что на фестивали вообще не следует ездить, настолько все это отвратительно: то же самое, что и у нас, буквально поговорить не с кем.

> Теперь в моду вошел «политический кинематограф». То есть раньше спекулировали на «трогательных« детских сценах, а теперь спекулируют на политике. Итальянские политические фильмы, которые делаются на американские деньги, — ну разве это не смешно! Та же самая коммерция!

> Нет, не понравилась мне вся эта история — все дешевка! В этом смысле я получил буквально ошеломляющее впечатление: ну хоть бы один серьезный вопрос! По поводу «Соляриса» только одно и волновало: антикубриковская ли это картина? Повсюду один и тот же вопрос. Ну что это такое?

> Времена меняются. Если теперь мне даже предложат снимать «Белый, белый день», то я откажусь: я уже другой человек, а через два года, пока сниму фильм, и вовсе будет поздно.

# Передизайнил клуб
std.club
Peter(syscall,1) — All
2020-05-08 15:51:38


Как-то приелся старый вид, переколбасил дизайн. Голубой цвет взял у Роминой ноды, очень мне этот цвет нравился. Короче, стало повеселее.

Конечно, все там на соплях, но переписывать всю ноду целиком нет ни сил, ни времени. )

Сделал еще псевдо-эху "личное", теперь личные сообщения не пропадут, даже если отпишешься от приватной эхи.

Хотел ещё фоновую картинку сменить, да не нашёл ничего лучше.

Теперь страничка более менее смотрится в eww и netsurf.

# Re: INSTEAD для Linux в формате AppImage
std.club
Peter(syscall,1) — btimofeev
2020-04-23 14:43:44


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

В общем, надо разбираться.

# Re: INSTEAD для Linux в формате AppImage
std.club
btimofeev(tavern,13) — Peter
2020-04-23 14:29:30


> Интерено, у меня нормально выглядит. Но я запускал из GNOME3, а у тебя i3? Можешь посмотреть как другие gtk3 диалоги выглядят? Например, в evince?

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

# Re: INSTEAD для Linux в формате AppImage
std.club
Peter(syscall,1) — btimofeev
2020-04-22 16:25:23


> Gtk-Message: 17:36:30.216: Failed to load module "canberra-gtk-module"

У меня тоже на арче такое вылезло.

> И GTK диалог выбора игры выглядит страшновато, вот скрин http://0x0.st/ij8C.png При этом в консоль
> сыпет кучу ошибок (на фоне скрина).

Интерено, у меня нормально выглядит. Но я запускал из GNOME3, а у тебя i3? Можешь посмотреть как другие gtk3 диалоги выглядят? Например, в evince?

# Re: INSTEAD для Linux в формате AppImage
std.club
btimofeev(tavern,13) — Peter
2020-04-22 16:05:11


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

Gtk-Message: 17:36:30.216: Failed to load module "canberra-gtk-module"

И GTK диалог выбора игры выглядит страшновато, вот скрин http://0x0.st/ij8C.png При этом в консоль сыпет кучу ошибок (на фоне скрина).

# INSTEAD для Linux в формате AppImage
std.club
Peter(syscall,1) — All
2020-04-22 12:06:08


Собран экспериментальный портативный INSTEAD для Linux (AppImage). Прошу всех заинтересованных потестировать: https://github.com/instead-hub/instead/releases/download/3.3.2/INSTEAD-3.3.2-x86_64.AppImage

# Изменения на syscall.ru
std.club
Peter(syscall,1) — All
2020-04-19 17:01:27


1) Удалены следующие эхи:

- obsd.11;
- std.bugs;
- openbsd.talk;
- gk11.ru.

2) Добавлена эха (пока пустая) std.hugeping. -- Это будет мой личный блог. Зачем я его сделал - напишу постом отдельно.

# INSTEAD 3.3.2
std.club
Peter(syscall,1) — All
2020-04-19 11:13:17


Выпустил INSTEAD 3.3.2

Список изменений:

- исправлен параметр -lua;
- исправлена работа в некоторых оконных менеджерах (минимизация);
- исправлена логика анимированных gif (совместная работа с декораторами);
- сборка с gtk3 больше не дает предупреждений;
- начальная поддержка геймпадов;
- добавлены функции utf8_XXX;
- loadstring не позволяет выполнять скомпилированный байткод;
- отладчик stead3 позволяет использовать системную раскладку;
- улучшения в документации.

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

# Re: Запустить Caesium под Виндой
std.club
Andrew Lobanov(tavern,1) — vit01
2020-01-19 05:00:38


vit01> Всех этих вещей вместе взятых. А ради виндузятников лень напрягаться, просто потому что их тут не большинство.

Потому то их и меньшинство, что напрягаться для них никто не хочет :)

# Re: Запустить Caesium под Виндой
std.club
vit01(mira, 1) — libra
2020-01-18 13:15:04


vit01>> Актуальный Cutiefeed всегда лежит на Гитхабе, однако пашет нормально только на линуксах. Он, конечно, ужасен, но уже получше :)
vit01>> Давно хочу переписать всё это дело на другом тулките и сделать дизайн как в IDEC Mobile, но постоянно сталкиваюсь с трудностями и так и не могу сделать какой-то рабочий прототип.

libra> А в чём стреляют сложности?! Наличие машины на винде?! Среды для компилинга?! Времени?! Желания?! Силы?!

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

Насчёт тулкитов есть вполне определённые причины. Я пробовал много всяких штукенций, но требованиям к поддержке разных систем и по дизайну удовлетворяет только Qt + QML

Однако, в QML есть немало трудностей

1. Нет концепции "фрагментов" для избежания дублирования кода и адаптивного дизайна. Есть некоторые базовые штуки в плане дизайна, но там многое надо реализовывать с нуля

2. В IDEC Mobile список эх и список сообщений полностью полагаются на компонент RecyclerView https://developer.android.com/guide/topics/ui/layout/recyclerview , который позволяет не жрать память на больших объёмах информации и запрашивать данные из БД только по мере необходимости. Для эх с >100 сообщениями такая штука просто необходима. Иначе придётся либо уменьшать количество фич, либо делать не слишком отзывчивый в плане производительности клиент.

3. Нашёл достаточно трудным связывать GUI c реальным кодом в Qt + QML, плюс так и не представляю до сих пор, как без костылей создавать приложения с несколькими экранами

+++ Отправлено через IDEC Mobile
+++ GNU/Linux, Android, physics, MLP:FIM

# Re: Запустить Caesium под Виндой
std.club
libra(wonderland,1) — vit01
2020-01-15 15:44:40


vit01> Актуальный Cutiefeed всегда лежит на Гитхабе, однако пашет нормально только на линуксах. Он, конечно, ужасен, но уже получше :)

vit01> Давно хочу переписать всё это дело на другом тулките и сделать дизайн как в IDEC Mobile, но постоянно сталкиваюсь с трудностями и так и не могу сделать какой-то рабочий прототип.

А в чём стреляют сложности?! Наличие машины на винде?! Среды для компилинга?! Времени?! Желания?! Силы?!

А то, мощности с виндовсами есть вроде как. Доступы/права/etc могу вполне нарисовать.

+++ idec mobile
+++ Делай, получится!!!

# Re: А то, что так тихо...
std.club
libra(wonderland,1) — Difrex
2020-01-12 16:30:37


>> Что сказал дедушка Столлман? :)
Difrex> Заполучил автограф на ноут ^_^
Difrex> Хреновые фотки: https://cloud2.difrex.ru/index.php/s/Qgt2rPv7t3ga2Pa

А у вас ЛетсЭнкрипт убежало ))))

+++ Caesium/0.4 RC1
+++ Мы знаем, что, что-то знаем, но не знаем что знаем

# Re: Кончилось место на станции
std.club
libra(wonderland,1) — Peter
2020-01-12 16:30:36


Peter> Тут снова место на станции кончилось. Так что некоторые профайлы могли полететь (список подписок в доступе через веб). Извините. :)

А вот чего... теперь понятно, почему не получалось у меня пройти аутентификацию
через по имеющимся login/auth в web на std.syscall.ru?
Или это к делу не относится?! Или же ты вообще запретил хождение через веб?
Или просто пропал мой поинт?

+++ Caesium/0.4 RC1
+++ Иногда кроличья нора, это просто кроличья нора...

# Из интервью А. Тарковского
std.club
Peter(syscall,1) — All
2019-12-24 15:25:42


— Мои фильмы, независимо от того, удавались они мне или нет, в конечном счете, все об одном и том же. Всех моих героев объединяет одна страсть — к преодолению. Никакое познание жизни не дается без колоссальной затраты духовных сил. На этом пути могут быть тяжелейшие потери, но зато тем глубже, богаче будут постижения. Чтобы прийти к пониманию законов жизни, чтобы осознать в себе и в окружающем лучшее, то, что составляет красоту и внутреннюю правду нашего существования, нашего бытия (а не только бытования!), для того, чтобы остаться верными самим себе, своему долгу перед людьми и перед собой, — все мои герои проходят, должны пройти через напряженную сферу размышлений, исканий и постижений. И чем более глубоко проникнут они в сложность и трудность стоящих перед ними задач, тем значительнее, убедительнее окажется их решимость противопоставить тяжелому и горькому человечное, светлое, доброе.

https://meduza.io/feature/2019/12/24/vseh-moih-geroev-ob-edinyaet-odna-strast-k-preodoleniyu

# Re: Игра, где можно всё.
std.club
vmg(syscall,52) — Peter
2019-12-20 16:30:56


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

# Re: Игра, где можно всё.
std.club
Peter(syscall,1) — Peter
2019-12-20 07:15:24


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

# Re: Игра, где можно всё.
std.club
Peter(syscall,1) — vmg
2019-12-20 07:13:10


vmg> Сегодня промелькнула новость об игре, где, по утверждению автора, можно всё, что-угодно.
vmg> Ссылку на новость в Яндексе уже не найду, но
vmg> 1. Вот ссылка на обзор: https://habr.com/ru/news/t/479956/

Ага, что то такое проскакивало. Детально не смотрел, но вроде бы было прикольно. Правда, я смотрел парсерный вариант. А по твоей ссылке была игра с выборами.

Конечно, у нас более дремучие технологии. Ручной труд и все такое. :) Но интересно, что будет дальше....

# Игра, где можно всё.
std.club
vmg(syscall,52) — All
2019-12-17 21:16:50


Привет всем.
Сегодня промелькнула новость об игре, где, по утверждению автора, можно всё, что-угодно.
Ссылку на новость в Яндексе уже не найду, но
1. Вот ссылка на обзор: https://habr.com/ru/news/t/479956/
2. Вот — на игру (или одну из игр: я там ещё не разобрался): https://ai-adventure.appspot.com/
Инглиш у меня лишь в процессе, поэтому прохождение затянется.
Подумал, может нас это заинтересует. Там чё-то нейросеть куда-то, вместо чего-то... )) Короче, разберёмся.

# Кончилось место на станции
std.club
Peter(syscall,1) — All
2019-11-23 16:04:49


Тут снова место на станции кончилось. Так что некоторые профайлы могли полететь (список подписок в доступе через веб). Извините. :)

# Re: Запустить Caesium под Виндой
std.club
Andrew Lobanov(tavern,1) — z-Hunter
2019-11-05 08:01:45


>> Напрямую его не запустишь в винде. Можно запустить через cygwin
z-Hunter> А есть где-то какой-то FAQ, как, не вдаваясь в детали, запустить через Cygwin?

Вот обещанная инструкция:

1. Качаем https://cygwin.com/setup-x86_64.exe (https://cygwin.com/setup-x86.exe для 32-битной винды) и запускаем.
2. Выбираем установку из интернета (далее отвечаем на тривиальные вопросы о путях установки и настройках прокси-сервера, выбираем зеркало).
3. Выбор пакетов. Необходимо установить следующие пакеты: git, python3, ncurses, nano (в окне выбора пакетов есть поиск).
4. После запусска терминала необходимо клонировать актуальную версию caesium:
$ git clone https://github.com/idec-net/caesium.git
5. После этого достаточно зайти в директорию цезия и запустить его:
cd caesium
./caesium.py

Редактировать конфигурационный файл можно либо нажав E в цезии, либо напрямую:
$ nano caesium/caesium.cfg

Не очень удобно, но пользоваться можно :)

# Re: Запустить Caesium под Виндой
std.club
Andrew Lobanov(tavern,1) — z-Hunter
2019-11-04 12:33:40


>> Напрямую его не запустишь в винде. Можно запустить через cygwin
z-Hunter> А есть где-то какой-то FAQ, как, не вдаваясь в детали, запустить через Cygwin?

FAQ никто не писал, вроде бы. Если интересует, я могу написать инструкцию по запуску Caesium через Cygwin, но только завтра. Дома нет машин с виндой а то.

# Re: Запустить Caesium под Виндой
std.club
vit01(mira, 1) — z-Hunter
2019-11-03 17:19:37


z-Hunter> Привет всем!

Привет

z-Hunter> Поскольку Cutiefeed ужасен, и только из-за него так и не смог заставить себя регулярно юзать IDEC, попытался запустить Цезий.

Ты юзал старую сборку для винды с сайта? Она несколько релизов не обновлялась вообще (и не обновляется до сих пор) по одной простой причине - у меня нет винды.

Актуальный Cutiefeed всегда лежит на Гитхабе, однако пашет нормально только на линуксах. Он, конечно, ужасен, но уже получше :)

Давно хочу переписать всё это дело на другом тулките и сделать дизайн как в IDEC Mobile, но постоянно сталкиваюсь с трудностями и так и не могу сделать какой-то рабочий прототип.

+++ Отправлено через IDEC Mobile
+++ GNU/Linux, Android, physics, MLP:FIM

# Re: Запустить Caesium под Виндой
std.club
z-Hunter(syscall,10) — btimofeev
2019-11-03 16:19:21


>Напрямую его не запустишь в винде. Можно запустить через cygwin

А есть где-то какой-то FAQ, как, не вдаваясь в детали, запустить через Cygwin?

# Re: Запустить Caesium под Виндой
std.club
btimofeev(tavern,13) — z-Hunter
2019-11-03 06:14:37


Напрямую его не запустишь в винде. Можно запустить через cygwin, это такое unix-окружение для винды. Либо в 10 есть некоторый слой совместимости с линуксом https://docs.microsoft.com/ru-ru/windows/wsl/install-win10, там наверное будет работать.

# Запустить Caesium под Виндой
std.club
z-Hunter(syscall,10) — All
2019-11-02 22:19:00


Привет всем!

Поскольку Cutiefeed ужасен, и только из-за него так и не смог заставить себя регулярно юзать IDEC, попытался запустить Цезий. К сожалению, ничего не понимаю в Питоне, просто скачал его последнюю версию и натравил на caesium.py . А оно ругается:

>Traceback (most recent call last):
> File "E:\dev\caesium-master\caesium.py", line 3, in <module>
> import curses, os, urllib.request, urllib.parse, base64, codecs, pickle, time, >subprocess, re, hashlib, webbrowser, locale
> File "D:\Dev.dir\Python3\lib\curses\__init__.py", line 13, in <module>
> from _curses import *
>ModuleNotFoundError: No module named '_curses'

Может быть кто-то знает, как умилостивить питона? Сорри если оффтоп, не знаю куда писать.

# Re: С.Лем о творчестве
std.club
vmg(syscall,52) — Peter
2019-10-02 07:03:14


> Все романы типа «Солярис» написаны одним и тем же способом, который я сам не могу объяснить…
Подходящий способ. Ведь, интереснее сочинять, когда сам не знаешь, что будет дальше.

# С.Лем о творчестве
std.club
Peter(syscall,1) — All
2019-09-28 12:35:29


> Все романы типа «Солярис» написаны одним и тем же способом, который я сам не могу объяснить… Я и теперь ещё могу показать те места в «Солярис» или «Возвращении со звёзд», где я во время писания оказался по сути в роли читателя. Когда Кельвин прибывает на станцию Солярис и не встречает там никого, когда он отправляется на поиски кого-нибудь из персонала станции и встречает Снаута, а тот его явно боится, я и понятия не имел, почему никто не встретил посланца с Земли и чего так боится Снаут. Да, я решительно ничего не знал о каком-то там «живом Океане», покрывающем планету. Всё это открылось мне позже, так же, как читателю во время чтения, с той лишь разницей, что только я сам мог привести всё в порядок.

-- С. Лем. "Моя жизнь"

# Re: А то, что так тихо...
std.club
Peter(syscall,1) — Difrex
2019-09-02 15:01:31


> Про то, как устроен мониторинг у меня на проекте я затирал тут, если интересно: https://youtu.be/ouloiciOlqc?t=1210 :)

Забавно, развиртуализация. :)

P.S. Теперь можно сказать, что WG играл в мои игры (если ты играл в INSTEAD). мухахаха!

А если серъезно, похоже в Беларуси WG -- неплохое место для айтишников.

# Re: А то, что так тихо...
std.club
Difrex(dynamic,1) — around
2019-09-02 14:18:36


Отвечал тут: ii://Dvuym2sUg7ZceZRymAj8

Обсуждение размазалось по нескольким эхам, лучше читать в конце этого треда(который ты стартанул :)), https://dynamic.lessmore.pw/thread/53be9048-45ae-4310-8f6a-77d5f540387b

Про то, как устроен мониторинг у меня на проекте я затирал тут, если интересно: https://youtu.be/ouloiciOlqc?t=1210 :)

# Re: А то, что так тихо...
std.club
around(syscall,51) — Difrex
2019-09-02 13:25:04


Difrex> Zabbix это такой трэш. Чтож все на нем сидят? Из-за мышкотыкательного гуя?

Альтернативы? Кактус? Нагиос? Обсервиум?

+++ Caesium/0.4 RC1

# Re: А то, что так тихо...
std.club
vit01(mira, 1) — Difrex
2019-08-30 17:52:37


>> И все сервисы Prometheus после установки сразу торчат на внешний сетевой интерфейс
Difrex> Конфиг поправить не проблема

Конфиг успел ещё после установки поправить, но просто обидно, что такой дефолт. В новостях то и дело проскакивает какой-нибудь скандал, что внутренние базы МВД утекают или мобильных операторов из-за открытого во внешнюю сеть и ненастроенного elasticsearch.

>> Предлагают настраивать reverse proxy
Difrex> Ну дык, ставишь Nginx и закрываешь, как тебе нужно.

Спасибо за подсказку, завёл кое-как с нужными настройками. И это было подольше 10 минут :)

Ещё в конфиге пришлось делать фетчинг по basic auth, чтобы уж совсем безопасно было.

Жаль, что в документации не сделали приличное разъяснение и уже готовые примеры (может быть, даже не на nginx, а на ещё более лёгком софте). А то желание "прикрыть зад" системе, наверное, самое первое, что приходит в голову

-----

Настроил Grafana с крутой панелью сразу для двух серваков и думаю, как теперь сделать оповещения нормально

Либо использовать alertmanager, либо внутренние оповещалки в Grafana. Что лучше, пока не знаю

В Zabbix были преднастроенные шаблоны для уведомлений, типа "если оперативка занята на 90% или больше, то это плохо". Там даже срабатывания были, когда /etc/passwd менялся на сервере, что мне лично не было нужно, но кому-то - вполне. Всё что оставалось - это просмотреть изкоробочные условия и подправить слегка под свои предпочтения. То есть чтобы, например, при 80% занятой ОЗУ срабатывало, а не 90.

Для node_exporter так и не нашёл какого-то общего стандартного набора правил, который покрывал бы максимум юзкейсов. Поэтому, вероятно, придётся писать свои с нуля.

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

+++ Отправлено через IDEC Mobile
+++ GNU/Linux, Android, physics, MLP:FIM

# Re: А то, что так тихо...
std.club
Difrex(dynamic,1) — vit01
2019-08-29 10:10:27


> И все сервисы Prometheus после установки сразу торчат на внешний сетевой интерфейс
Конфиг поправить не проблема

> Мы считаем, что все метрики - это публичные данные
Обычно там действительно нет никаких секретных данных.

> Предлагают настраивать reverse proxy
Ну дык, ставишь Nginx и закрываешь, как тебе нужно.

cat > /etc/default/prometheus <<EOF
ARGS="-web.listen-address=localhost:9090"
EOF

cat > /etc/default/prometheus-node-exporter <<EOF
ARGS="-web.listen-address=localhost:9100"
EOF

htpasswd -c /etc/nginx/.htpasswd my_user
chown www-data /etc/nginx/.htpasswd
chmod 400 /etc/nginx/.htpasswd

cat > /etc/nginx/sites-available/my_prom.conf <<EOF
upstream prom {
  server localhost:9090;
}

server {
  listen my-prom.example.com:443;
  server_name my-prom.example.com;

  ssl on;

  ssl_certificate        /etc/letsencrypt/live/my-prom.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/my-prom.example.com/privkey.pem;

  location / {
    proxy_pass http://prom;
    auth_basic               "My Prometheus server";
    auth_basic_user_file /etc/nginx/.htpasswd;
  }
}

cd /etc/nginx/sites-enabled
ln -s ../sites-available/my_prom.conf
systemctl restart nginx

5 минут на настройку =)

# Re: А то, что так тихо...
std.club
vit01(mira, 1) — Difrex
2019-08-28 21:46:49


Difrex> Будут вопросы -- обращайтесь :)

Почитал документацию, установил и потыкал, вещь крайне прикольная и интересная.

Но есть один большой и жирный минус - защита данных. Из коробки там не то что никакого https, даже опции "поставить пароль" нету. И все сервисы Prometheus после установки сразу торчат на внешний сетевой интерфейс, что, как по мне, просто дикость.

В доках говорится: "Мы считаем, что все метрики - это публичные данные, а если у вас как-то иначе, то это уже не наши проблемы".

Предлагают настраивать reverse proxy, глушить всё фаерволом или извращаться какими-нибудь другими способами. Что тут делать - пока хз

+++ Отправлено через IDEC Mobile
+++ GNU/Linux, Android, physics, MLP:FIM

# Re: А то, что так тихо...
std.club
vit01(mira, 1) — Difrex
2019-08-28 16:14:35


Difrex> Говорит, что у ГНУ есть свой какой-то софт для анонимных платежей в любой валюте и это не блокчейн.
Difrex> Что это, может знает кто?

https://www.opennet.ru/opennews/art.shtml?num=46664

https://taler.net

Это типа self-hosted аналог Paypal, если я правильно понял. Туда в бэкэнд можно добавлять поддержку как обычных денег, через банки, так и крипты вроде битка и.т.п.

+++ Отправлено через IDEC Mobile
+++ GNU/Linux, Android, physics, MLP:FIM

# Re: А то, что так тихо...
std.club
Difrex(dynamic,1) — Peter
2019-08-28 13:32:21


> Что сказал дедушка Столлман? :)
То же что и всегда говорил: четыре основные свободы, проприетарщина -- плохо, ГНУ СЛЭШ ЛИНУКС, про то, что подписки(нетфликс, и.т.д)
это хрень, что DRM зло. Высказал свое отношение к Биткоину -- это свободный софт, значит, хорошо. Но пользоваться он им не хочет, т.к. он
недостаточно анонимен, как наличка. Говорит, что у ГНУ есть свой какой-то софт для анонимных платежей в любой валюте и это не блокчейн.
Что это, может знает кто?

Заполучил автограф на ноут ^_^

Хреновые фотки: https://cloud2.difrex.ru/index.php/s/Qgt2rPv7t3ga2Pa

# Re: А то, что так тихо...
std.club
Peter(syscall,1) — Difrex
2019-08-28 12:32:28


> Будут вопросы -- обращайтесь :)

Что сказал дедушка Столлман? :)

# Re: А то, что так тихо...
std.club
Difrex(dynamic,1) — Andrew Lobanov
2019-08-28 11:46:32


Так, я вернулся с лекции Столмена, теперь могу ответить сразу и тебе и Виктору :).
По поводу того, чем мониторить. Самый легкий вариант -- это Prometheus+Alertmanager.
Самый простой сетап для получения системных метрик: поднимаешь node exporter(он собирает все с линукса), прометеем собираешь метрики с него, по определенным условиям(например, free_memory_mb{host="f.q.d.n"} < 200) отправляется событие в алертменедржер, а у него из коробки есть почта, вебхуки и.т.д. При желание к этому наипростейше прикручивается Grafana, в которой делаешь дашборды с графиками; там тоже есть алертинг, кстати.

Свои метрики предоставлять тоже очень просто, т.к. формат простой и свободный можно писать на чем угодно.
Сама экспортируемая метрика выглядит так:
# HELP idec_messages example metric
# TYPE idec_messages gauge
idec_messages{echo="ii.test.14"} 0.0

Ну, т.к. это все написано на Go, то к ресурсам не требовательно.

Ссылки:
* Prometheus https://github.com/prometheus/prometheus
* Alertmanager https://github.com/prometheus/alertmanager
* Node exporter https://github.com/prometheus/node_exporter
* Доки https://prometheus.io/docs/introduction/first_steps/

Будут вопросы -- обращайтесь :)

# Re: А то, что так тихо...
std.club
Andrew Lobanov(tavern,1) — Difrex
2019-08-27 11:04:47


Difrex> Zabbix это такой трэш. Чтож все на нем сидят? Из-за мышкотыкательного гуя?

Только поэтому у меня его нет. Но альтернативы особо я не искал. Гуй и графики мне ни к чему, а вот оповещалку в почту хотя бы было бы неплохо.

Если есть что по теме посоветовать, то буду рад, хотя на "новом" железе у меня больше мускул по OOM не падает %)

# Re: мониторинг
std.club
vit01(mira, 1) — Difrex
2019-08-23 16:23:40


Difrex> Zabbix это такой трэш. Чтож все на нем сидят? Из-за мышкотыкательного гуя?

Да, как минимум, из-за красивого гуя
Мне, правда, zabbix не нравится сложностью в настройке и перегруженностью всякой фигнёй запутывающей, но в конце концов выглядит это всё приятно

Если у тебя есть что посоветовать удобнее и проще, то рассказывай давай

+++ Отправлено через IDEC Mobile
+++ GNU/Linux, Android, physics, MLP:FIM

# Re: А то, что так тихо...
std.club
Difrex(dynamic,1) — around
2019-08-23 15:46:49


Zabbix это такой трэш. Чтож все на нем сидят? Из-за мышкотыкательного гуя?

# Re: А то, что так тихо...
std.club
around(syscall,51) — vit01
2019-08-23 07:30:28


around>> Есть у нас сервачок, на котором стоит udpxy, который берёт из нашего мультикаста потоки и транслирует их в юникаст.
around>> Вчера выяснилось, что с начала августа уже не транслирует =)
around>> Причина даже не в том, что место кончилось, а в том, что udpxy.log достиг размера в 2048 Mb. После чего сама софтина запускается, но не работает.
vit01> На такой случай нужно настраивать систему мониторинга. Это всегда избавляет от геморроя и всяких граблей по обслуживанию сервака.

Повторюсь, места там полно было. А вот logrotate настроил после этого, да =(

vit01> Когда настроил Zabbix, жить стало спокойнее. И если так случается, что заканчивается место на диске, возрастает нагрузка на проц, система свопится или упал какой-то сервис, то мне сразу же в течение двух минут летит уведомление. И не надо ничего делать самому.

Да есть у меня zabbix, что ж я, совсем конченый? =)

+++ Caesium/0.4 RC1

# Re: А то, что так тихо...
std.club
vit01(mira, 1) — around
2019-08-22 20:13:10


around> Есть у нас сервачок, на котором стоит udpxy, который берёт из нашего мультикаста потоки и транслирует их в юникаст.
around> Вчера выяснилось, что с начала августа уже не транслирует =)

around> Причина даже не в том, что место кончилось, а в том, что udpxy.log достиг размера в 2048 Mb. После чего сама софтина запускается, но не работает.

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

Когда настроил Zabbix, жить стало спокойнее. И если так случается, что заканчивается место на диске, возрастает нагрузка на проц, система свопится или упал какой-то сервис, то мне сразу же в течение двух минут летит уведомление. И не надо ничего делать самому.

+++ Отправлено через IDEC Mobile
+++ GNU/Linux, Android, physics, MLP:FIM

# Re: А то, что так тихо...
std.club
Peter(syscall,1) — around
2019-08-22 10:01:05


> Я вчера на похожие грабли наступил.

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

# Re: А то, что так тихо...
std.club
around(syscall,51) — Peter
2019-08-22 09:52:22


>> Что было то?
Peter> Место на диске кончилось. :(

Я вчера на похожие грабли наступил.
Есть у нас сервачок, на котором стоит udpxy, который берёт из нашего мультикаста потоки и транслирует их в юникаст.
Вчера выяснилось, что с начала августа уже не транслирует =)

service udpxy restart ничего не дал. ps -aux | grep udpxy показывает, что всё запущено, netstat -tunlp - что всё слушает там, где ожидается. Но ничего не перегоняется.

Причина даже не в том, что место кончилось, а в том, что udpxy.log достиг размера в 2048 Mb. После чего сама софтина запускается, но не работает.
Ради интереса удалил несколько строк, чтобы стало 2047 - заработало, но ровно до момента, пока лог не достиг 2048.

+++ Caesium/0.4 RC1

# Re: А то, что так тихо...
std.club
around(syscall,51) — Peter
2019-08-22 09:52:22


around>> ...это нормально? Или у меня всё поломалось?
Peter> И все таки поломалось. Снова битые счётчики. Попробую понять в чем дело.... Первый раз за насколько лет. Какая то ерунда.

Я как чувствовал =)

+++ Caesium/0.4 RC1

# Re: А то, что так тихо...
std.club
around(syscall,51) — vit01
2019-08-22 09:52:22


around>> ...это нормально? Или у меня всё поломалось?
vit01> Это нормально.
vit01> Просто либо нет тем для разговора, либо нет времени на развёрнутые посты.
vit01> Но мы всё читаем

ok =) а то я волнуюсь =)

+++ Caesium/0.4 RC1