Нативный клиент под Windows / Mac / Linux

Создание, отдельного клиента, для игры долго держалось в мыслях. На днях, решил проверить, на сколько же это будет возможно. А самое главное, актуальность всего этого. В первую очередь, что оказалось весьма существенным это размер дистрибутива, в среднем ~44 Мб в сжатом виде на одну из платформ.
Читать дальше

Строительство баз

За тестирование, браузерной игры, особой благодарности удостоены: Андрей Власюк и Богдан Осадчий. Очень внимательные ребята, которые, обратили мое внимание, на сложность при создании баз. По этому были произведены изменения в интерфейсе и улучшено управление. Теперь для создания базы вы должны на карте выбрать планету (можно из списка), после этого нужно перейти на вкладку «Планета». Чтобы создать базу на планете, нужно двойным кликом мыши по поверхности планеты указать точку её расположения и указать имя новой базы. Следом можно перейти на вкладку «База» и заняться строительством зданий и сооружений. Уже реализована проверка столкновений (теперь здание в здании уже не построить). Если, что-то пошло не так, всегда можно воспользоваться кнопкой «Restart», которая находится в левом всплывающем меню.

webgl-base-builder-menu

Форма зданий на данном этапе развития проекта не является конечной, так же для каждой расы, будут созданы различные виды зданий.

WebGL Dreams Gate

Если у Вас есть предложения по улучшению проекта, всегда рад выслушать.

Dreams Gate WebGL обновление

После нескольких бессонных ночей подряд, вышло в свет, очередное обновление проекта.

WebGL Dreams Gate (alpha 3)

На этот раз, в проект, были внесены существенные изменения, а какие именно расскажу по порядку.

webgl-dreamsgate-starmap

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

Переместил в левую часть (вертикально) выбор между «Карта», «Планета», «База», «Ангар», «Битва». Это позволило на мобильных устройствах увеличить область просмотра.

webgl-dreamsgate-planet

В режиме «Планета» можно создавать базы. Для этого, необходимо выбрать участок на планете, и двойным нажатием левой кнопки мыши задать позицию новой базы. Откроется диалоговое окно, в котором следует указать название для создаваемой вами базы. После принятия, у вас появится доступ к новой базе. Чтобы открыть базу, то для этого нужно будет перейти в режим «База» (кнопка в левой части экрана).

webgl-dreamsgate-base

В режиме «База» можно строить сооружения. Двойным щелчком мыши производится установка здания в место где находится зеленый курсор.

После создания базы, каждые 3 минуты, будут даваться ресурсы. Число баз не ограничивал, а также нет и ограничения на число зданий. В этой версии исправлен ряд ошибок, которые, были обнаружены за время тестирования.

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

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

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

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

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

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

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

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

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

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

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

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

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

Процедурный генератор стадий и помещений

Как и планировал, делюсь информацией о ходе развития проекта. И первым на очереди: Процедурное Моделирование. Это одна из частей новой версии трехмерного редактора моделей (Dreams 3D). Процедурное создание стадий и помещений, будоражит сердца разработчиков уже несколько десятилетий. Еще во времена первого Doom были попытки создания автоматизированных средств рисующих карты. Но успеха добиться на этом пути очень сложно. Есть множество программ которые комбинируют из блоков стадии, но их дизайн весьма прост, привычен и повторяется. Например серия игр Quake и Doom подарила своим поклонникам новый мир, где дизайн на столько необычный. Пропитан духом фантастики, мистики, где за каждым углом таится опасность. Но все карты в этих играх нарисованы людьми. И вот рассмотрим как это всё происходит.
Читать дальше