Процедурные деревья в браузере

После кропотливой работы, удалось перенести мой генератор деревьев с C++ на Javascript. Но не полностью, webgl первой версии не поддерживает геометрические шейдеры, а значит вся генерация деревьев была переписана на Javascript. Работает значительно медленнее, чем реализация на C++ под OpenGL 4. Но это ни как не отражается на качестве получаемых деревьев.

webgl-tree-editor

Сейчас идет работа над портированием интерфейса, для управления формированием формы деревьев.

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

Так же планирую выпустить бесплатную версию с ограниченным функционалом и платную, в которую войдут дополнительные опции: сшивание стволов и ветвей в единый объект, управление анимацией, экспорт в популярные форматы файлов, генерация текстур стволов и листьев.

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

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

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

секта Свидетелей Иеговых

Религия и политика дело тонкое, но есть фанатики в обоих направлениях. В них и кроется вся беда. Хочется рассказать об этих ходоках и почему рекомендую их обходить стороной. Обычно, мне нет дела до различных религий, пока её не начинают навязывать, а тут, им удалось пробудить во мне желание написать статью.
Читать дальше

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

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

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

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

Платформер HTML5 + Javascript

Многие помнят такую игру как Mario. Она веселая и простая. Как же рождаются платформеры? Всё начинается с идеи, создания линейной игры, где главный герой бегает по платформам и решает какие-либо загадки, либо просто собирает монетки. В интернете огромное число платформеров, каждый из которых имеет свой уникальный сюжет. Вот и меня не отпустила идея создать очень простой платформер. Где практически нет оформления, но при этом игра должна быть очень сложной где от вас потребуется максимум усилия для её прохождения.

html5-platformer

Инструкция по игре:

Главная задача — собрать все монеты в игре и не попасть на раскаленную лаву

Передвигаться игроком — клавиши Лево Право и для прыжка Вверх

Играть

Кто следит за нами каждую секунду?

Изначально поисковые системы занимались поиском информации, но, прошло не так много времени и они превратились в системы тотальной слежки. За вами следят даже через рекламные сети, они особенно прикладывают массу усилий, чтобы показывать пользователю интересную для него подборку рекламных объявлений. Многие компании, хотят знать всё, о каждом человеке на планете и чем он занимается, какие у него слабости, какие достижения, чего боится, как можно надавить, что ему предложить. Не брезгуют применять разные методики слежения. Даже прогулки через Tor браузер, не скрывают вашу информацию. Пользователей Tor браузера, так же можно идентифицировать. Многие из пользователей прописывают DNS адрес от google 8.8.8.8. По сути, сами себя сдают.

Основные методы идентификации пользователя (цифровые отпечатки):

  • Информация о вашем браузере
  • Информация об установленной операционной системе
  • Видеокарта (информация по WebGL)
  • Шрифты в системе
  • Класс процессора
  • Временная зона
  • Разрешение экрана
  • Язык системы\пользователя
  • Установленные плагины

Но бывают и весьма интересные методы: Скролинг мыши при просмотре страниц (у каждого пользователя свой стиль), Поведение курсора при чтении информации на сайте. Хотите найти подробности по идентификации в сети, рекомендую изучить исходники от компании Valve Software, ссылка на github. Думаю для начала этих исходников будет достаточно, чтобы понять основы. Если хотите узнать, что знает о вас гугл, достаточно посмотреть на сайте гугла в личном кабинете, где вы были, где был ваш телефон, какие запросы вы вводили, какие устройства у вас еще есть. Эта статья лишь напоминание — быть осторожнее в сети и использовать нетипичное поведение, использовать шифрование. И да, жизнь в линуксе с перестройкой под себя и свои задачи. Но и не стоит забывать, Android устройства, первые кто расскажет о вас всё.

Модернизация физического движка

В современных играх, в основном, используется «импульсная» модель физического движка. По сути это расчет импульсов и сил действующих на объект с выталкиванием объектов, либо с поиском ближайшей точки до момента контакта и перерасчетом сил. На сегодняшний день создано много физических движков, все работаю с разными погрешностями. Даже в самых основных движках, задача по оптимизации так и не решена. А именно быстрый расчет движения объекта в момент скольжения и столкновения с другими за минимальное число операций. В играх физический движок за одну секунду обычно около 60-200 раз пересчитывает сцену. В итоге результат будет верный, но на его расчет мы потратим значительно больше процессорного времени. Обычно, оптимизируют число проверок столкновения, упрощают модели создавая convex представление и другие оптимизации. Так что же можно применить, чтобы упростить расчеты?

Читать дальше

Процедурное моделирование зданий

Создание зданий и сооружений в футуристическом виде, весьма сложная задача. Особенно «процедурные», ведь требуется создать не просто один этаж и размножить его, а создать совершенно новую, удивительную архитектуру, которая должна быть необычной для нашего глаза, при этом быть этапом эволюции в развитии технологий. В Интернете, если искать картинки по запросу «здания будущего», полученный результат можно разбить на 3 группы. В первую попадают куполообразные здания и сооружения. Во вторую состоящие из труб с огромными вентиляторами и с десятком непонятных пластин. В третью, привычные людям здания с измененной геометрией.

Художники, фантасты, архитекторы и другие деятели видят будущее по своему. Но всех их объединяет создание нового, прекрасного мира с выдающейся архитектурой.

Предлагаю вашему вниманию результат простейшего генератора зданий. Он основывается на конструктивной сплошной геометрии с оптимизацией.

Генератор зданий создан полностью на Javascript, не использует сторонних библиотек. Создан для проекта Dreams Gate.

1 3 4 5 6 7 11