Холиварофорум

Не все, что говорят на Холиварке — правда!

Вы не вошли.

#1 2019-10-19 17:22:03

Анон

[Левел-ап][Игры][YesCom] Да как так

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

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

Скрытый текст

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

Отредактировано (2021-01-02 20:40:41)

#2 2019-10-19 17:24:22

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Итак, когда анон решился на это безумство, самой первой проблемой стал вопрос в чем же, собственно, начать делать игру. Прочие игры этого типа анон спокойно вскрывал по давним инструкциям, сохранял все в одном txt и читал когда придется и в чем придется. С, собственно, написанием глодала мысль, что не может все быть так просто. Что должен быть какой-то подвох. Поэтому первые несколько сцен анон написал в WordPad.  :facepalm:

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

Как вы можете догадаться, строки в WordPad не нумеруются.  :smoke:

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

Как выяснилось, большинство предпочитает использовать Notepad++, в который можно загрузить поддержку choicescript. Для анона, не избалованного программерским образованием, все имело вау-эффект, начиная с выделения цветом команд и отделения их от обычного текста. А уж T9-образный автоматический подбор команд и переменных по первым буквам и вовсе казался слезами богов.

Но в целом от Notepad у анона оставалось ощущение забивания гвоздей микроскопом, поскольку возможных функций и свистоперделок было дофига, но анон откровенно ссал всем этим богатством пользоваться. И спустя еще пару недель нашел CS IDE (ChoiceScript IDE, оно же миленькое seaside) - инструмент, специально созданный под choicescript. Сиасайд в глазах анона выгодно отличался простым интерфейсом, наличием поддержки choicescript по умолчанию, а помимо этого еще имел проверку орфографии, пусть и достаточно ограниченную. Так что с тех пор анон пользуется этой программой, хоть иногда и тоскливо вздыхает по подбору перменных, особенно когда надо ввести какую-нибудь *set апотомонипоебались true

Отредактировано (2019-10-19 17:25:20)

#3 2019-10-20 10:59:17

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

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

Игра подумала и выдала одну сплошную простыню без статчеков и прочего, плюнув следом ошибкой в выборе.  :smoke:

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

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

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

#4 2019-10-20 23:10:06

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

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

В большинстве случаев в играх на choicescript у вашего гг будут так называемые парные статы. Т.е. вам придется выбирать, носит ли ваш гг трусы или же крестик. Выглядит эта хрень вот так:
AB.1571598662.png

Исходя из вида шкалы можно подумать, что создано две переменных: переменная А и переменная В, которые в совокупности дают 100% и изменяются всегда парно. А вот нихуя. Формально при такой раскладке в коде существует только переменная А. Переменной В нет вообще. Ее именем всего лишь назван второй конец шкалы со значением 100-A. Как выяснилось, это довольно частая ошибка у новичков, и находят ее в основном уже после недоуменного "эй, а почему мои статы не меняются" от тестеров.

Еще в процессе создания шидевры исполнил наконец свою давнюю мечту: сделал изменение статов при помощи простых чисел, а не процентным. Потому что в 99% игр изменение будет именно процентным, и это бесит меня просто до кровавых анончиков в глазах. Потому что если стат сперва уменьшится на 10%, а потом увеличится на 10%, то он не вернется к первоначальному значению, он будет меньше. НЕСПРАВЕДЛИВОСТЬ.

Скрытый текст

Еще из наблюдений за ЦА игроками и читателями с некоторым удивлением обнаружил сравнительно большое количество перфекционистов и контрлфриков. Может в целом по палате их и не так уж много, но все равно больше, чем я ожидал увидеть. Выражается это в том, что если какой-то стат будет накопительным (изменяется от 0 до минимум 100, не парный), то эти люди будут любыми правдами и неправдами стараться довести этот стат до максимума. Или до нуля, если стат плохой. Это не плохо, но за этим крайне весело наблюдать. Например, сейчас анон с попкорном следит за двумя ситуациями. В первой автор серии в одной из последних книг внезапно спрятал тот самый стат под вопросом, за которым усердно гнались игроки. Т.е. стат есть, он меняется, он копится, но ~3/4 книги его не видно, причем это обусловлено сюжетом. Мне кажется, что без залезания в код его невозможно сохранить на 100%. И теперь мне очень интересно, что этот тролль сделает со статом в дальнейшем. Во второй ситуации в другой книге стат под вопросом врооооде как хороший, к тому же называется точно так же, как стат из первого примера. Но вокруг слишком много намеков, что этот типа хороший стат может привести к совсем нехорошим последствиям и концовкам.

#5 2019-10-21 02:31:59

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

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

#6 2019-10-21 20:39:23

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Анон пишет:

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

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

#7 2019-10-23 09:50:08

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

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

В большинстве игр в самом начале игроку предлагается остановиться@подумоть, если выбранное имя совпадает с именем какого-нибудь уже существующего персонажа. Фича, в принципе, логичная и нужная: если хочется, чтобы уникальная снежинка была уникальной, то тезки в нпс радовать не будут, да и путаницы кто на ком стоял, опять же, избежать нужно. Плюсом можно проломить этими проверками четвертую стену. Минусом тут будет основная загвоздка проверок переменных, значение которых вводится игроком, а не выбирается из доступных вариантов: слишком. много. возможностей. В одной из читаемых аноном серий в определенный момент персонаж играет в детектива, и название улики/доказательства порой нужно как раз вводить от руки. Так вот, на одну такую улику там приходилось порядка двадцати возможных вариантов того, как эту штуку назвать. И то, во время бета-теста выяснилось, что даже этого количества людям не хватало: были жалобы, что ввели, вроде как, подходящее слово, но игра его не распознала.

И, учитывая как здесь применяются функции or и and, нужно либо вводить одну строку с if на один вариант, либо превращать проверку в сраную матрешку, где среди болота скобок будут погребены заяц в шоке и смерть Кощея. И я не уверен, являются ли заглавные и строчные буквы разными символами в рамках кода. Надо будет это потестить. Если не являются, то астрологи объявят неделю чистки, количество скобок сократится вдвое.

В такие моменты мне иногда вспоминается аргументация создателей Fallen London на тему того, почему концовки амбиций в их списке дел находятся на предпоследнем месте: делать сюжетку, которую не увидит 3/4 игроков, не нужно. Не согласен с этим, т.к. я все еще жду концовку Немезис, черти, где мой катарсис? я лично как игрок как раз очень люблю все эти неочевидные детали, которые открываются только в определенных ситуациях.

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

Отредактировано (2019-10-23 10:02:51)

#8 2019-10-24 08:16:13

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Забавное наблюдение: значительная часть авторов редко использует функцию *fake_choice  :think:
Дело в том, что у стандартной функции *choice есть один недостаток: каждый из доступных вариантов выбора должен заканчиваться переходом к заголовку. Причем этот заголовок может быть вообще один на все варианты, тут важен сам факт перехода функцией *goto. Т.е. в коде это будет выглядеть как-то так:

*choice
  #Траляля
    *goto заголовок_раз
  #Трулюлю
    *goto заголовок_раз
  #Уляля
    *goto заголовок_два

*label заголовок_раз
Да ты поехавший.

*label заголовок_два
Улала!

Без *goto игра будет слать вас нахрен, ссылаясь на ошибку в функции.

Вместе с тем, иногда бывает нужно, чтобы после всех вариантов выбора шел один и тот же абзац текста. Можно, конечно, поставить переход на один и тот же заголовок, но на мой взгляд куда проще использовать функцию *fake_choice. Она делает все то же самое, что и обычный *choice, может ветвиться в бесконечность и т.д., но заголовки для нее не обязательны. Их можно поставить, но при отсутствии перехода эта функция не будет слать вас нахрен, она автоматически переведет вас на следующий в очереди текст.

*fake_choice
  #Траляля
    *goto заголовок_раз
  #Трулюлю
    *goto заголовок_раз
  #Уляля

*label заголовок_раз
Да ты поехавший.

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

Еще одна почему-то редко используемая функция - *if not(). Она проверяет значение переменной и выдает результат, если это значение - любое кроме указанного. Например:

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

*if класс="вор"
  Завидев вас, трактирщик подрывается с места и бежит бить вам лицо.
*if not(класс="вор")
  С недоумением вы смотрите на то, как трактирщик внезапно подрывается с места и бежит бить вашему другу лицо.

Альтернативой было бы:

*if класс="вор"
  Завидев вас, трактирщик подрывается с места и бежит бить вам лицо.
*if класс="файтер"
  С недоумением вы смотрите на то, как трактирщик внезапно подрывается с места и бежит бить вашему другу лицо.
*if класс="клирик"
  С недоумением вы смотрите на то, как трактирщик внезапно подрывается с места и бежит бить вашему другу лицо.
*if класс="маг"
  С недоумением вы смотрите на то, как трактирщик внезапно подрывается с места и бежит бить вашему другу лицо.

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

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

#9 2019-11-04 18:09:42

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Прасохранения.

Точнее, про то, как анон однажды заебался на пустом месте.

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

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

Отредактировано (2019-11-04 18:11:36)

#10 2019-11-05 23:56:12

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

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

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

Еще один из внезапных тестеров недавно спросил, а есть ли чо в шидевре по романам, а то у него уже кандидат нарисовался. Анон от вопроса охуел вдвойне, поскольку чо по романам хоть и намечено, находится в настолько зайчаточном состоянии, что распознованию пока подлежать не должно. Да и тестер, вроде как пошел по пути, на котором нпс меньше, да и описание предмета воздыханий чот с текстом анона не совпадало. Когда все объяснили, ржал как последняя сволочь и над ситуацией, и над собой. Потому что тестер говорил про одного из полуантагонистов, который к тому же еще и животное-нёх, но в кадре на тот момент не появляется и потому таинственен. И потому что анон обычно сам такой, в том же The Passenger ныл на тему а чо Хантер не романсовая опция.  :lol:

Отредактировано (2019-11-06 12:21:41)

#11 2020-01-10 23:46:25

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Анон еще не помер, анон просто ленится  :please:

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

Анон окончательно заебся путать функции перехода между сценами и решил написать для себя шпаргалку. Для тестирования отпочковал новую папку с исходными болванками, создал тестовые файлы, прочел в вики страницу про первую функцию чуть сложнее простого *goto, впечатлился и написал тестовый код. Код миниатюрный: 9 строк, включая пресловутые переходы, 41 символ, включая команды. И попытался запустить этот тестовый кусок.

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

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

В общем, этим своим миниатюрным кодом на 9 строк анон создал бесконечный цикл.

Скрытый текст

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

Итак, шпаргалка.

*goto - перенос к любому загловку внутри одного файла. Между файлами не переносит, заголовок обязателен.

*goto_scene - перенос к началу любого файла. Если указать заголовок (*goto_scene название_файла заголовок), то перенесет не к началу, а к определенному заголовку внутри указанного файла.

Например

Скрытый текст

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

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

Эти две функции используются в основном для проверки капа статов, их округления и т.п. Возврат осуществляется через функцию *return.

Например

Скрытый текст

Отредактировано (2020-01-11 14:24:55)

#12 2020-01-11 18:42:02

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Анон пишет:

В такие моменты мне иногда вспоминается аргументация создателей Fallen London на тему того, почему концовки амбиций в их списке дел находятся на предпоследнем месте: делать сюжетку, которую не увидит 3/4 игроков, не нужно. Не согласен с этим, т.к. я все еще жду концовку Немезис, черти, где мой катарсис? я лично как игрок как раз очень люблю все эти неочевидные детали, которые открываются только в определенных ситуациях.

Псссст, они заканчивают Амбиции: http://www.failbettergames.com/wp-conte … ill-v3.png

#13 2020-01-11 19:22:13

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Анон пишет:

Псссст, они заканчивают Амбиции:

Ахуеть  :panic2:
С другой стороны, я помню, насколько различались плановая и фактическая даты предпоследнего этапа Light Fingers  :lol:
Спасибо за отличную новость, анон  :heart2:

Отредактировано (2020-01-11 19:23:31)

#14 2020-01-19 15:40:12

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

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

Больше года назад в одной из на тот момент новых книг анон наткнулся на удивительное: текстовая переменная выводилась побуквенно  :o  Тогда это было использовано для драматичного заикания вроде "Ч-Чарнейм!", и вызывало у анона, никогда такого не видевшего в чужом коде, реакцию "эть, шайтан, как ты это сделал?!"  =D Позже этот же автор использовал эту же фичу для переделки имени персонажа (все та же вводимая вручную переменная) в прозвище-сокращение.

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

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

Эта фича, как и многие ее вариации, была описана в статье "вывод переменных" на чойзскрипт вики, которую анон, конечно же, не читал, ведь все способы вывода он уже увидел и понял на чужих примерах, зачем теорию читать  :facepalm:

В общем, обычный вывод переменной выглядит так:

${переменная}

Если переменная текстовая, можно вывести ее отдельные символы:

${переменная#номер_символа}

Например, ${переменная#1} выводит первую букву.

Есть бонусная штука length(переменная), которая принимает значение количества символов в переменной. Штука числовая и потому может заменить собой номер символа в ${переменная#номер_символа}. Не, ну а вдруг нужна будет последняя буква слова.


Оффтопное про Fallen London. Я джва года (больше) ждал концовку Немезис, и теперь меня распирает.

Скрытый текст

#15 2020-02-07 09:27:15

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

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

Как я об этом узнал? В одной из демок, которую я неспешно читал в ночи, сперва раздался тихий звук капающей воды, а потом при перелистывании страницы что-то внезапно и громко дзынькнуло.  :fuuu:

Почему я вспомнил об этом сейчас? Потому что я нашел картинку, которая отражает.

Скрытый текст

В общем, вставить звук можно командой *sound название_файла. Файл должен лежать в папке с остальной игрой. Вики еще предупреждает об авторском праве, но я надеюсь, что о нем и так помнят.

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

И я вас умоляю, ставьте хоть предупреждения о звуке в текстовой игре.  :sadcat:

#16 2020-02-07 13:20:17

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Анон пишет:

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

Анон, а что это была за игра со звуком, если не великая тайна?

#17 2020-02-07 15:37:22

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Анон пишет:

Анон, а что это была за игра со звуком, если не великая тайна?

HCF:Redux
Это випка (work in progress, игра в процессе написания), которая не обновлялась с октября. И предыдущая версия этой игры была лучше  :sadcat:

#18 2020-02-07 15:40:02

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Спасибо.  :heart:

#19 2020-02-08 17:20:06

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

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

Не публикуют - в смысле не от имени CoG/HG. Еще полувнезапное открытие: если игра гендерлокнутая (нельзя выбрать пол главного героя), то она будет публиковаться только в HG, а в CoG не будет, независимо ни от чего.

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

#20 2020-02-08 17:32:26

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Охуеть как круто. Тоже хочу научиться, но боюсь, слишком тупой(

#21 2020-02-08 17:43:51

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Анон пишет:

Охуеть как круто. Тоже хочу научиться, но боюсь, слишком тупой(

Не бойся, анон.  :chearleader: По моим наблюдениям всегда, всегда найдется кто-нибудь еще тупее. Иногда это даже издавшийся автор  :lol:

#22 2020-02-12 09:16:38

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Про рейтинг.

Это слабо связано с кодом, на самом деле, но все еще касается процесса создания игры.

У CoG для обсуждений и демо "18+" есть отдельное гетто "Adult Category". Все темы с этим тегом закрыты от незарегистрированных пользователей и по умолчанию скрыты у зарегистрированных. Для доступа в гетто нужно зарегистрироваться и внести свой аккаунт в группу "Adult Readers". И основная проблема, блджад, в том, что ни на сайте чойсов, ни на их форуме, ни в правилах нет нормальной информации о том, с какого именно момента демо переносится в группу adult.

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

Часть авторов сразу публикует демки в гетто 18+ со всеми предупреждениями, даже если до нужного контента еще несколько недописанных глав. Вот так, например, выглядит список предупреждений в "Bright Eyes, Black Blood":

Trigger Warnings: Child abuse, blood, death, kidnapping, self-harm, discussions of rape, and relationships that can be interpreted as non-consensual. This is literally a game about slavery. 18+

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

Другая часть авторов выкладывает демки в общем доступе, просто ставя список предупреждений в начале темы и опционально в самой игре. Можно подумать, что раз в правилах упоминается только контент, связанный с сексом, то R и ниже подходят для общей группы. Но нихуя, в некоторых случаях там есть полноценное NC, но до тех пор, пока никто громко не жалуется, все считается в рамках приличий.

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

Пока что, вроде, было только два ле шкандала, связанных с возрастными ограничениями. Первый прошел мимо меня, т.к. то демо я не читал. Судя по упоминаниям, читатели просили убрать из игры про социопата/психопата (и с тегом янг адалт  :lol: ) контент про социопатию/психопатию, а то плащ жмёт. Но это мне Рабинович напел. Зато второй ле шкандаль наблюдал воочию и получил ушиб фейспалмом всего анона.

В общем, выкладывается демо к четвертой книге из серии. Ранее в программе были и убийства, и дети в заложниках, и упоминания опиума, и постельные сцены, и обломинго постельных сцен, и упоминание случившегося или не случившегося изнасилования, и самоубийство второстепенных персонажей. Предупреждение висит еще с самой первой книги, причем и в самой игре. Но обвиняли автора все это время только в мизогинии тумблер-стайл. Итак, выходит демо, в нем есть сцена, где оголодавший ребенок подбирает с пола и съедает раздавленное на куски яблоко. Читатели тыкают в сцену пальцем и громко кричат, что описание чот на эротику смахивает.  :smoke: Нет таких слов и мемов, чтобы описать выражение моего лица в тот момент. Даже курящий смайлик не передаёт всю гамму чувств и впечатлений. Надо отдать должное, тогда нашлись и те, кто тоже охуел от таких предъяв, ибо ту сцену можно было бы с натяжкой воспринять как эротику только если с самого начала целенаправленно читать ее как эротику, усиленно играя бровями и вставляя евпочя. И то на заднем плане раздавались бы крики "не верю!". Чсх, там буквально двумя страницами раньше была другая сцена, куда больше подходившая под обвинение в эротике. У голосивших даже уточняли, не перепутали ли они страницы. Нет, не перепутали.

Сразу после этого модераторы перенесли эту демку в гетто 18+. За голое яблоко. :smoke:

#23 2020-02-12 09:38:39

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

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

Люди очень странные, еще раз убедился, что создание любого, ЛЮБОГО контента - это минное поле.  :smoke: Спасибо, что поделился, анон!

#24 2020-02-12 10:54:37

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

Анон пишет:

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

сукаааа  :bu: у меня мозг сейчас завис

#25 2020-02-16 18:12:57

Анон

Re: [Левел-ап][Игры][YesCom] Да как так

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

Интереса ради решил попробовать Chronicler - еще одну программу, в которой можно писать на чойзскрипте наряду с сиасайд и Wordpad Notepad++. От остальных отличается предлагаемой визуализацией разветвления выборов.

Т.е. предполагается, что каждая глава в обработке будет выглядеть как-то так:

Скрытый текст

Анон, будучи любителем напихать в один кусок кучу *if пополам с многовариантной автозаменой, нервно хихикал, представляя, какую мочалку ему нарисует уже на одном только прологе. Ну, начало действительно было многообещающим:

Скрытый текст

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

Но пока анон предвкушал лабиринт, программа решила, что зачем усложнять, и просто расположила все абзацы один за другим, независимо от того, как они были друг с другом связаны и в каком порядке следовали друг за другом.  :fuuu:

Скрытый текст

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

Скрытый текст

К тому же выяснились два неприятных момента: в отдельную плашку выделялось абсолютно все. Начиная от текста и заканчивая долбанным page_break. Может, там, конечно, и были отдельные настройки на все это дело, но я искать их не стал. Вторым неприятным моментом было то, что программа, по всей видимости, рассчитана на код, где на каждый чих есть свой загловок и переход к этому заголовку. У меня с частым использованием *fake_choice где-то треть развилок завершалась тупиком, хотя в самой игре все беспроблемно переходит к следующему абзацу.

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

Подвал форума

Основано на FluxBB, с модификациями Visman
Доработано специально для Холиварофорума