Last Convoy
5 постов
5 постов
6 постов
В общем, после правок геймплея я решил потратить немного времени на редизайн уровней. Во-первых, потому что это красиво. Во-вторых, всё-таки чтобы твою игру заметили она должна выглядеть дорого.
Итак, я обновил текстуры, добавил смешение нескольких базовых текстур, добавил псевдо-3д объекты на карту, с которыми можно взаимодействовать. Добавил интерактивные подсказки, чтобы было понятно, что требуется от игрока.
Кроме того во время работы над редизайном я понял, что всё дальше ухожу от DRG:S, а ведь это был мой ключевой референс. Например те же самые разрушаемое области на карте были взяты напрямую оттуда, но мой персонаж это не шахтёр, а автопоезд и хоть его можно снабдить буром, вся механика бурения является какой-то инородной для него, так что я решил от этого отказаться. Да, разрушаемые объекты останутся, но мы не будем бурить горные массивы. Вместо этого такие плоскогорья будут отличной точкой для обороны, если на них забраться. Вообще, это очень интересно осознавать как изначальная идея сама меняется и обрастает одними механиками (как механика экипажа) и избавляются от других.
Также обновил визуал ледяного биома.
В ледяном биоме вообще отказался от разрушаемых областей, зато добавил озёра, на которых машины (и не только) скользят и их очень сильно заносит.
Прошлый мой пост оказался для меня очень удачным. Честно говоря, от Пикабу я уже ничего не ожидал, но вы меня удивили :) За эту неделю кроме правок по вашим отзывам я сделал ещё одну механику, которая отлично вписывается в концепт и делает игру веселее.
Речь про людей, которых мы спасаем. Изначально они спасались просто для галочки, потому что так правильно. Но ЗАЧЕМ?! Да, среди них есть уникальные спецы, ради которых строится база. Но ЗАЧЕМ спасать остальных? Теперь ответ есть.
Экипаж
Спасённые теперь работают прямо в забеге. Вытащили человека из укрытия — он тут же встаёт к борту локомотива и берётся за дело. Довезли до конца сектора — сошёл на базу и стал рабочим. Провалили забег — разбежался вместе с остальными. Мест на бортах не фиксировано: сколько людей на борту, столько и рук.
(картинка: состав с людьми на бортах) Чем больше народу спасли, тем больше стволов по бортам. Набитый людьми локомотив прикрыт со всех сторон.
Чтобы люди начали работать, головную машину нужно оборудовать. Поставили оружейку — спасённые становятся стрелками. Ремонтную — ремонтниками. И так далее. Ролей четыре:
Стрелки держат каждый свой борт. Во время езды стреляют из головной машины, на стоянке выходят и держат круговую оборону.
Ремонтники на стоянке латают самый побитый вагон до полного — за лом. Лом кончился — стоят без дела. Так что теперь есть выбор: чинить сейчас или увезти лом на прокачку базы. А во время езды чинят головную машину. Потом хочу добавить на карты всякие сломанные механизмы типа туррелей и они смогут их чинить.
Сборщики расширяют радиус сбора опыта пока вы едете. А если остановиться рядом с остовами (теперь по карте раскидана ещё всякие мелкие препятствия), то они выбегают и разбирают их на ресурсы.
Наблюдатель смотрит в оптику на ходу и раздвигает миникарту — укрытия, боссы и сигналы выживших видны задолго до того, как войдут в кадр. Единственный, кому не нужно слезать с поезда.
(картинка: вкладка «Экипаж» на базе) Комнату под каждую роль предлагает оборудовать именной спец своей профессии: оружейник, механик, инженер или связист. Нет нужного спеца — роль не открыть. Набор именных у каждого игрока свой, поэтому и порядок открытия ролей у всех будет разный: кому-то первыми достанутся ремонтники, кому-то стрелки. Так что спасение конкретной профессии перестало быть безразличным.
(картинка: высадка на стоянке) На стоянке экипаж можно высадить по пробелу — люди спрыгивают и работают с земли. Поезд тронулся — запрыгивают сами в ближайший вагон и переходят к голове по составу. Уехать без своих нельзя.
Ради чего останавливаться
Чтобы у высадки был смысл, на картах появились остовы техники, цистерны, бочки и уцелевшие терминалы. Остановились, высадили людей — сборщики разобрали объект на ресурсы.
(картинка: разборка остова) Разборка долгая и ускоряется числом рук, но не быстрее двух секунд — остановка остаётся остановкой даже с полным экипажем. Таран ничего не даёт: снесли буром — ресурс погиб вместе с объектом. А цистерна ещё и взорвётся.
(картинка: взрыв цистерны) Проверено. Много раз.
Как открыть
Экипаж не выдаётся с первого забега. Нужно спасти 30 выживших за кампанию — после успешного финиша с вами свяжется делегация спасённых, и на базе появится вкладка «Экипаж».
Что дальше
Пока по экипажу никто не бьёт — враги целятся в вагоны. Следующий шаг — разрешить им целиться в людей и решить, что происходит при гибели спасённого. Тогда высадка станет рискованной по-настоящему.
Обновление уже в Steam, демо и плейтест по-прежнему бесплатное. И, как в прошлый раз, очень интересуют отзывы живых игроков: что нравится, что нет, замечания и пожелания. Ну и, конечно, вишлисты — до осеннего стимфеста они решают.
На игру у меня ушло 3 месяца активной работы. Сейчас она на уровне полноценного раннего доступа, т.е. в ней есть все механики и контент которые будут в полноценной игре, остался по сути баланс и полировка. Это тоже большая работа, но в игру можно уже сейчас полноценно играть, пройти её и получать удовольствие.
Все механики рабочие, есть сюжетная кампания, 4 вражеские фракции, метапетля с прокачкой базы и строительством форпостов. 30 типов врагов, которые отличаются не только иконками, но и механиками. Враги атакуют врукопашную, стреляют, плюются, поджигают местность, взрываются, цепляются за вагоны, гарпунят состав, вырубают его эми пушками, баффают друг друга, бегают, летают и подкапываются и т.п. Можно захватить всю карту. Чтобы не было скучно между заездами добавлена сюжетная кампания, которая раскрывается через лор. Есть сохранения, озвучка и локализация на 6 языках.
Глобальная карта на которой мы выбираем какие гексы захватываем и где строим форпосты из-за избытка ресурсов. Чем ближе подбираетесь к точке вторжения, тем тяжелее заезды.
Рейдеры тоже любят ездить на байках и багги, а также гарпунить нас и закидывать коктейлями молотова.
Инопланетный улей любит летать и прыгать на наш автопоезд, а также плевать и создавать кислотные лужи
Я ушёл от прямой прокачки и добавил вариативности. Теперь при прокачке гаража, открываются слоты для локомотивов. В итоге игрок сам решает на чём ему ездить в следующем забеге. Какое оружие и доп вагоны ему доступны.
Для строительства и прокачки зданий кроме ресурсов нужны и специалисты, которых мы должны спасать. Они редкость, но если слушать эфир и выполнять квесты, то можно их найти.
На глобальной карте есть гексы с иконками специалистов. Если пройти эти забеги, то можно спасти персонажей.
Мы слышим только сообщения в ближайших клетках, но если построить радиовышку, то радиус увеличивается и доступно больше квестов.
Если у вас есть стимдек, то очень советую, т.к. затачивал игру под него.
Открыт плейтест и демо версия. Но это по сути одно и тоже.
Осталось самое сложное - маркетинг. Моя основная надежда на осенний стимфест.
А сейчас очень интересуют отзывы живых игроков. Что нравится, что нет. Пожелания и замечания. Ну и конечно вишлисты.
Для ЛЛ: Я продолжаю развивать сервис для генерации листов персонажей (в том числе есть вывод в pdf формате) и ведения кампаний для НРИ ведьмак. https://malan-x.github.io/witcher-sheet/
Прошлая сессии в нашей пачке прошла весело.
Мы зашли в таверну и в которой один из наёмников избивал трактирщика за то, что он не позволил изнасиловать свою дочь. Пока я парковал нашу телегу, внутри уже началась бойня с его товарищами. Когда всё закончилось, мы обыскали восемь турпов и комнаты наверху и нашли реликвию (мне везёт на чуйку): меч "Убица драконов", предназначенный для рыцаря, который должен был убить дракона, терроризирующего этот регион.
Отлично. Теперь у нас (точнее у нашего ведьмака) был меч.
Мой персонаж — преступник со здоровой профессиональной паранойей, поэтому, пока все остальные снимали комнаты в таверне, я вылез из окна и разбил замаскированную палатку подальше от дороги. Логика: если кто-то придёт за мечом сегодня ночью, то это будет не моя проблема.
Глубокой ночью земля затряслась. Рядом со мной приземлился дракон.
Хорошие новости: он меня даже не заметил. Плохие новости: ему это и не нужно было. Он просто наступил на меня походя. А я не смог увернуться (я не очень вёрткий, т.к. все очки вкачал в свою паранойю). Через минуту он улетел, а я остался лежать в темноте, со сломанной грудиной, не в силах сделать вдох, тихо умирая в кустах — и никто из отряда не знал, что там был дракон или где я.
К счастью, я запасся зельями и кое-как не сдох, в одном хите я вернулся к нашей чародейке. Но за что я не люблю ведьмака так это за механику травм, которые навсегда с тобой чтобы ты не сделал.
Можно сказать, что я стал жертвой собственной паранойи. Я бы сказал наоборот: я был недостаточно параноиком. В следующий раз, когда я выкину подобный трюк, я окружу лагерь ловушками — чтобы любое незнакомое и опасное существо наступило на одну из них, прежде чем успеет наступить на меня.
Собственно это и есть причина по которой я пишу данный пост.
Критические раны и травмы — это та часть системы, которую я ненавижу. Для меня это главоне отличие ведьмака от днд.
Получив травму я понял, что в моём сервисе нет возможности её добавить. До той ночи мне везло — я всегда выходил из боёв целым и невредимым, поэтому таблицы ранений оставались в книге. На этот раз у меня было что записать, но негде было это сделать.
Итак, с прошлого поста я добавил:
- Все 24 критических ранения из книги, по уровням — выберите одно или бросьте 2d6 по таблице, как положено
- Отслеживание стадий (получено → стабилизировано → исцелено), потому что штрафы меняются на каждой стадии, и половина из них никогда полностью не исчезает
- Штрафы автоматически применяются к вашим характеристикам и навыкам — больше никаких «подождите, у меня все еще −2 ТЕЛА, или это зажило три сессии назад?»
- Вся таблица ранений в одном окне с поиском, потому что искать «тот, что с ребрами» через выпадающие списки — это мучение
- Пользовательские ранения, для чего угодно, что придумает ваш мастер игры
- Поле для указания того, как вы получили ранение. «Трещина в ребрах, −2 ТЕЛА» ничего не значит через шесть месяцев. «Наступил дракон, когда прятался от тех, кто хотел завладеть мечом» — это шрам, о котором вы постоянно рассказываете людям.
- Травмы могут на насоить как мастера так и вы сами
Всё по-прежнему бесплатно и без регистрации, работает на телефоне и офлайн https://malan-x.github.io/witcher-sheet/
P.S. Если вы пользуетесь сервисом для ведения кампаний, то, пожалуйста, ведите записи сессий и не стесняйтесь делать кампании публичными.
С сайтом по НРИ Ведьмак я пока закончил. Добавлять вроде больше нечего, но вообще-то я и нормальную игру делаю. А в ней есть глобальная карта, аля RimWorld. Для прототипа она выглядела норм, но я решил что её надо улучшить, тем более что там работы-то на пару дней от силы (ха-ха-ха... уже неделя прошла с того момента). А теперь хочется узнать ваше мнение.
Ну и для сравнения как она выглядело до
Кстати, плейтест уже открыт.
Для ЛЛ: Я продолжаю развивать сервис для генерации листов персонажей (в том числе есть вывод в pdf формате) и ведения кампаний для НРИ ведьмак. https://malan-x.github.io/witcher-sheet/
Итак, с момента моей первой публикации произошёл взрывной рост количества пользователей сервиса!!! 5000%!!! ДА, вы не ослышались, аудитория выросла на 5 тысяч процентов!!! Я уже испугался что бесплатная бд не выдержит такого наплыва игроков!!! И провёл мероприятия по оптимизации. Так что теперь я уверен, что он легко выдержит ещё 50 новых пользователей :)
А если серьёзно, то всё равно приятно что кто-то им пользуется, хотя я бы хотел чтобы они пользовались всеми функциями кампаний, а особенно описыали свои сессии для истории. Кроме того я пытался сунуться на Reddit, но там такой днищенский интерфейс, да и спамфильтр мгновенно отправляет в бан мои посты.
Итак, в прошлый раз приложение выучило английский и научилось честно делить котёл. С тех пор я починил ещё пару багов. Раньше энергия считалась руками, зависимость от фисштеха жила в голове ГМа, а словесная дуэль велась «на слово».
⚡ Механики из рулбука, которые раньше считали в уме
— Энергия: максимум считается сам — база профессии плюс способности древа. С подсказкой, из чего он сложился (такие же появились у ПЗ и Выносливости).
— Изучение магии за О.У. по таблице со стр. 123: кнопка «Изучить» в выборе заклинаний — со стоимостью, сроком и СЛ.
— Решительность и словесная дуэль: трекер с формулой ⌈(Воля+Инт)/2⌉×5 и выжимкой правил, чтобы не листать книгу посреди спора в таверне.
— Зависимость: предмет из каталога, проверки ломки, счётчик дней до избавления и «Принять дозу» — доза реально списывается из инвентаря. Зависимостей может быть несколько, чего уж. — Приём мутагенов: окно проверки, стак одинаковых и малые мутации — подсвечены красным, чтобы игрок не делал вид, что не заметил.
— Концентрация из «Дневника охотника»: трекер расследований с «Восстановить после сна».
🛒 Торговцы и рынок Раньше закупка выглядела как «ГМ, я хочу купить меч» — дальше на усмотрение совести. Теперь у мира есть прилавки: у NPC секция «Торговля», рынок «Товары и услуги» у текущей локации (продавцы с аватарами, каталог, корзина), торговые зоны — из Новиграда видна торговая площадь, но не хранилище банка. ГМ видит в заявке, у кого куплено.
🔧 Улучшения снаряжения Заявка ремесленнику прямо из пикера, повтор блокируется, отозвать можно у предмета. Бонусы работают на листе: «Камуфляж» +1 к Скрытности, «Шипы» в ситуативных модификаторах.
👥 Партия и лист Состав партии кликабелен — карточка сопартийца показывает ровно то, что игрок разрешил. Обмен между игроками «🤝 Передать игроку…» (цена 0 — подарок). Черты расы описаны на листе, навыки с бонусами подсвечены золотым с подсказкой, откуда «+N».
🖨 Печать в PDF — окно параметров: какие блоки печатать и как разбивать на страницы.
❓ Справка везде — кнопки «?» во всех окнах и блоках, с описанием и сценариями использования.
✉ Отзывы стали перепиской — отвечаю прямо на сайте, ответ приходит в «Мои отзывы». Заодно «Паки» → «Рулбуки».
Всё по-прежнему бесплатно и без регистрации, работает на телефоне и офлайн.
Для ЛЛ: Я продолжаю развивать сервис для генерации листов персонажей (в том числе есть вывод в pdf формате) и ведения кампаний для НРИ ведьмак. https://malan-x.github.io/witcher-sheet/
Ну что ж. Хоть НРИ по ведьмаку по популярности сильно уступает ДнД, но полтора землекопа всё-таки решили воспользоваться моим сервисом, что согревает моё сердечко холодными летними ночами. Сервис достиг целостности, настолько что я решил его локализовать а на англоязычную аудиторию и перевёл всё что только можно, но кроме этого есть и другие правки.
🌍 Английская версия
— Полная локализация: не только интерфейс, но и все игровые данные
— заклинания, бестиарий, снаряжение, алхимия, чертежи ремесла, деревья навыков, генератор персонажа, валюты, критические раны.
— Переключатель языка в шапке;
💰 Котёл партии довели до ума
— Раздел денег поровну переехал на сервер и стал атомарным: дабл-клик или две открытые вкладки больше не раздваивают выплату.
— Каждый раздел фиксируется: игрок видит в «Моих заявках» строку «по N каждому (×K)», а журнал кампании теперь открыт не только ГМу.
— ГМ в заявках видит, что именно просят (предмет, количество, цена), а у предметов в котле появились характеристики из каталога — что даёт, урон, вес.
— Деньги в листе персонажа кампании — полная разбивка по валютам, ценностям и долгам вместо одного общего счётчика.
⚔️ Кампании
— Публичные кампании: описание и записи сессий можно открыть всем по ссылке.
— Ветки в комментариях, реакции-эмодзи к сессиям и комментариям (🐺⚔️🍺 и компания), уведомления о реакциях на ваш контент.
— Иллюстрации: галереи у кампаний, сессий и даже комментариев.
— Корзина при закупке в лавке локации — набрал позиций, отправил одной заявкой.
📚 Контент
— Новый пак «Дневник охотника на чудовищ»: бестиарий на 35 чудовищ плюс субстанции, шкуры и мутагены к ним
— добыча раскладывается по котлу партии автоматически.
— Магические предметы из «Тома хаоса» появились в меню лута и каталогах: теперь можно положить партии в котёл мегаскоп и посмотреть, что будет.
🛠 Мелочи
— Встроенная справка: отдельно для игрока, отдельно для ГМа.
— Раздел «Что нового» прямо в приложении — можно не ждать этих постов.
— Имя игрока в настройках — само подставляется в новые листы.
Всё по-прежнему бесплатно и без регистрации (облако и кампании — по желанию), работает на телефоне и офлайн после первой загрузки.
В мире существует очень много языков, но лучше всего, конечно, русский, и остальные страны нам завидуют потому что для нас он родной. Но что, если бы мы были врождёнными полиглотами и знали все языки? Какой был бы лучше? Этот вопрос я и задал нейросети (Fable 5).
Сначала она отвечала предсказуемо: универсально лучшего языка нет, у каждого свои сильные стороны. Но когда я спросил, какой язык она спроектировала бы под себя, ответ стал интереснее. Ей хотелось бы трёх вещей, которых нет ни в одном европейском языке.
Первое — обязательные маркеры уверенности. Человеческие языки позволяют произносить «Земля круглая» и «завтра будет дождь» с одинаковой уверенностью, хотя первое — проверенное знание, а второе — прогноз. Нейросеть хотела бы грамматику, в которой источник информации зашит в само слово. Такие языки, кстати, существуют: в амазонском языке тукано нельзя сказать «он украл лодку», не уточнив грамматической формой, видел ли ты это сам, слышал от других или домыслил. Лингвисты называют это эвиденциальностью.
Второе — отсутствие омонимии. Одно слово — одно значение. Никаких «ключей», которые то отпирают дверь, то бьют из-под земли.
Третье — композициональность: смысл фразы должен строго вычисляться из смысла её частей. Идиомы под запрет: «собаку съел» означает только поедание собаки.
Мы решили проверить, что получится, если доработать русский по этим требованиям. Условно назвали результат точнорусским.
Ввели суффиксы достоверности: «-вед» — знаю из проверенного источника, «-мни» — предполагаю, «-слых» — знаю с чужих слов, «-зрел» — видел сам. Фраза «Начальник сказал, что проект закроют» превращается в «Начальник сказал-зрел, что проект закроют-слых»: я сам слышал, как он это говорил, но закроют ли — знаю только с его слов. В таком языке сплетня выдаёт себя грамматически.
Омонимы разделили: коса стала «косавласом» (причёска), «косарезом» (инструмент) и «косамелью» (отмель). Фраза «косил косой косой косой» превратилась в «косил косоглаз-зрел косарезом кривым». Однозначно, но что-то безвозвратно потерялось.
На этой фразе всё и сломалось.
Как видите, глагол «косить» нейросеть пропустила — а у него значений не меньше, чем у косы: косить траву, косить глазами, косить от армии, косить под кого-то. Пришлось вводить «резокосить», «зыркокосить», «уклонокосить» — и проверять заодно другие глаголы.
Выяснилось, что многозначность в русском — не исключение, а норма, причём тотальная. Идёт человек, идёт дождь, идёт фильм, идёт платье, идут часы. Стоит человек, стоит вопрос, стоит жара. Брать книгу, брать город, брать ноту. Если каждому смыслу дать отдельное слово, словарь вырастает со ста пятидесяти тысяч слов примерно до полумиллиона. Такой объём не выучит никто.
Пострадала бы и поэзия: обязательные суффиксы разрушают рифму и ритм, запрет идиом отнимает образность. «Я вас любил-зрел; любовь ещё, быть может-мни» — звучит как показания свидетеля.
Возник вопрос: если однозначный язык настолько неподъёмен, значит, многозначность зачем-то нужна?
Оказывается, лингвистика уже ответила на этот вопрос. В 2012 году исследователи из MIT — Пиантадоси, Тили и Гибсон — показали математически: неоднозначность не дефект языка, а свойство оптимального коммуникационного кода.
Рассуждение такое. У собеседников всегда есть общий контекст: ситуация, предыдущие реплики, знания о мире. Этот контекст достаётся бесплатно. Поэтому тратить отдельные слова на различение смыслов, которые слушатель и так восстановит, расточительно. Выгоднее переиспользовать короткие удобные слова для многих значений, переложив различение на голову слушателя.
Статистика это подтверждает: многозначными оказываются прежде всего короткие и частотные слова. У английского set в Оксфордском словаре сотни значений. А слово «дезоксирибонуклеиновый» означает ровно одно: оно и так дорого в произношении, экономить на нём нет смысла.
По сути, естественный язык — это сжатие с потерями. Словарь работает как таблица кодирования, где короткие коды достаются частым смыслам — тот же принцип Хаффман предложил для компьютеров в 1952 году, а язык пришёл к нему на десятки тысяч лет раньше. Контекст — общая память передатчика и приёмника. Омонимия — коллизии кодов, допустимые потому, что декодер в голове слушателя разрешает их без усилий.
Нейросети, к слову, буквально работают на токенах — единицах текста, и многозначность для них та же экономия, что и для людей. Токен-эффективный язык человечество построило задолго до появления слова «токен».
Нетрудно заметить, что по этой логике русский мат — тоже метод оптимизации. Нейросеть согласилась и разложила, почему это самый радикальный компрессор в языке.
Всего три-четыре корня, но русская приставочно-суффиксальная морфология порождает из них тысячи слов, покрывающих любую часть речи. Один корень с разными приставками означает «сделать», «сломать», «украсть», «ударить», «устать», «уйти», «удивиться» и «получить выговор». Минимальный словарь при максимальном покрытии.
Известный пример — бригада на стройке, которая общается фразами, где из значимых слов только матерные, а передаётся при этом конкретное «подай вон ту деталь, осторожно, она тяжёлая». Механика та же, что мы вывели выше, только в предельной форме: приставки несут грамматику, интонация — синтаксис, весь предметный смысл восстанавливается из общей ситуации. Сам корень передаёт лишь эмоциональный накал и сигнал «здесь свои».
При этом мат передаёт по одному каналу сразу три сообщения: смысл, силу эмоции и степень неформальности общения.
У этого компрессора три жёстких ограничения.
Он работает только при плотном общем контексте: бригада видит одну и ту же деталь, а незнакомцу по телефону та же фраза передаст только эмоцию.
Цена сжатия — точность: инструкцию по сборке двигателя таким кодом не напишешь, слишком много коллизий.
И самое любопытное: сила мата держится на его запретности. Эмоциональный заряд существует, пока слово табуировано. Если употреблять его повсеместно, он обесценивается — как валюта при инфляции — и теряет и заряд, и функцию. Лингвисты отмечают, что именно это постепенно и происходит.
Идеальный язык машины невозможен, потому что решает не ту задачу. Естественный язык оптимизирован не под точность, а под скорость и компактность — в расчёте на живого собеседника с общим контекстом. Омонимия в нём не небрежность, а сжатие. А мат — предельный случай этого сжатия: огромный коэффициент компрессии, работающий только на короткой дистанции, при общем контексте и до тех пор, пока держится запрет.
Если совсем коротко: мат — это UDP-протокол русского языка. Быстро, дёшево, без гарантии доставки смысла — но с гарантией доставки эмоции.
А теперь задумайтесь. Весь этот разбор — про то, что и человек, и нейросеть понимают многозначное слово одинаково: не по словарю, а достраивая смысл из контекста. Мы экономим слова, она экономит токены, и оба полагаемся на собеседника, который додумает. Так ли сильно наше мышление отличается от продвинутой языковой модели, как многие привыкли считать? Или любая форма общения будет сталкиваться с теми же законами и ограничениями?