
Sergey
25.03.2018
10:17:10
Еслии не секрет - в чем фича?
ну просто реализация эктор модел на php))) но как-то я так и не придумал проекта где прям профит получу... разве что какие-нибудь аукционы
ну то есть профит можно было бы получить на проектах где группа людей работает интенсивно в краткий период времени с одними и теми же данными
и где логика какая-то присутствует.
но если мне даведется такие проекты делать - я лучше просто не буду писать это на php)

Google

Sergey
25.03.2018
10:18:53
а возьму какой элексир хотя бы

Like
25.03.2018
10:19:01
Хейтер )))

Uiiuviiw
25.03.2018
10:19:12
а акторы по отдельности компилируются?
если их можно заменит?
это вы имели ввиду под отдельными комьпьютерами?


Sergey
25.03.2018
10:22:20
зависит от имплементации, но идея в отсутствии main рутины, точки входа в программу, есть просто сеть экторов. В erlang ты можешь поднимать новые треды в рантайме - в akka + scala вроде как нет
ну то есть на данный момент не смотря на все эти акки единственной реальной имплементацией модели экторов является эрланг... так как он изначально под это проектировался.
а все остальные варианты будут обладать ограничениями тех языков на которых ты систему пилишь (либо будет медленно из-за IPC)
если тебе не нужно поддерживать аптайм системы близкой к 100%, или ты будешь разруливать вопрос обновления кода своими силами (как все сейчас делают с контейнерами и кубернетисами), если тебя интересует только модель конкурентности поудобнее чем треды - то экторы можно реализовать на чем хочешь
просто конечно это будет не столь эффективно как когда у тебя рантайм под это заточен

pew
25.03.2018
10:27:16
так, а как скинуть то

Sergey
25.03.2018
10:27:36
так, а как скинуть то
можешь в gist если хочешь, там мобно будет более предметно обсуждать и в комменты тезисы скидывтаь
а то тут затеряется ведь

Google

pew
25.03.2018
10:28:28
я просто это оставлю тут
потому что что бы на 100% точно это описать, надо кучу усилий, которые нет смысла на это тратить

Sergey
25.03.2018
10:29:14
ну хоть так давай)

Uiiuviiw
25.03.2018
10:29:41
а если они отдельно компилируются, то логика не может быть разделяемой... и получится что одна логика будет скомпилирована множество раз?


pew
25.03.2018
10:29:57
Для выстрела надо: ( ИМЕННО ДЛЯ ОГНЕСТРЕЛЬНОГО ОРУЖИЯ, у оружия ближнего боя другие параметры, типа угол размаха, растояние на каком достает, соответственно без полета пули но с траекторией размаха)
Вектор в котором происходит выстрел
конец дула(грубоговоря)
Текущий разброс от поворота при смене направления прицеливания (если целишься в одну сторону - плавно снижается)
Текущий разброс от бега (Если не бегишь то постепенно снижается)
Множитель для конкретной пушки для разброса поворота (не оптимально каждый тик умножать это высчитывая разброс при повороте, поэтому домножается только при выстреле)
Для бега так же множетель
Дальше кидается кубик что бы понять в каком направлении полетит пуля
Когда пуля встречает какую-то преграду идет просчет попала она в неё или нет на основе высоты преграды и диапазона высот в которых летит пуля(то есть у нас четко определено направление пули только в горизонтальных осях, то есть если с верху смотреть, вертикальное положение во время нахождения пули в области преграды расчитывается)
Если рандом выкидывает что пуля выше преграды, то нижний предел диапазона пересчитывается на основании преодоленной преграды и дальше все повторяется.
Если пуля все же достигает какого-нибудь другого игрока или моба, то дальше в ход идет расчет урона и шанса попадания именно рпгшного для этого нам надо:
Растояние которое прошла пуля, что бы снизить урон если далеко жертва
Шанс жертвы что в неё сложнее попасть, то есть типа уворота.
Величина у атакующего которая снижает шанс жертвы что по ней не попадут
Урон конкретного типа
Шанс поглощения какого-то количества данного урона жертвой
Величина поглощения при поглощении
Шанс атакующего пробить поглощение
Криты там всякие ну это понятно, но может понадобиться добавить уменьшение урона жертвой именно от крита как в ВОВе ресайленс
Применение какого-то эффекта при нанесении урона (поломка костей - пока не реализовано, оглушение, кровотечение (пока не реализовано))
Запись информации о попадании в фиговину для локации, что бы в конце тика всем разослать инфу о попаданиях
Сразу скажу на счет подписок: локация на персонажа не должна подписываться, иначе это будет трешак, персонаж тоже на локацию не подписывается, на локации может быть много кого, и будет генериться не нужный мусор когда игроки будут входить и выходить с локации и весь список делегата будет заново формироваться, это же сервак
И это только выстрел, может я что-то упустил, ну примерно так, ну а теперь интересно посмотреть кто бы как это реализовал))))


Sergey
25.03.2018
10:31:24

pew
25.03.2018
10:31:42
https://youtu.be/ohoziTneUIA?list=PLIDnqr06TjPEaCkJuZlvl6J8KEqBuZrMI&t=15
выглядит выстрел вот так что бы было понятнее про какой тип управления и атаки идет речь
это не по таргету когда скиллы летят

Uiiuviiw
25.03.2018
10:33:15
детский сад. визитер,и графы
трасировка лучей, векторная алгебра

pew
25.03.2018
10:35:30

Uiiuviiw
25.03.2018
10:35:32
это вы игру делали?

pew
25.03.2018
10:35:42
я

Uiiuviiw
25.03.2018
10:36:09
ваще круть!

Sergey
25.03.2018
10:36:12
трасировка лучей, векторная алгебра
напомню: мы этот разговор начинали в контексте спора на тему геттеров, необходимости доступа к стэйту и что классическое ооп там не катит и потому все юзают ecs, pure data entity и т.д. и т.п.

pew
25.03.2018
10:36:29
ваще круть!
графику и уи тож я, в ообщем все я, сервак, клиент

Uiiuviiw
25.03.2018
10:36:37
геттеры не нужны

pew
25.03.2018
10:36:45
там жалко бекенда не вино, редакторы на каждый пук есть

Google

Uiiuviiw
25.03.2018
10:36:55
я паблики люблю

pew
25.03.2018
10:37:03
пушка в игру оч быстро добавляется
я паблики люблю
ну у меня тоже есть где тупо пабликами) что бы оверхеда не было там где операция слишком много раз выполняется
тик сервера 40мс, за это время все все все надо просчитать по всем игрокам и мобам, вижн, попадания, перемещения, ну и так далее

Uiiuviiw
25.03.2018
10:39:30
я понимаю, не такие крутые, но я писал подобные
а вы физику сами писали? какаой яп на сервере?

pew
25.03.2018
10:40:31
все я с малым на улицу
так как есть рпг составляющая

Uiiuviiw
25.03.2018
10:42:13
потом спрошу еще раз

Sergey
25.03.2018
10:50:30
https://www.youtube.com/watch?v=lQQ_CahFVzw
это пояснение идеи Data-Context-Interaction (тот видос выше от тургве который чуть тяжело воспринимать, а тут попроще)...
может так же заинтересовать тех кто говорит что анемичные модели это плохо)

Ad.x ??
25.03.2018
16:03:01
Вопрос такой. В симфонии формы нарушают или нет SRP? они ж там вроде как занимаются изменением стейта объекта + валидация входящих данных
имею в виду этот пример: https://symfony.com/doc/current/forms.html#handling-form-submissions

f4rt~
25.03.2018
16:13:14

Ad.x ??
25.03.2018
16:13:58

pew
25.03.2018
16:14:19

Ad.x ??
25.03.2018
16:14:24
т.е. форма должно тока валидировать входяшие данные

Google

f4rt~
25.03.2018
16:14:28

Ad.x ??
25.03.2018
16:14:31
на мой взгляд

f4rt~
25.03.2018
16:14:31

Ad.x ??
25.03.2018
16:14:40
почему нет?

f4rt~
25.03.2018
16:15:00
весомый аргумент, так мы услышим то, что ты подразумеваешь под SRP или нет?

Ad.x ??
25.03.2018
16:15:15
я уже ответил

Sergey
25.03.2018
16:19:19
формы выступают фасадом ко всему воркфлоу работы с данными
именно то, как расшифровывается эта аббревиатура.
понимаешь, сложность как раз состоит в том что бы выделить ту самую зону ответственности. Это очень скользский принцип который сильно привязан к контексту задачи. То есть ты берешь код, в одном контексте он типа SRP и все такое, а в другом контексте (например прошло время и часть требований поменялась) - уже не очень то соблюдается эта штука.
этот принцип полезен для анализа изменений, что бы отделять вещи которые меняются в разное время. В этом ключе тот же пример с формами соблюдает SRP поскольку сами формы не аффектит тот факт что у тебя логика валидации меняется.


Chupa
25.03.2018
21:31:56
Я тут тестовое одно делал сегодня простое. Хотел бы услышать критику по некоторым вопросом. Задание - есть собаки - пара настоящих и игрушечные. Они могут охотиться и издавать звуки, причем каждая собака может не все. Нужно было сделать консольное приложение, чтобы вызвать по идентификатору у собаки лай или начать охоту.
Я сделал пару интерфейсов - для охоты и для звуков, и один просто для собаки пустой (на всякий случай). Лучше ли это, чем использовать наследование? Хотя от контекста зависит. Т.е. поведение собаки можно узнать по тому, реализует ли она нужный интерфейс. В клиенском коде я как-раз это делаю и возвращаю ответ, что собака не может издавать звуки/охотиться.
Также нужно было тесты написать. Я делал assert на существующее поведение. Но что-то не нашел проверку на отсутствие метода у объекта, поэтому делал также проверку на отсутвие интерфейса. Нужно ли вообще делать ее? Или достаточно проверить работоспособность существующих методов. Могут же требования измениться в системе, что плюшевая собака должна начать издавать звуки, добавится интерфейс, а в тестах это пройдет незаметно. Также, если просто метод добавят, даже проверка на отсутствие интерфейса не прокатит.


Like
25.03.2018
21:35:11
Я тут тестовое одно делал сегодня простое. Хотел бы услышать критику по некоторым вопросом. Задание - есть собаки - пара настоящих и игрушечные. Они могут охотиться и издавать звуки, причем каждая собака может не все. Нужно было сделать консольное приложение, чтобы вызвать по идентификатору у собаки лай или начать охоту.
Я сделал пару интерфейсов - для охоты и для звуков, и один просто для собаки пустой (на всякий случай). Лучше ли это, чем использовать наследование? Хотя от контекста зависит. Т.е. поведение собаки можно узнать по тому, реализует ли она нужный интерфейс. В клиенском коде я как-раз это делаю и возвращаю ответ, что собака не может издавать звуки/охотиться.
Также нужно было тесты написать. Я делал assert на существующее поведение. Но что-то не нашел проверку на отсутствие метода у объекта, поэтому делал также проверку на отсутвие интерфейса. Нужно ли вообще делать ее? Или достаточно проверить работоспособность существующих методов. Могут же требования измениться в системе, что плюшевая собака должна начать издавать звуки, добавится интерфейс, а в тестах это пройдет незаметно. Также, если просто метод добавят, даже проверка на отсутствие интерфейса не прокатит.
> Они могут охотиться и издавать звуки, причем каждая собака может не все.


Chupa
25.03.2018
21:36:11
Живые собаки могут и то, и другое (такса и мопс, допустим), игрушечные не могут охотиться, а плюшевая собака вообще не может ничего


Гена
25.03.2018
21:36:17
Я тут тестовое одно делал сегодня простое. Хотел бы услышать критику по некоторым вопросом. Задание - есть собаки - пара настоящих и игрушечные. Они могут охотиться и издавать звуки, причем каждая собака может не все. Нужно было сделать консольное приложение, чтобы вызвать по идентификатору у собаки лай или начать охоту.
Я сделал пару интерфейсов - для охоты и для звуков, и один просто для собаки пустой (на всякий случай). Лучше ли это, чем использовать наследование? Хотя от контекста зависит. Т.е. поведение собаки можно узнать по тому, реализует ли она нужный интерфейс. В клиенском коде я как-раз это делаю и возвращаю ответ, что собака не может издавать звуки/охотиться.
Также нужно было тесты написать. Я делал assert на существующее поведение. Но что-то не нашел проверку на отсутствие метода у объекта, поэтому делал также проверку на отсутвие интерфейса. Нужно ли вообще делать ее? Или достаточно проверить работоспособность существующих методов. Могут же требования измениться в системе, что плюшевая собака должна начать издавать звуки, добавится интерфейс, а в тестах это пройдет незаметно. Также, если просто метод добавят, даже проверка на отсутствие интерфейса не прокатит.
абстрактная фабрика + стратегия


Chupa
25.03.2018
21:37:21
В задании отмечено, что код приложения не важен, так что без этого вот всего как-бы
тут про другое вопрос
лучше ли текущая архитектура наследования
или как это тестировать правильно
часто слышу, что наследование не нужно
в моем представлении это так должно выглядеть

Google

Chupa
25.03.2018
21:38:23
как описал

Гена
25.03.2018
21:38:57
декорация мне всегда больше нравится, но если речь про 2 типа собак, то можно и фабрику сделать, они же не могут новые навыки получать, все ограничено

[Anonymous]
25.03.2018
21:41:02

Гена
25.03.2018
21:41:27

Grigoriy
26.03.2018
00:15:27
как избавится от депрессии на почве того что два месяца делал проект, и понял что он мне не по зубам

Елнур
26.03.2018
00:16:18

Grigoriy
26.03.2018
00:17:27
я тут выбираю чем вскрываться, книжкой долго получится

Елнур
26.03.2018
00:18:44
А что за проект?
И почему не по зубам? По времени или по компетенции

Grigoriy
26.03.2018
00:19:19
слишком простой. я его усложнил в сотню раз, пилил два месяца и сдался
только что
проект сейчас работает на 10-ти буквально php файликах по 1000 строк
пытаясь достичь пиздатого кода я разбил его чуть ли не на 50 классов
и закопался нахуй в этом дерьме
и оно все равно не работает то через командную строку, то через курл, то еще через какой-то пиздец
в общем так чтобы включил и поехало - я всё

Елнур
26.03.2018
00:24:33
Есть три пути:
1) начать все с нуля
2) рефакторинг
3) оставить как есть, исправить ошибки, чтобы хоть работало

Gio
26.03.2018
00:25:06
Может начать писать тесты?

Grigoriy
26.03.2018
00:27:01
1 - это и было с нуля. увлекательное было путешествие наощуп по литературе, в которой разжевано как писать sql запросы, как будто я полный долбоеб
2 - как много в этом слове. я ради него начинал все с нуля. переписал. стало понятнее и запутаннее, я ничерта не понимаю в том как это делать. как легче как умнее. как работает и чего ожидать.