Процедурная генерация подземелий

При создании одной из игр от первого лица, потребовалось создание процедурного подземелья (с одним уровнем высоты). Подземелье должно быть в космическом, стиле с возможностью редактирования полученного результата. Для этого был выбран самый простой метод, создание сетки определенного размера и размещение на ней комнат. После создания, производилось оформление комнат в нужном стиле с возможностью замены любых деталей на другие модели. Для оформления я использовал генерацию стен и блоков из другого своего процедурного генератора, о котором постараюсь рассказать более подробно в других публикациях.
procedural-tile-generatorПлюсы метода:

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

Генерация имен

В прошлой публикации: Как создать генератор названий, мною были приведены самые простые способы создания генератора названий. В различных продуктах используются различные методы, но на практике чаще остальных метод под названием Цепь Маркова. Метод назван в честь Маркова Андрей Андреевича, русского математика, академика, внёсшего большой вклад в теорию вероятностей, математический анализ и теорию чисел.
Чем цепь Маркова лучше других методов? Результат получается более естественный. Используя небольшие словари, удается получить большое число не повторяющихся последовательностей в необходимом виде согласно начальных словарей. Словари можно не использовать, а лишь их преобразованный вид. Но как показывает практика, используя словари легче манипулировать получаемым результатом.

Пример генератора псевдо-Славянских имен из Dreams Gate использующего цепь Маркова:

Нажав кнопку «Генерация», можно получить новый список случайных имен.

Полезные инструменты для повседневной работы

Работая над проектами и заказами скапливается гора информации, куча пометок, набросков. И всё это теряется на и так переполненном рабочем столе. Не так давно мне один знакомый (из весьма знаменитой компании) посоветовал опробовать сервис Trello. Изначально я отнеся скептически, ведь уже был опыт работы с разными системами в том числе и багтрекерными. Но он настоял, чтобы я попробовал. В итоге делюсь с вами положительными впечатлениями от двух недель работы с системой.

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

Рекомендую: Сайт trello.com

Ближайшие планы развития ветки WebGL Dreams Gate

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

Во первых, проекты работающие в браузере, взламываются проще, чем любые другие. Но не стоит забывать, обычные клиенты взламываются так же (используются лишь дополнительные программы для взлома), но принципы и возможность для взлома не отличается. Это анализ и изменение сетевого трафика, замена шейдеров (например для создания wallhack) и другие виды взлома (макросы, боты и тп). Обычные игровые клиенты и проекты на базе браузеров уязвимы в одинаковых местах. Даже полноценные сетевые игры с «супер защитой» взламывают точно так же. Например Counter-Strike: Global Offensive добавили народный патруль, как средство реальной борьбы с читерами. Так как их VAC и другие средства лишь частично спасали от читеров. Не стоит строить иллюзий, что «клиенты» менее уязвимы, чем браузерные игры. По этому на начальном этапе будем обнулять статистику, разрушать базы и вешать метку почетного взломщика, если такие у нас будут.

Какие же плюсы у браузерных игр:

  • Доступность. Для начала игры нужно лишь перейти по ссылке.
  • Не требуют установки
  • Не требуют обновления. Всегда актуальная версия
  • Легкая расширяемость.

Очень часто приходится слышать, что браузерные игры: «примитивны», «там не создать нормальную игру», «там убогая графика» и подобные высказывания. Это лишь миф, почему? Ответ очень прост, уже давно видеокарты стали принимать к себе данные и использовать их для вывода на экран. Чтобы было понятно: мы загружаем на видеокарту модель в буфер VBO, загружаем шейдер, загружаем текстуры. Они хранятся на видеокарте, мы лишь просим вывести их в указанную область. По этому вся наша графика и скорость вывода зависит лишь от видеокарты. Конечно, браузер уступает по скорости, в обычных вычислениях, которые идут не на видеокарте. Тут целое поле для оптимизации, по этому всегда можно добиться уровня и качества достойного AAA-класса игр.

Примеры отображения моделей в браузере:

Не мог пройти мимо звезды смерти:

Ближайшие планы и цели:

  • Добыча ресурсов
  • Создания баз на планетах
  • Строительство зданий и сооружений на базах
  • Строительство кораблей в ангарах

Как ближайшие цели будут достигнуты, будет доступна новая версия на сайте.

За эти 12 дней, было поставлено несколько экспериментов, первый был генератор текстур на JavaScript. Как показал эксперимент, это возможно, но требуется существенная оптимизация методов генерации. Модели возможно придется делать модульные, чтобы уменьшить их размер и увеличить их разнообразие.

Минусы версии основанной на браузере:
— JavaScript код исполняется медленно, только в браузерах основанных на модифицированном WebKit компанией Google (Chromium, Yandex Browser, Opera и т.п.) производительность нормальная, все кто на обычном WebKit (например FireFox) заметны лаги и тормоза, иногда очень сильные.
— Открытый исходный код, это приводит к возможности быстрого поиска уязвимостей. Но это не только минус, это и плюс, другие участники и все кто занимается тестированием смогут в случае обнаружения ошибки, помочь её устранить.
— Постоянная необходимость скачивать файлы. Исправляется увеличением размера кэша, использованием кеширующего прокси сервера. При использовании кеширующего прокси, можно настроить так, чтобы необходимые файлы скачивались только если они изменились или отсутствуют. Если у вас более одного компьютера, кеширующий прокси на входе поможет в разы ускорить работу на нескольких компьютерах. Скачивая один раз файлы он раздает их компьютерам в вашей локальной сети, без повторного скачивания одних и тех же файлов для разных компьютеров.

UTF-8

Сегодня всё утро ушло на борьбу с различными языками в 3D редакторе. Была поставлена задача — добавить поддержку различных языков таких как Русский, Китайский, Английский, Французский, возможно и другие. Для внедрения различных языков нужны различные шрифты и растровое изображение каждого символа. Но как и обычно бывает, мы не знаем каким языком будет пользоваться человек. Может у него будет стоять основной язык Английский, а названия предметов и объектов он захочет на Русском или Китайском. В итоге придется подгружать отдельные шрифты создавать для них отдельные текстуры, занимать лишнюю память.
Читать дальше

Перенос сайтов с Joomla на WordPress

Очень часто в последнее время заказывают перенос сайтов. Обычно выбирают для нового сайта WordPress, но ошибочно думать что WP предназначен только для блогов. Многие компании выбирают как платформу для сайта именно WordPress из-за его легкости модифицирования и удобства в работе. Но если сравнивать с другими CMS такими как MonstraCMS, то WP в сравнении с подобными CMS вообще монстр, очень прожорливый к тому же. Но это окупается легкостью в настройке, создании материалов и конечно огромное число плагинов. Отступив от темы, мы тоже переходим на WordPress на части ресурсов. Делая работу другим осознаешь, что нам оно тоже пригодится и не придется уже изобретать велосипеды.

О Редакторе моделей

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

Основа редактора это инструменты для автоматизации рисования, такие как:

  • Автоматическое создание стен вокруг объектов выпуклой формы.
  • Рисование объектов сложной формы по направляющей
  • Создание монолитных объектов из сфер, капсул, кривых и других объектов
  • Автоматическое создание стадий (протестировано на Quake 1 / Doom 3 / Unreal Engine 4)
  • Автоматическое создание оптимальных разверток
  • Генерация текстур
  • Генерация растительности
  • Генерация планет
  • Генерация помещений

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

1 2 3 4 5