«Что-то давненько ничего не писали о моём протеже» — подумал я и, в очередной раз бросив взгляд на новостную ленту, решил сделать это самостоятельно. Последние месяцы были сосредоточены на WoW:Classic, и, честно говоря, я немного соскучился по неторопливости и спокойствию, которые обычно сопровождают геймплей Eco.

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

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

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

Начну с админско-технического — генератор мира и документация. Сейчас, фактически, процесс создания мира выглядит так — перед вами огромная приборная панель с кучей рычажков и кнопок. Часть из них подписана, вторая — подписана по-китайски, какие-то не работают, некоторые трогать вообще запрещено. Чудом подобрав рабочее сочетание и добившись, чтобы количество континентов, рек и озёр было тем самым, которое предполагается, вы жмёте Главную Кнопку и генерация начинается. Машина жужжит и выдаёт на экране солидные надписи о ходе процесса. Это продолжается довольно долго, в прямой зависимости от размера мира. Наконец, вы возвращаетесь с обеда к рабочему месту, видите надпись «100%», запускаете сервер… и получаете какашку. Ну, то есть буквально — континенты выглядят как Оно, биомы размазаны по ним способом, вполне достойным Композиции VII Кандинского, одна река свернулась в спираль, вторая — прямая как палка и течёт параллельно морскому берегу, образуя некое подобие Куршской косы. Вы вздыхаете, выкидываете получившееся в урну, меняете положение одного из рычажков и снова жмёте Главную Кнопку. Машина начинает жужжать…

Хранилище данных мира — тут всё просто. Это, фактически, обычный файл с несколькими таблицами внутри. Ни индексов, как в нормальных БД, ни быстрого кэша в оперативной памяти. Поэтому на любых хоть немного сложных условиях оно тормозит. Ну, некоторые вспомнят прекрасный закон о начислении денег за сбор веток… Разработчики уже неофициально подтвердили, что планируют добавить поддержку нормальных СУБД, но когда это произойдёт — вопрос открытый.

Eco: Былое и думы

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

Растения и животные. По поводу последних, насколько я знаю, работы ведутся и нас ждут кусающиеся хищники и прочие радости, но я не про это, а, скорее, про их взаимодействие между собой. Сейчас популяция животных зависит ровно от двух факторов — насколько на карте много места, по климатическим параметрам подходящего для данного вида и от активности охотников. Ни наличие корма, ни загрязнение роли фактически не играет. У растений всё ещё хуже — там просто через пару недель культивируемые виды могут остаться только на грядках, а остальное зарастает сорняками, поверх которых не пробьётся уже ничто. В результате имеет бескрайние травяные луга, непроходимые заросли салала в тундре и кактусовые пустоши там, где пожарче. Цветы, кусты черники, овощи — конкуренции не выдерживают. Некоторые виды разводить невозможно в принципе — даже на максимальном уровне собирательства семян выпадает меньше, чем нужно для поддержания популяции, не говоря уж о её увеличении.

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

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

Eco: Былое и думы

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

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

Настройки доступа к собственности. Сейчас они реализованы квадратно-гнездовым методом, крайне негибким. Лично мне очень подходящей видится схема, используемая в Линуксе — rwx. R — чтение, W — запись, X — выполнение. «Чтение» в нашем случае может, в зависимости от предмета, означать возможность класть материалы в хранилище или станок, «запись» — соответственно, забирать из хранилища или очереди станка получившееся, а «выполнение» — менять его настройки или даже сносить с помощью кувалды. Сочетание этих параметров с индивидуализацией прав доступа даст нам крайне гибкую и удобную систему. Не то, что сейчас.

И когда уже добавят тени игроков?! Эти парящие в воздухе топоры и бензопилы — вполне достойны какого-нибудь ужастика.

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

26 комментариев

avatar
Таких претензий можно написать миллион к любой игре, но толку, если разработчики эту заметку не прочитают?
  • -1
avatar
Ну, во-первых, может и прочитают. До них гораздо ближе, чем можно подумать.

А во-вторых — какой толк от этого (и многих других) комментария, расскажешь?
  • 0
avatar
Что бы прочитали — конструктивные предложения желательно оформлять хотя бы в дискорде, а в идеале в suggestion секции оффгитхаба.
  • 0
avatar
Начну с админско-технического — генератор мира и документация.
Кстати привет, тому самому «недовольному товарищу» (из начала статьи), несмотря на то что, во многом его переделка генератора обычно выдаёт симпатичные результаты, большинство «нерабочих» и «китайских» кнопочек — его заслуга.
Старый генератор был уродлив, но работал как ожидалось.

Растения и животные.
По поводу последних, насколько я знаю, работы ведутся и нас ждут кусающиеся хищники и прочие радости,
Вот тут я и здесь выражусь. В том виде в котором они сейчас в сорцах — нахрен. Укусы сквозь объекты и блоки, игнор вертикальной координаты, прибегание на базу игрока, тотальный игнор активности (рубишь камень? валишь деревья? — хищнику пофиг).
но я не про это, а, скорее, про их взаимодействие между собой. Сейчас популяция животных зависит ровно от двух факторов — насколько на карте много места, по климатическим параметрам подходящего для данного вида и от активности охотников. Ни наличие корма, ни загрязнение роли фактически не играет. У растений всё ещё хуже — там просто через пару недель культивируемые виды могут остаться только на грядках, а остальное зарастает сорняками, поверх которых не пробьётся уже ничто.
Всё упирается в а) балансировку, которую нет особого смысла проводить пока не добавлено большинство запланированного контента, б) производительность БД (ты уверен что смог бы играть обсчитывай Эко бОльше параметров чем сейчас?).

Загрязнение.
… всем, по большому счёту, на это загрязнение плевать с высокой колокольни…
… достаточно производство расположить в сторонке от полей...
В 0.7 пара ленивых плавильщиков могла неиллюзорно утопить весь мир.
В 0.8 это сломали, переделав код рассчитывающий поглощение деревьями углекислоты, в результате это стало невозможно.
Из хороших новостей — в 0.9 это пофикшено.

Кулинария. Все мы знаем, как это происходит — мы, скрепя сердце, покупаем пару стейков, салатов и тортилью у повара в магазине, разворачиваемся — и набиваем желудок какой-нибудь копчёной на костре рыбой или буряком, потому что предстоит тяжёленькая работа в забое/лесоповале/etc, а кто же работает на качественной еде? Время тортов и мраморной говядины приходит только, когда калории не тратятся. Ужасно кривая система, надо менять.
Я заранее извиняюсь за граничащий с троллингом сарказм, но…
А если поставить х500 рейты то и вообще ничего готовить не надо, помидорок хватит!
Опять таки, вопрос баланса. НА каких нибудь х0.1 рейтах, каждая единица SP\day ценна как никогда.
И никто не будет жрать плохую еду если хочет прокачать профессию.

Просто потому что SP\day от пищи, рассчитывается по хитрой формуле учитывающей средне-арифметическое от суммы нутриентов в каждой потреблённой пище на общую пищу в желудке.
А что чернорабочие плохо питаются… Ну так это и ирл так, не?
Более того, <0.9 многие берут перерабатывающую профу первой и идут добывать, потому что особого штрафа на добычу нет. Скажем добыть гранит каменной киркой — это 2 удара по 20 калорий и в >=60% случаев доп удар что бы расколоть средний обломок. Итого будем считать что 50 калорий за 4 куска камня\руды — 12.5 калорий\кусок.
А теперь взглянем на 0.9… Это ещё конечно крутится, но удар по камню без профы стоит уже ~400 калорий. Более того, когда камень раскалывается, с игрока спишут ещё 200 калорий.

Итого 400+200+200=~800калорий за 4 куска, 200 калорий за кусок камня.
Поварство и фермерство сразу выглядит более востребованным, м?

Настройки доступа к собственности. Сейчас они реализованы квадратно-гнездовым методом, крайне негибким. Лично мне очень подходящей видится схема, используемая в Линуксе — rwx. R — чтение, W — запись, X — выполнение. «Чтение» в нашем случае может, в зависимости от предмета, означать возможность класть материалы в хранилище или станок, «запись» — соответственно, забирать из хранилища или очереди станка получившееся, а «выполнение» — менять его настройки или даже сносить с помощью кувалды. Сочетание этих параметров с индивидуализацией прав доступа даст нам крайне гибкую и удобную систему. Не то, что сейчас.
И внезапно, в Эко есть

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

Единственное чего не хватает, разделения ввод\вывод и настройки разных инвентарей на разные очереди крафта, что впрочем решается увеличением количества станков.

И когда уже добавят тени игроков?! Эти парящие в воздухе топоры и бензопилы — вполне достойны какого-нибудь ужастика.
Я возможно тебя удивлю, но это вполне себе типовая и использующаяся во множестве игр оптимизация, скрывать аватар игрока при виде от первого лица.
Ну и уж «проблема» точно не тянет на что то серьёзнее «минор, не забыть бы полирнуть перед релизом».

Я вот не скажу что я всем доволен, но блин — я вижу что работа делается а баги правятся.
Недоволен? Есть _конкретные_ предложения?
(Не «у вас всё плохо, выкидывайте!» или «Просто смените интерфейс БД!» А именно конкретные предложения?)
Пишите разработчикам, они слышат и делают многие вещи если их грамотно обосновать.
Комментарий отредактирован 2019-10-27 18:41:25 пользователем GDragon
  • +3
avatar
производительность БД (ты уверен что смог бы играть обсчитывай Эко бОльше параметров чем сейчас?)
Вот, об этом надо было думать на старте, как я всегда и говорил. А не брать языки и архитектуры без человеческого менеджмента памяти для такой амбициозной задачи.
  • 0
avatar
Согласен, но это имхо типичная проблема инди.
Чего тот же майнкрафт стоит на яве.

Я и не говорю что мне нравится, но в процессе разработки нужны ещё и денюжки, а если сесть за переделку прям всего ядрас сразу, можно и без них остаться.
  • 0
avatar
Ну, вот кстати ява была бы очень даже уместна. У нас, например (на работей моей, в смысле), на ней крутятся сервисы, оперирующие довольно существенными объёмами данных и проблем с производительностью нет. А в случае с Эко это сделало бы серверную часть по-нормальному кроссплатформенной, а не как сейчас :)
  • 0
avatar
на ней крутятся сервисы, оперирующие довольно существенными объёмами данных и проблем с производительностью нет.
Я то же самое могу сказать про си шарп на котором написано Эко.
А «производительность» в майнкрафте… Ну такое.
Будь эко на яве были бы 2 фпс, зато стабильные.
  • 0
avatar
У меня нет претензий к производительности сервера Эко. Но мне для него пришлось взгромоздить виртуалку с б-гомерзкой виндой, одиноко стоящей посреди нашей инфраструктуры. Потому что на линуксе сервак каждые 10 минут начинал по 30-40 секунд тормозить, видимо на каком-то хаускипинге. С явой таких проблем скорее всего не появлялось бы.
  • 0
avatar
В 0.9 серверную часть переводят на неткорапп3.0 которая должна нативно поддерживать линукса.
  • 0
avatar
Что бы там не крутилось, наличие виртуальной машины и каких бы то ни было интерпретаторов, сборщиков мусора и нулевой доступ к памяти убивают производительность на корню. Это не вопрос языка, это вопрос железа. К тому же вопрос ведь в задаче. Кому-то латенси не так уж сильно важен, а кому-то надо в 50мс впихнуть всё что только можно.
  • 0
avatar
Пользователь не обязан быть конрибьютером уровня разрабов, ну вы чего!?

Да и аргумент вроде «критикуешь — предлагай решение» в данном контексте в принципе не уместен.
  • -1
avatar
Не обязан, но...
Между
«Выпечка — гугно!»
и
«Выпечка в нынешнем виде ненужна, т.к. стоит дорого не принося выгод. Предлагаю изменить баланс, изменив рецепты в пользу превосходства по углеводам именно в выпечке и добавить больше полезных для эндгейма и набора очков навыков продуктов.»
Огромная разница.
  • +2
avatar
Итого 400+200+200=~800калорий за 4 куска, 200 калорий за кусок камня.
Поварство и фермерство сразу выглядит более востребованным, м?

Я вспоминаю дворцы, настроенные в предыдущих играх. Теперь будут трущобы, минимально обеспечивающие функционал. Вернёмся в «пещеры» с такой себестоимостью построек.
  • 0
avatar
Никто никуда не вернётся, всего лишь добывающие професси станут
а) нужны (а не как сейчас, «бесполезная трата звезды»)
б) полезны на протяжении всей игры (а не как сейчас кусочек между началом и серединой, т.к. позже уже фермерство и техника)
  • 0
avatar
Есть один умелец, который в своё время для Майнкрафта сделал генератор, читающий с BMP изображения биомы, нарисованные от руки. Это была бомба, я такие горы и каньоны с его помощью творил! Так там еще и кастомныне структуры можно было генерировать скриптом! Ммммм, сказка!

Так что вариантов много)
  • +1
avatar
Начну с админско-технического — генератор мира и документация.

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

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

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

Можно упрекнуть игру, да. Но кто-то на подкасте правильно сказал — того, чем гордится Майнкрафт, делает 0.005% от общего количества игроков. Вот эти все амбициозные проекты, Новиграды и Вестеросы, создал ничтожно малый процент от всей аудитории. Высокоуровневая кулинария даёт возможность создавать крутые проекты. То, что аудитория нашего сервера такими проектами не увлечена, а вот перезапусками вполне, не совсем проблема кулинарии, по-моему. :)
  • 0
avatar
Прогресс у кулинара должен изменяться калориями от новых уровней рецептов, по идее.
Оставим за кадром большую тему что это всё надо балансить…
Но я просто оставлю формулу расчёта SP от пищи здесь.

Nutrition bonus is calculated by the calorie-weighted average of the total nutrient value of food eaten in the last 24 hours. This average is then multiplied by the balance modifier and skill gain multiplier, and added to base skill gain.

The below equation shows the daily SP bonus for a player with 3 foods in their stomach.
(N1×C1)+(N2×C2)+(N3×C3)
—————————————— × Balance Modifier × Skill Gain Multiplier + Base Skill Gain = SP/Day
C1+C2+C3

«N» represents total nutrients of each food. Simply add up all 4 nutrient values. N1 is first food, N2 is second food, etc.
«C» represents calories of each food. C1 is first food, C2 is second food, etc.
Balance modifier ranges from 0.5 to 2, with 0.5 being no balance, and 2 being a perfect balance.
Skill gain multiplier is configurable in the server difficulty settings. It has different default values depending on the collaboration preset.
Base skill gain can be modified in EcoSim.eco. It defaults to 12.
Комментарий отредактирован 2019-10-28 15:54:45 пользователем GDragon
  • 0
avatar
Про большие проекты.
Я не знаю как всё это делалось (не буду писать про дипломированных архитекторов), но в этих двух роликах есть два важных момента:
— генплан (карты Вестероса);
— проект производства работ (служебный чат-канал для согласований по проекту).

То есть: нужен отдельный интернет-ресурс, посвящённый конкретной стройке.
  • 0
avatar
3) Бесконечные ресурсы в админ-режиме (?)
  • 0
avatar
Вы все — как один — против облегчения игрового процесса и поэтому я не стал упоминать этот момент.
  • 0
avatar
А между тем — это существенно меняет ценность получившегося. План, совместная стройка — да, это круто, но где-то на уровне сборки большого паззла с семьёй.
  • 0
avatar
А в чём проблема?
Не нравится, чтобы было просто — пусть будет сложно.
Типа вызов.
  • 0
avatar
Машина жужжит и выдаёт на экране солидные надписи о ходе процесса. Это продолжается довольно долго, в прямой зависимости от размера мира. Наконец, вы возвращаетесь с обеда к рабочему месту, видите надпись «100%», запускаете сервер… и получаете какашку. Ну, то есть буквально — континенты выглядят как Оно, биомы размазаны по ним способом, вполне достойным Композиции VII Кандинского, одна река свернулась в спираль, вторая — прямая как палка и течёт параллельно морскому берегу, образуя некое подобие Куршской косы. Вы вздыхаете, выкидываете получившееся в урну, меняете положение одного из рычажков и снова жмёте Главную Кнопку. Машина начинает жужжать…
WorldGenerator.eco
HeightmapModule.SaveTerrainImage = true
Генерирует предпросмотр карты сразу после завершения генерации, которая происходит у меня в пределах минуты. Если не нравится, то сервер тушится и перезапускается со сбросом параметра seed. В среднем 1.5 минуты на 1 генерацию мира.

Вот такой получается предпросмотр:
Комментарий отредактирован 2019-11-02 14:07:20 пользователем Darqsat
  • 0
avatar
Хорошо, что всегда можно пойти и почитать об этой прекрасной фиче в документации :)
  • 0
avatar
Лично у меня к игре претензий нет.
Игра как игра; даже в предварительной версии вполне себе играбельна, атмосферна и красива.
То есть: лично я готов «закрыть глаза» на её техническую реализацию и принять «как есть». Даже если игра не использует СУБД. Даже если она впоследствии станет использовать не профильную, а общепромышленную.

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

А тут метеорит.
Вот, что я должен думать о мире, где изначально предполагается (предлагается) возможность начать всё снова (ещё до начала)?
  • 0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.