С Днем защитника Отечества!

Поздравляю с праздником друзей, знакомых и читателей моего блога!

И представляю вашему вниманию, обновление, ко дню защитника отечества.

webgl-realistic-planet

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

webgl-procedutal-terrain

Преимущества планет без текстур:

  • Не требуется память для хранения кусков текстур
  • Уникальный вид поверхности
  • Возможность задания разных свойств материалов
  • Изменение поверхности в реальном времени (лава, рост травы, обледенение и т.п.)

Недостатки тоже есть:

  • Требуется хорошая видеокарта
  • Высокая сложность создания новых типов поверхности (камни, песок, трава)
  • Постоянный просчет пикселей без возможности кеширования

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

webgl-procedutal-planet

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

Почему?!

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

Обновление доступно по адресу: play.dg8.ru
Управление в режиме «Реалистичная Планета»:
W,A,S,D — для перемещения камеры
Q,E — наклон камеры
Левой кнопкой мышки на экран и двигать — вращение камеры

Субботнее обновление

Представляю вашему вниманию, свежее обновление игры. В этом обновлении добавлена возможность строительства кораблей (временно в Ангаре). Космическая и орбитальная верфь всё еще в разработке. Но, для проработки, от прототипа, до полнофункционального редактора это ни как не помешает. В чем же прелесть этого редактора?! У вас будет возможность создать свой «уникальный» корабль. Вы сможете создавать корабли как по готовым чертежам, так и делиться своими чертежами с друзьями. Собственные корабли будут иметь различный функционал и визуальный вид.

Основные элементы для строительства, будут добавляться в игру, по мере готовности. А теперь перейдем к зданиям, у нас очередное пополнение, на этот раз:

Артиллерийская установка

Артиллерийская установка, модель нарисовал: Richard Hale

А так же и другие модели были усовершенствованы:

Ссылка на проект: play.dg8.ru

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

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

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

После долгих обсуждений, размышлений и расстановки приоритетов:

  • Проект Dreams Gate, перейдет в русло браузерной игры с процедурной генерацией.
  • Отдельный клиент игры, будет обновляться редко. Не чаще, чем раз в 4 месяца.
  • Проект: «Мой Фан Клуб», будет усовершенствован, полная переработка ядра под современные версии языков (php / js / python). Поддержка новых возможностей браузеров. На базе нового ядра, будет обновлен сайт Dreams Gate.

Подведу краткие итоги уходящего года:
Этот, 2015 год, принес много нового, он открыл второе дыхание проекту Dreams Gate. Помог собраться поклонникам жанра вместе. Созданы дополнительные процедурные генераторы (помещений, структур, стадий, объектов и т.д.). Сделан шаг, в освоении современных возможностей браузеров. Удалось провести десятки экспериментов, создать язык программирования с возможностью к самообучению. Так же, этот год подарил много новых знакомств. Именно в этом, уходящем году, моя жизнь круто изменилась. Теперь, уходящий 2015 год, будет теплым, в моем календаре.

С Наступающим 2016 годом!

Предновогоднее обновление

В этом обновлении:
Чтобы построить базу, вам потребуются ресурсы. Так же, если вы построили добывающий завод, он начнет приносить раз в минуту по 200 кредитов. Заработала энергия, у каждой базы она своя. Ресурсы копятся есть достаточно складов. В режиме карты убрал двойной клик, так удобнее. Добавлены два новых здания (хранилище ресурсов и строительная площадка).

Браузерная версия игры Dreams Gate

Да, и самое интересное, отдельный клиент, для тестирования под 64 битную версию Windows. По запросу, могу выложить и для других операционных систем (Linux / Mac).
Клиент для Windows (64 бит)

Жду ваши отзывы.

Как всегда, работает голосовой чат Mumble.
Server: voice.spacesoldiersgame.com
Port: 64738
Скачать программу для подключения: Клиент Mumble

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

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

Процедурные планеты на WebGL

После ряда обсуждений, с ребятами, проекта Dreams Gate на WebGL. Пришел к выводу, что периодически возникает сложность в понимании. Особенно, если это касается размеров, процедурной генерации, форматов файлов, сетевой части и других весьма важных моментов. И один из таких «весьма важных» элементов это как раз процедурные планеты в проекте. Планеты создаются на лету, им не требуется перекачка десятков, а то и сотен файлов, передаются лишь базовые данные для построения поверхности планеты. На данный момент, реализация основана на использовании классического шума Перлина. И для реализации используется лишь один метод, по этому планеты похожи, но, у каждой планеты своя уникальная текстура. Добиться с ходу, реалистичного и качественного вида планет, очень сложно, по этому всё будет создаваться поэтапно.

Протестировать:
Dreams Gate WebGL [Procedural Planets]

Стоит еще раз отметить, что это «очень ранний», но уже результат.

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

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

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

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

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

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

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

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

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

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

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

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

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

1 2