EN
creator cover Project Artifact

Project Artifact

Top Down MMO Shooter
Project Artifact
39
subscribers
goals
6 of 250 paid subscribers
Требуется 250 самоотверженных бойцов! Вместе мы справимся! :)
39 of $ 166 money raised
ЗП художника за Июнь.

About the creator

Project Artifact - многопользовательский шутер с видом сверху, элементами rogue like игр, открытым миром и подземельями с челленджами.
В нашей игре Вам предстоит:
     - развивать персонажа
     - улучшать экипировку
     - изучать большой, открытый мир в одиночку или с друзьями
     - проходить челленджи, участвуя в соревнованиях с другими игроками за место в рейтинговых таблицах
Дело происходит в постапокалиптическое время. На земле произошел катаклизм приведший к частичному исчезновению человечества.
Те кто остался жив вынуждены собираться в общины чтобы выживать и защищаться от множества опасностей в том числе и зомби в которые обратились те кому не повезло.
Со временем персонаж обучается и улучшает свои навыки и характеристики.
За разные действия в игре начисляются очки опыта, набрав необходимое количество опыта для получения уровня игроку становится доступно очко талантов, его можно использовать для улучшения одной из основных характеристик:
     - Силы
     - Ловкости
     - Интеллекта
Развиваясь и усиливаясь игрок может изучать всё более опасные участки карты и участвовать в новых челленджах.
У персонажа есть портативное устройство "Анализатор ДНК", оно позволяет получить временные усиления.
После уничтожения врага, после него на земле остается ДНК материал, игрок может его подобрать.
Подобрав достаточное количество материала, анализатор выдает на выбор 3 боевых усиления, выбрав усиление оно будет действовать на персонажа ограниченное время.
Для продления действия усилений нужно получить новое, т.е. собрать достаточно материала.
В зависимости от уровня игрока он может "выдерживать" ограниченное количество усилений единовременно.
Вооружение в игре представлено разными типами огнестрельного оружия.
Типы вооружения:
     - Пистолеты
     - Автоматы
     - Дробовики
     - Снайперские винтовки
     - Ручные гранатометы
Оружие имеет разные характеристики, типы патронов и свойства боеприпасов.
Характеристики оружия могут быть улучшены.
Помимо изучения основного мира, игрокам доступны испытания проходя которые они получают особую добычу и рейтинговые очки.
Испытания проходят на отдельных картах специально подготовленных для этого.
Задачи испытаний могут быть разными:
     - добраться из точки "А" в точку "Б" за отведенное время, при этом уничтожив достаточное количество врагов
     - удерживать позицию, пока на вас нападает определенное количество волн врагов
     - не дать врагам уничтожить объект, продержавшись необходимое количество волн
Сложность сценария увеличивается в зависимости от пройденной игроком предыдущей сложности.
Т.е. если игрок прошел 10й уровень сложности ему будет доступен 11й.
Bess_art - крутейший художник, человек самоотверженно реализующий любые задумки!
ruDimbo - программист
Технологии:
Node JS, css, html, chromium, canvas, webgl
Available to everyone
Jun 16 11:05
ECS - Архитектура динамических миров (free)
ECS архитектура позволяющая управлять комплексными структурами без экспоненциального повышения сложности поддержки и расширения проекта.
Но помимо банального удобства мы получаем следущее:
     - быстрое ядро, в связи с тем что структура ECS это обычный массив то мы можем эффективно использовать память процессора (да, именно его)
     - при правильно построенной работе с этим ядром, мы снижаем влияние сборщика мусора. Сборщик довольно прожорлив к ресурсам, лучше бы его не будить.
     - отделение логики от данных
     - отказоустойчивость
     - гибкость, мы можем легко добавлять и удалять свойства Entity и не "ломать" код
     - сумасшедшие возможности оптимизации
Готовая реализация (рабочий код) находится тут - https://boosty.to/rudimbo/posts/89d9e285-c5df-4166-84e9-f998fdab97d4
Советы по использованию:
     - не добавляйте методы в компоненты
     - не мутируйте данные, если в компоненте position свойство X = 0 (number) следите чтобы тип данных оставался прежним.
     - используйте быстрые методы перебора массивов (for)
     - оптимизируйте методы перебора. Где-то нужно пробежать по всем объектам, где-то только найти нужный или несколько и остановиться
     - старайтесь избегать вложенных for / foreach
     - не удаляйте entity из середины массива, либо пометьте как null либо сместите на последний индекс, после чего удаляйте.
Как создать ECS структуру?
Первым делом необходимо определить контейнер в котором будут находиться наши сущности (entity), это может быть массив или объект.
Этот контейнер обычно называют World и должен иметь функционал работы с сущностями, добавление, поиск, удаление, работа с компонентами, прикрепление их к сущности, удаление из сущностей.
Далее делаем сущность, она по сути является простым объектом с полями - id, components.
Итак компонент, основной двигатель ECS.
Делаем маленький, изолированный объект (ака класс) с названием характеризующим данные которые в нем будут лежать.
Помним что компонент ничего не умеет! Это чистые данные, как корзина для мусора.
Последнее звено в цепи ECS - система.
Логический блок, вот тут мы можем оторваться и написать логику игры.
Здесь можно почти всё! Бегаем по сущностям, изменяем данные в их компонентах, сравниваем перетасовываем, удаляем и т.д.
Поздравляю! Теперь вы знаете как создать ECS архитектуру для игры.
Моя реализация ECS (рабочий код) находится тут - https://boosty.to/rudimbo/posts/89d9e285-c5df-4166-84e9-f998fdab97d4
Log in, to post comments
For subscribers only
Jun 16 11:02
ECS - Архитектура динамических миров
Руководство по созданию и использованию ECS архитектуры. Плюс готовая реализация во вложенном .js файле!
For subscribers only
Jun 16 00:40
Запись стрима. Разработка, день 41
Архивная запись №41
For subscribers only
Jun 15 23:10
Запись стрима. Разработка, день 39
Архивная запись №39
For subscribers and one-time payment
Jun 15 22:38
Запись стрима. Разработка, день 38 часть 2
Архивная запись №38 часть 2
For subscribers and one-time payment
Jun 15 22:20
Запись стрима. Разработка, день 38 часть 1
Архивная запись №38 часть 1
For subscribers only
Jun 09 21:19
Запись стрима. Разработка, день 37
Архивная запись №37
For subscribers only
Jun 09 11:17
Запись стрима. Разработка, день 36 часть 2
Архивная запись №36 часть 2
For subscribers and one-time payment
Jun 09 09:26
Запись стрима. Разработка, день 36 часть 1
Архивная запись №36 часть 1
For subscribers only
Jun 07 19:05
DEVLOG #1 Что на данный момент сделано?
DEVLOG #1 Что на данный момент сделано?

Subscription levels

Очаг

$ 1.16 per month

Бронза

$ 2.48 per month
+ chat
The subscription level includes access to a private chat in Discord

Серебро

$ 5 per month
+ chat
The subscription level includes access to a private chat in Discord

Золото

$ 8.3 per month
+ chat
The subscription level includes access to a private chat in Discord

Платина

$ 16.6 per month
+ chat
The subscription level includes access to a private chat in Discord

Палладий

$ 166 per month
+ chat
The subscription level includes access to a private chat in Discord
Go up