В прошлой публикации: Как создать генератор названий, мною были приведены самые простые способы создания генератора названий. В различных продуктах используются различные методы, но на практике чаще остальных метод под названием Цепь Маркова. Метод назван в честь Маркова Андрей Андреевича, русского математика, академика, внёсшего большой вклад в теорию вероятностей, математический анализ и теорию чисел.
Чем цепь Маркова лучше других методов? Результат получается более естественный. Используя небольшие словари, удается получить большое число не повторяющихся последовательностей в необходимом виде согласно начальных словарей. Словари можно не использовать, а лишь их преобразованный вид. Но как показывает практика, используя словари легче манипулировать получаемым результатом.
Пример генератора псевдо-Славянских имен из Dreams Gate использующего цепь Маркова:
Нажав кнопку «Генерация», можно получить новый список случайных имен.
Создание зданий и сооружений в футуристическом виде, весьма сложная задача. Особенно «процедурные», ведь требуется создать не просто один этаж и размножить его, а создать совершенно новую, удивительную архитектуру, которая должна быть необычной для нашего глаза, при этом быть этапом эволюции в развитии технологий. В Интернете, если искать картинки по запросу «здания будущего», полученный результат можно разбить на 3 группы. В первую попадают куполообразные здания и сооружения. Во вторую состоящие из труб с огромными вентиляторами и с десятком непонятных пластин. В третью, привычные людям здания с измененной геометрией.
Художники, фантасты, архитекторы и другие деятели видят будущее по своему. Но всех их объединяет создание нового, прекрасного мира с выдающейся архитектурой.
Предлагаю вашему вниманию результат простейшего генератора зданий. Он основывается на конструктивной сплошной геометрии с оптимизацией.
Генератор зданий создан полностью на Javascript, не использует сторонних библиотек. Создан для проекта Dreams Gate.
Поздравляю с праздником друзей, знакомых и читателей моего блога!
И представляю вашему вниманию, обновление, ко дню защитника отечества.
На этот раз это поверхность планет. Процедурные планеты и поверхность созданы без использования текстур. Вы сразу можете возразить, как?! Ответ очень прост, в реальности не используются текстуры для отображения гор вообще. Расчет цвета для каждого пикселя гор осуществляется в момент вывода его на экран, по заданным координатам. Но такой подход, требует наличия, далеко не слабой видеокарты. Ведь каждый кадр, поверхность строится по новой. И чем больше разрешение экрана, тем выше требования. Но и это еще не всё, без использования текстур, повышается сложность создания реалистичной поверхности планет. Ведь нам придется писать формулы для каждого типа поверхности (трава, камни, снег, вода, земля). А это сложно и требует много времени. Так какие же преимущества и недостатки в итоге.
Преимущества планет без текстур:
Не требуется память для хранения кусков текстур
Уникальный вид поверхности
Возможность задания разных свойств материалов
Изменение поверхности в реальном времени (лава, рост травы, обледенение и т.п.)
Недостатки тоже есть:
Требуется хорошая видеокарта
Высокая сложность создания новых типов поверхности (камни, песок, трава)
Постоянный просчет пикселей без возможности кеширования
Развитие видеокарт идет в сторону улучшения и ускорения, по этому, этот (гибридный) метод будет востребован, в ближайшем будущем.
Я специально ограничил размер планеты до 13км, удалил из кода куски для работы полноразмерных планет, оставил только одну форму планеты. Так же убрал камни и траву. А чтобы планета выводилась у большего числа людей, ограничил число проходов шума, до четырех. Конечно качество картинки резко ухудшилось, но даст большему числу людей с комфортом посмотреть на планету.
Почему?!
До момента выхода игры, оно будет в таком урезанном виде, уже не раз сталкивался, что мой код кочует в чужие проекты (даже без указания автора и ссылки откуда они это слямзили).
Обновление доступно по адресу: play.dg8.ru
Управление в режиме «Реалистичная Планета»:
W,A,S,D — для перемещения камеры
Q,E — наклон камеры
Левой кнопкой мышки на экран и двигать — вращение камеры
Хочу выразить благодарность, всем ребятам, кто пришел на обсуждение проекта 20 декабря. Хочется поблагодарить за советы полученые в ходе нашего обсуждения.
Согласно ваших пожеланий, был выбран другой дизайн сайта, на нем текст более удобочитаемый. По вашим просьбам, добавлен раздел «Проекты», где указана ссылка на актуальную версию Dreams Gate под WebGL. Ссылка в разделе «Проекты» будет обновляться при выходе новых версий. После завершения первого этапа разработки, будет осуществлен перенос данных браузерной версии Dreams Gate на сайт проекта (Dreams Gate).
После долгих обсуждений, размышлений и расстановки приоритетов:
Проект Dreams Gate, перейдет в русло браузерной игры с процедурной генерацией.
Отдельный клиент игры, будет обновляться редко. Не чаще, чем раз в 4 месяца.
Проект: «Мой Фан Клуб», будет усовершенствован, полная переработка ядра под современные версии языков (php / js / python). Поддержка новых возможностей браузеров. На базе нового ядра, будет обновлен сайт Dreams Gate.
Подведу краткие итоги уходящего года:
Этот, 2015 год, принес много нового, он открыл второе дыхание проекту Dreams Gate. Помог собраться поклонникам жанра вместе. Созданы дополнительные процедурные генераторы (помещений, структур, стадий, объектов и т.д.). Сделан шаг, в освоении современных возможностей браузеров. Удалось провести десятки экспериментов, создать язык программирования с возможностью к самообучению. Так же, этот год подарил много новых знакомств. Именно в этом, уходящем году, моя жизнь круто изменилась. Теперь, уходящий 2015 год, будет теплым, в моем календаре.
В этом обновлении:
Чтобы построить базу, вам потребуются ресурсы. Так же, если вы построили добывающий завод, он начнет приносить раз в минуту по 200 кредитов. Заработала энергия, у каждой базы она своя. Ресурсы копятся есть достаточно складов. В режиме карты убрал двойной клик, так удобнее. Добавлены два новых здания (хранилище ресурсов и строительная площадка).
Да, и самое интересное, отдельный клиент, для тестирования под 64 битную версию Windows. По запросу, могу выложить и для других операционных систем (Linux / Mac). Клиент для Windows (64 бит)
Жду ваши отзывы.
Как всегда, работает голосовой чат Mumble.
Server: voice.spacesoldiersgame.com
Port: 64738
Скачать программу для подключения: Клиент Mumble
Создание, отдельного клиента, для игры долго держалось в мыслях. На днях, решил проверить, на сколько же это будет возможно. А самое главное, актуальность всего этого. В первую очередь, что оказалось весьма существенным это размер дистрибутива, в среднем ~44 Мб в сжатом виде на одну из платформ. Читать дальше
Музыка в жизни является весьма важным элементом. Именно она со мной когда занимаюсь программированием. Она окружает меня постоянно, тем самым, создает вокруг меня атмосферу творчества. Но на этот раз, для создания Dreams Gate, выбор пал на совершенно уникальные музыкальные произведения. Читать дальше
За тестирование, браузерной игры, особой благодарности удостоены: Андрей Власюк и Богдан Осадчий. Очень внимательные ребята, которые, обратили мое внимание, на сложность при создании баз. По этому были произведены изменения в интерфейсе и улучшено управление. Теперь для создания базы вы должны на карте выбрать планету (можно из списка), после этого нужно перейти на вкладку «Планета». Чтобы создать базу на планете, нужно двойным кликом мыши по поверхности планеты указать точку её расположения и указать имя новой базы. Следом можно перейти на вкладку «База» и заняться строительством зданий и сооружений. Уже реализована проверка столкновений (теперь здание в здании уже не построить). Если, что-то пошло не так, всегда можно воспользоваться кнопкой «Restart», которая находится в левом всплывающем меню.
Форма зданий на данном этапе развития проекта не является конечной, так же для каждой расы, будут созданы различные виды зданий.