1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/lisniuse-nomanssky2D

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Введение

Что такое No Man's Sky:

No Man’s Sky — это игра, посвящённая космическим приключениям и выживанию. Теоретически в игре есть 18 446 744 073 709 551 616 планет, которые могут исследовать игроки, что практически бесконечно. Кроме того, поскольку игра использует алгоритмы для генерации планет, она не занимает много места на диске и может полностью работать в автономном режиме.

В настоящее время наиболее активным онлайн-сообществом является Baidu Tieba: No Man’s Sky Tieba.

История проекта:

После выхода No Man’s Sky я увидел множество статей и постов, посвящённых анализу этой игры. Авторы этих постов были как технически подкованными игроками, так и теми, кто не разбирается в технологиях, а также опытными геймерами. После прочтения мнений этих экспертов я, как разработчик, решил лично изучить эту удивительную игру с алгоритмами.

На самом деле вся вселенная генерируется случайным образом и остаётся неизменной, но положение каждой звёздной группы или системы фиксировано и имеет абсолютный идентификатор и координаты. Поэтому мы можем назвать их и загрузить на сервер в No Man’s Sky.

Все объекты во вселенной No Man’s Sky создаются из одной координатной точки случайным образом, но этот случайный процесс не является истинно случайным, а псевдослучайным, с определёнными правилами внутри.

Система животных в No Man’s Sky не очень хорошо проработана, и планеты слишком однообразны, явно являясь незаконченным продуктом. Как разработчик H5, я могу создать подобный полуготовый продукт с алгоритмом за неделю.

Далее расскажу о некоторых особенностях моего демонстрационного проекта:

Разработка заняла менее 48 часов.

Прежде всего, стоит отметить, что принципы технологии, используемые в No Man’s Sky, практически идентичны тем, что я использовал в своём демонстрационном проекте, от создания вселенной до генерации звёздных систем и даже цветов планет.

Теоретически мой демонстрационный проект содержит 3,13 * 10^30 звёздных групп, каждая из которых имеет 150 постоянных звёздных систем, в среднем по 7 планет в каждой. Это означает, что существует примерно 3,29 * 10^32 планет, что может немного отличаться от количества планет в No Man’s Sky. Честно говоря, я не уверен, какое число больше.

Камера и вселенная разделены, и для рендеринга фиксированной области вселенной используется знакомый всем процесс генерации. Можно свободно перемещаться по всей вселенной с помощью клавиш WASD.

Проект создан с использованием HTML5 Canvas 2D API без использования сторонних игровых движков на основе холста. Весь код написан вручную, и основной код не превышает 600 строк.

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

Кроме того, в процессе разработки этого демонстрационного проекта я приобрёл новые знания и понимание алгоритмов.

Два: Как играть:

Клавиатурные клавиши: W A S D (соответственно вверх, влево, вниз и вправо). Мышь: дважды щёлкните по планете, чтобы войти в постоянную звёздную систему.

Три: Онлайн-демонстрация:

http://case.tiesec.org/noMansSky2d/

PS:

Исходный код можно скачать и изучить.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Безлюдный космос: простая симуляция технологий создания вселенной, случайной генерации и процедурной генерации. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/lisniuse-nomanssky2D.git
git@api.gitlife.ru:oschina-mirror/lisniuse-nomanssky2D.git
oschina-mirror
lisniuse-nomanssky2D
lisniuse-nomanssky2D
master