Как стать автором
Обновить
27
0.2
Farley Drunk @SH42913

Разработчик C#/Unity3D

Отправить сообщение
Спасибо за Noesis UI!
Поддержу народ выше.
Не движки кривые, а руки разработчиков игр. Хотя сами движки тоже не без огрехов.
ИМХО, с правильным подходом к разработке и на Unity можно добиться хорошей картинки при хорошей производительности.
Звучит, вцелом, неплохо, но статья, конечно, маловата и не дает полного представления.
Тем не менее обязательно попробую как-нибудь на досуге.
ECS никак не ограничивает разработчика. Можно сделать все, что угодно. Единственное, что ECS потребует немного больше времени на построение хорошей архитектуры проекта.
Ну а чтобы не дублировать код, в ECS тоже возможна абстракция, только выстраивается она совсем иначе, нежели в ОО.
Автор статьи все усложняет и, не до конца понимая ECS, немного передергивает.
Да, у плюсов слишком много нюансов :(
Есть несколько вариантов как использовать ECS в UI.
В проекте, которым я сейчас занимаюсь на работе(тут свой закрытый ECS-фреймворк), например каждый UI элемент — сущность. То есть кнопка — сущность с компонентами ButtonComponent и MyMarkComponent, при нажатии она генерирует ивент по самой себе и его можно ловить в любой из систем.

Но я больше склоняюсь к варианту, который предлагает Leopotam, где UI элементы просто-напросто генерируют ивенты внутрь ECS.
github.com/Leopotam/ecs-ui
Можешь посмотреть как работает и выглядит ECS на примере простенького PacMan с использованием LeopotamECS и Unity3D
github.com/SH42913/pacmanecs

Самый главный плюс ECS — его легкая расширяемость, взаимозаменяемость и слабосвязность систем, в некоторых случаях(LeoECS самый лучший пример такого случая) ECS дает еще и приличный буст к производительности, ибо обработка выходит гораздо легче. Единственная трудность ECS — его освоение на первых парах, очень сложно перестроить восприятие и построение архитектуры с ОО на ECS, у меня на это ушло пол года и весь этот опыт я постарался вложить в примере PacMan.
Быть может когда-нибудь я напишу статью о том как перестроить видение архитектуры с ОО на ECS.
Складывается ощущение, что автор так и не понял ECS, хоть и видит разницу между EC и ECS.
ИМХО, ECS позволяет куда более масштабируемый, простой и удобный подход к архитектуре, нежели ОО. В условиях вечно меняющихся идей у геймдизов и начальства, ECS — подходит куда лучше. Но понять ECS после ОО действительно крайне трудно.
Звучит интересно, даже жаль, что я не знаком с JS :(
Кораблей пока как таковых нету, но вцелом любой гравитационный объект(в том числе и корабли в будущем) оказывают влияние на все другие гравитационные объекты.
Центральное «солнце» приколочено к центру мира, а вот все остальные объекты влияют друг на друга, так что и планеты к кораблям тянуться будут
Ну и ладно, оставлю пока так, вроде есть не просит. Не думаю, что понадобится в игре больше 1к симулируемых разом тел.
Еще сейчас считается на любых расстояниях, если привязать какое-то ограничение на дистанцию, то нагрузка еще сильнее упадет.

Меня пока куда больше волнует предсказание и как его лучше реализовать.
А идея то не такая и плохая.
Если все таки доведу планируемый проект до вменяемого состояния, то такой вид «оружия» обязательно добавлю.
Ах, если бы я настолько точно рассчитывал…
Я просто каждое обновление мира считаю обычный закон всемирного тяготения, ибо это все таки развлекательный проект, а не научный. Пока даже предсказания траектории у меня нету .-.
Наверное стоило сказать не «гравитационное взаимодействие», а «считает силу гравитации»
Вот и я так подумал.
Но при этом масса должна быть достаточной, чтобы нанести повреждения радиаторам и панелям.
Зависит от уровня симуляции, опыта человека, архитектуры приложения и целей проекта.
Простенький клон Asteroids — да, человек с опытом за несколько часов сделает.

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

А за прошлые выходные уже с обширным опытом запилил систему на ECS-архитектуре, где все расчеты идут на веб-сервере, а клиент работает с сервером через WebAPI.
image
Пока только симулирует в реальном времени гравитационное взаимодействие между телами и держит без особых проблем 800 тел(хотя клиенту из-за Trail'ов становится тяжеловато их рисовать и FPS падает до 20, но серверу было норм).
Собсно на базе этого я и хотел бы запилить мультиплеерную поигрульку с орбитальными механиками(это еще под вопросом) и в меру реалистичными космическими столкновениями.
Ну в контексте космических сражений любые кинетические неуправляемые снаряды практически бессмысленны, однако если подойти на нужную дистанцию, где неуправляемая кинетика возможно, то книпелля норм зайдут :D
Мы хоть и шутим, но они имеют определенный смысл против радиаторов и других панелей
И книппеля, йо-хо-хо!
Посмотрю, но по первым тытруб видосам создается ощущение, что все тот же кисель.
Даже в моей первой убогой поделке получше полеты.
www.youtube.com/watch?v=NOTXgIv0Qik
Чувак, я хотел бы создать в меру реалистичную двухмерную(для начала) игру про космические бои, но мне очень не хватает напарника, с которым можно было бы обсуждать все и от которого можно было бы почувствовать поддержку и соответственно мотивацию.
Если тебя заинтересовало мое предложение — отпишись в телеграмм(в профиле) или в личку.

Информация

В рейтинге
2 483-й
Откуда
Пермь, Пермский край, Россия
Зарегистрирован
Активность

Специализация

Game Developer
Middle