Импорт Javascript кода

Много времени было потрачено на создание системы преобразования Javascript кода в блок схемы. Это помогло значительно развить структуру программы, доработать основные части, устранить десятки ошибок и превратить редактор блок схем в полноценное приложение. Пользуясь редактором, можно легко модернизировать код. Буквально менять структуру кода на лету изменяя принцип его работы.

Например, следующий код:

var a = 5, c = 3, b = 32, z = "Hello World";
var x = ( ( 4 * a + b ) * ( 2 * c + a) );
console.log( z );
console.log( x );    

Будет преобразован в визуальный вид:

При этом, уже можно его редактировать, запустить выполнение или произвести другие манипуляции. Код в примере простейший, показан с целью демонстрации перевода Javascript в его визуальное представление. Система тестировалась на весьма больших фреймворках, библиотеках и различных файлах. Основная задача модернизации не только импортировать Javascript, но и экспортировать обратно, без потерь.

Редактор блок схем в браузере (Blueprint)

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

Изначально, хотел просто портировать свой код в браузер. Но, решил использовать по максимуму JavaScript и написать код в совершенно другом стиле.

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

Теперь о применении. Визуальный редактор кода будет добавлен в основные проекты: Студия Флоры, Редактор Моделей, Шутер, Dreams Gate.

 

Оптимизация треугольников

Последние четыре дня были весьма насыщенными. Стояла задача: ускорить созданием базовой модели и исправить недочеты в базовой модели. До оптимизации создание базовой модели занимало 10 и более секунд на 50 костей. Конечно, в современном мире это совершенно неприемлемо. Началась кропотливая работа над ускорением процесса создания модели.

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

Преобразование в треугольники

В предыдущей статье, рассказывалось о редакторе моделей для различных форм жизни.

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

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

Таинственное путешествие

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

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

Быстрый способ трансформации AABB

При вращении объектов, возникает необходимость перерасчета AABB (Axis Aligned Bounding Box — Параллельный Осям Ограничивающий Прямоугольник). Сразу приходит простая идея — взять 8 вершин и повернуть их. Но в этом случае мы получим весьма дорогой способ. Нам потребуется, посчитать координаты самих вершин и координаты после трансформации, а уже после найти минимальное и максимальное значение.

Наиболее оптимальное решение:

function transformAABB(bbox, matrix)
{
	var min_x = matrix.axisX * bbox.min.x;
	var max_x = matrix.axisX * bbox.max.x;
 
	var min_y = matrix.axisY * bbox.min.y;
	var max_y = matrix.axisY * bbox.max.y;
 
	var min_z = matrix.axisZ * bbox.min.z;
	var max_z = matrix.axisZ * bbox.max.z;

	var pos = matrix.getPosition();

	return [
		vec3.min(min_x, max_x) + vec3.min(min_y, max_y) + vec3.min(min_z, max_z) + pos,
		vec3.max(min_x, max_x) + vec3.max(min_y, max_y) + vec3.max(min_z, max_z) + pos
	];
}

Конечно, есть и другие методы быстрого вычисления AABB после трансформации объекта, но этот способ оказался одним из наиболее быстрых и простых.

Системные блоки из прошлого… 2012 года

В далеком, 2012 году, были куплены два корпуса (3cott M01) и две материнские платы размера Mini-ITX для этих корпусов. Они покупались для создания дополнительного хранилища файлов с доступом в интернет. Основная их цель по плану — это делать бакапы с серверов, которые по сей день работают в разных частях планеты (игровые сервера + различные сайты).
Но, по странному стечению обстоятельств, эти системные блоки, так и не были собраны и всё это аккуратно было убрано в шкаф. Прошло время и настал их день, они вновь стали нужны, но уже для других целей.

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

1 2 3 9