@oop_ru

Страница 574 из 785
Alan
23.03.2018
11:41:54
раньше в книжках по ооп писали как раз про то что к играм ооп шикарно заходит) и литам нет стейта, поведения, отношений между объектами?

или объектов нет а есть аргументы?)

Anton
23.03.2018
11:42:20
лично для меня игровая архитектура как раз представляется в виде того же сайта. только в хороших веб-приложения эта архитектура еще и усложняется различными интеграциями по сети с другими сервисами. в случае игры ты моделируешь все внутри.

Google
Sergey
23.03.2018
11:42:43
а так и есть
ну так может быть сравнить чем отличаются подходы в "остальном мире" от подходов в гейм деве? тема то интересная

возьмем какой Entity-Component-System (или что там нынче популярно у вас) и будем разбираться)

Bohdan
23.03.2018
11:43:08
го статью хД

Uiiuviiw
23.03.2018
11:43:19
это тоже не правда. ооп к играм только в виде хелловворлд подходит, за исключением некоторых моментов

Anton
23.03.2018
11:43:47
ФП :)

Uiiuviiw
23.03.2018
11:43:59
ecs

pew
23.03.2018
11:43:59
при чем тут процедурщина)

Uiiuviiw
23.03.2018
11:44:16
ecs+oop

Sergey
23.03.2018
11:44:20
ecs
это ж теплое и мягкое, ECS можно делать хоть на фп хоть на ооп

Uiiuviiw
23.03.2018
11:44:27
но второго мало

Sergey
23.03.2018
11:44:46
при чем тут процедурщина)
весь вопрос как происходит работа со стэйтом

Google
Sergey
23.03.2018
11:44:52
и вся разница только в этом

(это если мы сравниваем процедурщину и ФП/ООП/ActorModel)

но второго мало
ну так вот - ECS - расскажи тупым как это работает примерно. Что есть component?

Uiiuviiw
23.03.2018
11:45:56
нет, не совсем.... компонент это карта а не обьект

pew
23.03.2018
11:46:00
при чем тут процедурщина, если я тебе говорю что разные компоненты про статы будут знать, что это такое, что такое итем, и так далее

и нет смысла с этим бороться

Sergey
23.03.2018
11:46:16
и могу ли я воспринимать систему в терминах ECS как "процесс" ? как взаимодействие процессов этих происходит?

для меня система это объект

Sergey
23.03.2018
11:46:54
но тут может быть я не прав - слишком поверхностно знакомился да и давно

Uiiuviiw
23.03.2018
11:47:33
сам процесс моделирования отличается от ооп

Sergey
23.03.2018
11:48:10
сам процесс моделирования отличается от ооп
процесс моделирования в ООП отличается в зависимости от того как кто ооп интерпритирует))

Uiiuviiw
23.03.2018
11:48:25
ентити это не ооп, но близк

Sergey
23.03.2018
11:48:27
если есть возможность кратко объяснить основную суть различий, по твоему мнению - будет хорошо

Aleh
23.03.2018
11:48:58
ентити это не ооп, но близк
по каким критериям это не ооп и по каким близко?

Sergey
23.03.2018
11:48:58
Uiiuviiw
23.03.2018
11:49:09
с телефона тяжело спорить

Sergey
23.03.2018
11:49:11
а то для некоторых C++ это ооп

Aleh
23.03.2018
11:49:19
или джава

Google
pew
23.03.2018
11:49:23
а что такое ООП?)
хороший вопрос

Uiiuviiw
23.03.2018
11:49:36
там нет ссылок

Sergey
23.03.2018
11:49:44
с телефона тяжело спорить
как будет удобно можем продолжить, но я предлагаю пока отбросить "ооп или не ооп" и сосредоточиться на сути.

Uiiuviiw
23.03.2018
11:49:46
нет инкапсуляции

Sergey
23.03.2018
11:49:56
нет инкапсуляции
то есть нет границ и модульности?

все есть одна огомная система и все общее?

Uiiuviiw
23.03.2018
11:50:18
я имею доступ отовсюду ко всему

Sergey
23.03.2018
11:50:27
мне казалось что уже лет 20 никто так игры не пишет...

я имею доступ отовсюду ко всему
то есть в изоляции компоненты разрабатывать невозможно?

ну или даже по другому - хоть какая-то декомпозиция же есть?

черт с ним с доступом

pew
23.03.2018
11:51:33
я имею доступ отовсюду ко всему
не ну эт ты загнул наверн)

Uiiuviiw
23.03.2018
11:51:40
есть сущности просто стейт и есть компонент -контейнер который хранит свойства сущностей

ну да загнул, но компоненты как карты собираются

Sergey
23.03.2018
11:52:47
ну да загнул, но компоненты как карты собираются
то есть стэйт группируется по компонентам?

Uiiuviiw
23.03.2018
11:52:55
да

pew
23.03.2018
11:53:18
у меня лично вообще такая шняга еще что часть классов и структур одинаковые для клиента и сервака, это еще один фактор в пользу того сделать некоторые объекты просто с данными, с минимумом поведения

Uiiuviiw
23.03.2018
11:53:38
поля сущностей групперуются в компоненты

Sergey
23.03.2018
11:53:55
там нет ссылок
можно подробнее? ты про референсы на объекты? то есть все by value? все имутабельное (копирование при записи)

Uiiuviiw
23.03.2018
11:54:07
да

Google
Uiiuviiw
23.03.2018
11:54:19
мутабельно

но это от яп зависит

Alan
23.03.2018
11:54:45
при чем тут процедурщина, если я тебе говорю что разные компоненты про статы будут знать, что это такое, что такое итем, и так далее
ну например стата может быть контейнером с данными без поведения, при этом стата по разному влияет на разных персонажей верно? например у него есть стата - регенерация на 50% здоровья, но один тип персонажа регенирируется за час, другой за сутки, и там где тебе надо использовать регенерацию в коде ты берешь персонажа, спрашиваешь у него стату и спрашиваешь какой тип этого персонажа и сам решаешь снаружи как конкретно этого чувака регенерировать верно?

pew
23.03.2018
11:54:46
смотря где

Alan
23.03.2018
11:55:23
а не говоришь ему регенерируйся братан так как ты можешь )

pew
23.03.2018
11:56:59
ну например стата может быть контейнером с данными без поведения, при этом стата по разному влияет на разных персонажей верно? например у него есть стата - регенерация на 50% здоровья, но один тип персонажа регенирируется за час, другой за сутки, и там где тебе надо использовать регенерацию в коде ты берешь персонажа, спрашиваешь у него стату и спрашиваешь какой тип этого персонажа и сам решаешь снаружи как конкретно этого чувака регенерировать верно?
кокретно когда у тебя зависимость вот надо персу реген сделать - все просто, я говорю про случаи когда за раз много между собой различных объектов взаимодействуют, тип тебе и координаты игроков нужны, и их статы и при этом поведение у оружия может быть разное что-то в каком-то месте соприкоснется больше чем одним боком

Alan
23.03.2018
11:57:20
ну вот этот пример можно усложнить?

типа ты в такой то зоне карты регенерироваться будешь сто лет?

Uiiuviiw
23.03.2018
11:58:34
поля сущностей логически компонуются в компонентах, компоненты в узлах, а для каждого типа узла своя система

иначе игру не сделаешь

pew
23.03.2018
11:58:56
ну вот этот пример можно усложнить?
давай я голосом запишу ответ, влом писать

можно подробнее? ты про референсы на объекты? то есть все by value? все имутабельное (копирование при записи)
в юнити и ссылки и значения, там на сишарпе пишется, собственно просто + компонентная система с апдейтами

допустим на юнити когда делаешь тот же трансформ, чуть ли не каждым компонентом юзается, и что, это не считается макаронами

классно в вебе, туда стринг, сюда стринг

Alan
23.03.2018
12:13:45
ну все это есть в любом проекте когда наружу выпячивают все свойства сущности ) возьми онлайн казино с каким нибудь выигрышем который надо доставить в стим, надо посчитать шансы в момент крутки рулетки, надо посчитать есть ли этот выигрыш в наличии чтоб его доставить в момент игры, надо чтоб пользователи все-таки выигрывали и оставались довольны проектом, перед тем как он крутанет рулетку надо впринципе понять кто это: ютубер который ролик про твой проект сейчас снимает, или абузер который занес 100 р но каким-то образом набил себе на 100 тыс выигрышей, потом оказывается он дослужился до вип-статуса на сайте который тоже влияет на игру

Uiiuviiw
23.03.2018
12:13:54
я описываю пуре ecs все по разному ее реализуют. но там не иммутабельности и все это разруливается за счет приоритетов изменения

Alan
23.03.2018
12:14:10
и будет так же страшно и легче все наружу высунуть и юзать там где надо через геттеры

а так да, строки туда сюда гоняем)

Uiiuviiw
23.03.2018
12:15:14
ссылок нет в плане точечной нотации, за исключением сущностей.

Google
Uiiuviiw
23.03.2018
12:16:43
в экс, компонент имеет метод get

pew
23.03.2018
12:17:11
не, я про то что ты говоришь без ссылок

не понял наверно о чем ты

Uiiuviiw
23.03.2018
12:17:44
компонент это как контейнер с объектами которые являются полями сущностей

я о том что ооп не любит когда так делают

и в юните компонент это скорее нода чем компонент

Sergey
23.03.2018
12:25:20
сложна

я о том что ооп не любит когда так делают
хз кто там чего любит и чего не любит но вижу что ECS бывает что юзают с actor model

Uiiuviiw
23.03.2018
12:32:29
актор модель же события шлет?

Sergey
23.03.2018
12:33:12
сообщения скорее, хотя разница незначительна

pew
23.03.2018
12:33:22
короче вы тут решайте что как назвать, а я пошел по делам)

Uiiuviiw
23.03.2018
12:33:41
в чистой ентити нет событий там цикл. хотя сделать что угодно можно

Sergey
23.03.2018
12:33:59
во всяком случае я такое читал

Uiiuviiw
23.03.2018
12:36:19
значит те кто среагирует на изменение не относятся к системе

там цикл

Roman
23.03.2018
13:44:04
блин жаль отвлеклись все от пушек, по моему хороший был пример =)

Alex
23.03.2018
16:52:10
Господа, прошу прощения, дайте кошерную ссылочку про эти пресловутые экторы почитать. Наверное, где-то было уже, но разве ж теперь тут сыщешь.

Страница 574 из 785