Год на Javascript + WebGL

Прошел год после начала создания приложений с использованием Javascript. Это было трудным этапом, познать все технологические аспекты. Изменить стиль мышления, стиль написания кода. Но за этот  период удалось развиться, создать необходимые библиотеки, наработать базовый код. Часть портировать из своих разработок на C++, а так же освоить JS как со слабых сторон, так и с сильных. С уверенностью могу сказать, JS отличается от различных языков программирования гибкостью, да язык не идеален, есть масса проблем, но та легкость с которой можно создать сложные приложения, игры и утилиты, полностью покрывают все проблемы. А самый главный аргумент это доступность, хочешь показать проект, просто предложи человеку ссылку.

С++ стал использовать значительно реже, в основном использую лишь для поддержи старых проектов.

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

После кропотливой работы, удалось перенести мой генератор деревьев с 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 устройства, первые кто расскажет о вас всё.