Русский
Русский
English
Статистика
Реклама

Движок

Чатик с открытым исходным кодом

19.02.2021 16:11:01 | Автор: admin

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

Я уже показывал Хабру свою разработку, но так как она мало относится к тематике сайта, а исходников я не предоставил, статья не вызвала интерес аудитории.

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

Теперь о минусах

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

Если кому-то всё же интересно

В идеале я хочу отдать проект тому, кто готов его поддерживать, и даже помогу с установкой и настройкой (если вы еще не имели дело с node.js или у вас просто возникли какие-то трудности с работой модулей). А если вы захотите развивать его, помогу разобраться в коде и исправить некоторые баги (сразу скажу, что они есть, но их мало и они незначительные и не препятствуют свободному общению). Также приветствую тех, кто просто хочет использовать этот движок для своих целей, но брать чужой портал под ответственность не готов, я готов поделиться с Вами движком

О чем всё же речь

Сайт crawc.net (не обращайте внимания на ботов, их можно убрать). Исходный код и структуру базы данных можно скачать тут.

Более подробно почитать о сайте и его возможностях можно тут.

Подробнее..

Из песочницы Обучение технологии ray-casting, часть 1

15.08.2020 16:07:21 | Автор: admin
Двумерное indie трехмерные AAA-проекты А может что-то промежуточное?

Приветствую всех читателей. Мною было решено обобщить и перевести замечательную серию статей Ray-Casting Tutorial For Game Development And Other Purposes за авторством Ф. Пермади по изучению технологии ray-casting.

image

В данной публикации затронуты и объединены What is Ray-Casting и Ray-Casting vs Ray-Tracing For Game Development оригинальные статьи.

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

Ну что ж Начнем!

Что такое ray-casting?


Ray-casting (далее бросание) это технология, которая преобразует ограниченный набор данных (максимально упрощенная карта, либо же план этажа) в 3D проекцию путем бросания лучей из точки обзора по всей области видимости. К примеру, на картинке ниже показано, как бросание преобразует что-то двумерное A во что-то почти что трехмерное B.

image

Ray-casting и ray-tracing


Как и ray-casting, ray-tracing (далее трассировка) определяет видимую часть поверхности путем бросания воображаемых лучей света из точки обзора в сторону объекта на сцене.

Предыдущие два определения создают видимость, что бросание и трассировка это одно и то же. На самом деле, некоторые книги вовсе используют оба термина, как взаимозаменяемые. Но тем не менее, с точки зрения gamedev-программистов, бросание лучей стоит рассматривать, как частный случай реализации трассировки.

Бросание быстрее трассировки. Это возможно за счет того, что оно использует некоторые геометрические ограничения для ускорения процесса рендеринга. К примеру, стены всегда перпендикулярны полу (это можно увидеть в таких играх как Doom или же Wolfenstein 3D). Если бы не такие ограничения, то технология бросания не была бы возможна.

Далее по пунктам представлено глобальное сравнение бросания и трассировки. Главное запомнить, что при бросании используется меньшее количество лучей, чем при трассировке, из-за определенных геометрических ограничений. Либо же, что бросание специализированная реализация трассировки.

Принцип


Бросание: лучи выпускаются и движутся группами, основываясь на некоторых геометрических ограничениях. К примеру, на экране с разрешением 320х200 генератор лучей выпустит их только в количестве 320 штук (это число мы получаем из следствия, что экран, имеющий ширину в 320 пикселей, имеет и 320 вертикальных столбцов).

Трассировка: каждый луч вычисляется по отдельности, то есть каждая точка на экране монитора (обычно, пиксель) трассируется одним своим лучом. К примеру, на экране с разрешением 320х200 нам необходимы 64 тысячи (320 * 200 = 64000) лучей, что в 200 раз медленнее в сравнение с бросанием.

Формула


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

Скорость


Бросание в разы быстрее трассировки и подходит для процессов реального времени. Трассировка же ни как не подходит (разве что у нас не имеется ПК с частотой в 500Гц).

Качество


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

image

Сцена из Wolfenstein 3D. Заметьте, картинка делится на прямоугольные блоки. Объекты (оружие) и враги (собака) это просто прозрачные растровые изображения, которые масштабированы и отрисованы поверх заднего фона.

image

Сцена из игры 7th Guest. Результат рендеринга поражает. Тем не менее, передвижения игрока ограничены ранее определенными путями (это обусловлено тем, что количество заранее отрендеренных картинок ограничено).

Внешний мир


При бросании мы геометрически ограничены и в распоряжении находятся только простые фигуры. При трассировке же любая фигура может быть отрендерена.

Память


Бросание: отрендеренные изображения не сохраняются на диск. Обычно, только сама карта сцены хранится на носителе, а соответствующие изображения генерируются на лету.

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

Примеры


Бросание:

  • Wolfenstein 3D (iD Software)
  • Shadow Caster (Raven)
  • Arena (Bethesda)
  • Doom (iD Software)
  • Dark Forces (LucasArts)

Трассировка:

  • 7th Guest (Trilobyte)
  • Critical Path (Mechadeus)
  • 11th Hour (Trilobyte)
  • Myst (Cyan)
  • Cyberia (Xatrix)

Конец первой части

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru