Russian thread


#581

А я подведу промежуточные итоги. Промежуток между релизами увеличился до 5 месяцев, при этом количество сделанных изменений в changelog уменьшается.
С выходом 0.98 наконец-то поддерживаются ВСЕ заклинания. Не готов и далёк от завершения ИИ, не реализованы абилки у Кристальных драконов (+3 кристалла в неделю), Номадов (нет штрафа на песке) и Воров(получение инфо о лояльности нейтралов и силе армий), не готовы звуки окружения на карте приключений, не сделан Зал славы. Также в TODO-списке числится Online game, но что под этим подразумевается - не понятно.
Кроме того, запланированы отсутствующие в оригинале дополнительные фишки, такие как многоуровневые карты, новый редактор карт, многоязычная поддержка, а в многопользовательском режиме - одновременные ходы, режим наблюдателя, выделенный сервер и запись реплеев. Плюс многочисленные улучшения, относящиеся к модам.
Вместе с тем, в Mantis открыто 275 багов, ожидающих подтверждения от тестеров и сиправления от разработчиков. В летнее время процесс исправления ошибок сильно замедлился.
Если после версии 0.99 будет полный релиз 1.0, а это по моим расчётам к 1 февраля 2016г., то достаточно сомнительно, что все запланированное получится реализовать. Тем не менее, многотысячная армия фанатов будет ждать столько, сколько потребуется.
Вот такая диванная аналитика, извините, если что не так.


#582

Просто Иван перестал принимать активное участие в проекте, вот и всё. :slight_smile: Потом и beegee отдалился, до этого Tow, а сейчас и Warmonger редко что-то делает. Оно и понятно, одному не потянуть. + AVS, но всё равно картина грустная.


#583

Еще ворота при осаде не реализованы, и просмотр параметров героя в режиме боя:-)

Это надо добавлять бонус, в котором в subtype будет указан terrain, и процент уменьшения штрафа:-)

ИМХО это можно и отложить на потом.

Да, плохо, что меньше народа занимается VCMI. Я вот тоже пока не добрался до кода. Вряд ли я смогу сделать что-то глобальное в ближайшие месяцы (boost я пока не освоил как следует, да и времени на кодинг особо нет). Но все-таки надеюсь, что в обозримом будущем смогу по мелочи что-то поправить и добавить (как и планировал “в январе”, потом “в мае”).
НАдо еще вспоминать, как с гитхабом работать…


#584

Keloraen, есть такое, к сожалению. Пару лет назад команда состояла из 6 активных программистов, а теперь - только пара человек время от времени :frowning:

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

hippocamus,
Ради интереса - что в событиях порадовало?

С террейном упор на скорость парсинга а не читаемость. Вручную редактировать террейн в любом виде - самоубийство. Самая маленькая карта 36х36 это больше 1000 клеток. Не задолбется вручную редактировать? Про большие карты вообще молчу. Этот формат составлялся с расчетом на редактор и с запасом по расширяемости.

Проблем с расширением не вижу - для новых террейнов достаточно будет объявить какое-то короткое имя для карты. Какие-то джунгли могут иметь имя “jungle”, но для карты паралельно будет определен короткий код “jg”. С реками/дорогами тоже самое. Более того, этот формат можно интерпретировать не как
<террейн><река><дорога>, а как <террейн><оверлей 1> … <оверлей н>. А что за оверлеи - дорога, река или чтот другое значения не имеет.

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

Со слоями карт самая большая проблема это механика игры и интерфейс. Куда на трехуровневой карте должен вести подземный переход? А что произойдет при нажатии на клавишу смены уровня? И как она должна выглядеть? Загрузить в игру карту с уровнем номер 2 проблем я не вижу. Было бы время :slight_smile:


#585

К ближайшему другому переходу, как в HMM3 (разность кооординат - минимум

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


#586

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

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

Ну, тогда стоило бы использовать не двубайтовый код “sn”, а 4-хбайтовый “snow”, хотя бы потому, что это сразу определит def-файл как snowtl.def
А если всё же сохранять читабельность тайлов - тогда, кажется, лучше что-то вроде “snow02|08 dirt3C icy01”. что означало бы снежный тайл с типом #2, зеркалом #8, грунтоой дорогой с тайлом #3C и снежной рекой с тайлом #1.
Преимущество в том, что в текстовом редакторе можно было бы произвести массовое преобразование (например, превратить все реки на данной территории в грязевые)
Хотя идея общего оверлея мне нравится.

Ну, над этой проблемой думал немало, поэтому есть готовые решения.
Предлагалось сделать градацию по типам плоскостей:
0: ground
1: underground
2: overground
3: astral
Пока что разница между ними состояла бы, пожалуй, лишь в том, что

  • в underground все юниты получают бонус битвы в подземелье
  • в ground все получают бонусы своих родных почв
  • в astral никто не получает никаких обычных бонусов
  • в overground соответственно получают бонус битвы над землёй, хотя сейчас и не создано модов для этой парадигмы.
    При нажатии на кнопку смены уровня уровни сменяются циклически, поэтому, возможно, стоило бы сделать интерфейс под “уровень+”/"уровень-"
    Уровни имеют свои НАЗВАНИЯ (По умолчанию “Поверхность” и “Подземелье”), название отображается на верхней планке рамки мини-карты. По умолчанию, будет “Подземелье 2”, “Подземелье 3”, “Надземье 1”, “Надземье 2”.
    А вот подземные переходы должны быть всё-таки переработаны. Есть Верхние Врата и Врата Нижнего Мира. По сути, они такими и являются, только не отличаются внешне. Можно сделать отличающимися. Ну, а в Астрал могут вести только телепорты.
    Если есть несколько слоёв “Поверхность” (по сюжету, 2 изолированных мира) - они соединяются также телепортами (хотя никто не мешает их на картах вроде зеркалок оформить Вратами, которые всё равно по сути останутся телепортами).

#587

Ага. Потенциально - очень мощная фича, которой можно найти применение не только в глобальных событиях карты.

Да и в событиях полезно - я бы вообще выпилил троечные события, а оставил только такие. Ведь “наступил день Н” это вполне нормальное условие, а “только ИИ” это небольшое усложнение его конфигурации. :slight_smile:

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

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

По уровням - безусловно, решения тут найти можно, так что если будут желающие - то организовать такое проблем не вижу. Хотя если честно то я бы попробовал немного по-другому - сделать все уровни независимыми друг от друга, эдакие отдельные “миры”. Это даст хороший плюс к гибкости. Например, твой вариант не подходит даже для тройки - ведь подземелье не обязательно плоское. Например как в кампании Мутаре. Вывод - для некоторых карт нужно больше одного подземного уровня.

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


#588

Так я же и имею в виду, что может быть сколько угодно уровней любого типа!
Также хотелось бы иметь возможность создавать прямоугольные уровни, и “циклические” - где переход через логическую границу уровня переносил бы на противоположную сторону, а для игрока у уровня просто бы не было границ - как поверхность шара (или цилиндра, если зациклен только по одной координате). Кажется, это не так сложно сделать.


#589

Cylindric is easy
sphere is almost impossible, but perhaps you meant Torus - which is almost as easy as Cylindric


#590

Цилиндры и торы еще неизвестно на сколько сложно в движке будет сделать. Сколько угодно уровней - не проблема.


#591

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


#592

thevista.ru/page19006-vyshel … 5_i_net_46

MS Visual Studio 2015 вышел.
VCMI компилится по ней? Или еще никто не пробовал?


#593

Про звук: нужен пример файла который "щумит"
Русифицировать можно. Для этого надо сделать отдельный мод и переопределить там текстовые свойства объектов мода.


#594

в моде Axolotl Creatures Pack есть зверь Tortofroids. Когда он атакует как раз идет “шум”.
Сам по себе файл нормальный, воспроизводиться корректро


#595

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

"game-select" : "gamselb0", "gamselb1"],

Например, есть куча фонов загрузки для HMM3, которые хотелось бы брать по рэндому.
Или, к примеру, динамически ролик победы/поражения подменять на другую версию для разнообразия.
Или при обращению к картинке поля боя для леса рендомно подменять ее на другую картинку из списка.
Я давно этим не занимался, но представляю себе это так - в память загружается exe-файл, который ждет, когда exe-файл клиента vcmi запросит графический/видеофайл, упомяный в конфиге exe-файла утилиты, и выбирает произвольный файл из списка альтернатив, подсовывая его путь имя в клиент VCMI взамен исходного.
В конфиге файла будет прописано что-то типа

{
"gamselb0":
"mymod/gamselb0","myothermod/somepicture","anothermod/pics/loadscreen"
}

или в каком-нибудь другом формате, например:

gameselb0=mymod/loadp$othermod/pics/heres$

По идее, это надо делать хуки.
Может кто-то сварганить такую фигню для VCMI? По идее, здесь нет ничего сложного.


#596

Зачем еще и отдельный процесс?


#597

Macron1, ужас… троллейбус-из-хлеба.жпг

Проблемы:

  • системо-зависимо. Нужно 4+ реализации (Вин, Линух, Мак, Андроид).
  • хуки могут быть заблочены без админских прав. Необходимость запуска от админа = плохо.
  • не пройдет там где нужно выбирать больше одного файла, например - случайная иконка существа (маленькая+большая)

Приемлимое решение - сделать на уровне нашей виртуальной файловой системы, перенаправления уже есть - воговский Zelp.txt успешно подменяет троечный Help.txt. Добавить случайность не проблема.

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

Правильное решение - посмотреть в файл CPregame.cpp и увидеть то, что случайный выбор уже сделан :slight_smile:
github.com/vcmi/vcmi/blob/devel … e.cpp#L600


#598

Да, экран выбора игры и загрузки карты уже работает в плане выбора рендомных картинок, я проворонил как-то этот функционал.
Ну например, selgamebk (или как он там, под рукой нет HMM3 - основной экран игры - только одна картинка (ее тоже хотелось бы рэндомно брать) (в Hero Of Light уже есть кнопки HMM, избавленные от фона).
Или к примеру, AISHIELD, который рисуется на minimap при ходе компа, тоже неплохо бы рендомить.

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


#599

Кто знает что это значит? (см. скрин)

И второй вопрос насколько сложно починить этот баг? bugs.vcmi.eu/view.php?id=1965 очень кошмарит проводить с ним битвы.



#600

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

Думаю не сложно. Постараюсь глянуть сегодня.