Возвращение к WebGL. Редактор игрового мира.

Возвращение к  WebGL. Редактор игрового мира.

После портирования клиента на C# стали понятны некоторые препятствия которые могли бы возникнуть при завершении прошлого варианта WebGL клиента. Это касается и внешнего вида игры и управления и производительности. Но даже не смотря на это я не намерен останавливать попытки переделать игру и буду этим заниматься и дальше - даже если эта работа потребует много времени.

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

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

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

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

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

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

С помощью этого редактора я уже исправил фактически все артифакты карты и дальнейшей доработки она не потребует (имеется в виду как в первой версии WebGL, когда нужно было всю карту переделать, сгладить острые углы и прочие проблемы).

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

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

Теперь можно поговорить и о новом клиенте игры:

Конечно он будет базироваться на этом новом движке, иначе и быть не может, так как текущие клиенты игры не смогут отобразить новую территории, даже клиент на C# не сможет, ведь в нем нет возможностей Unity3d.

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

 P.S. я буду сообщать в блоге о процессе разработки. Если долго нет новостей - это еще не означает, что никакой работы не ведется.