Объяснение асинхронности через Доту.
192
41
Всем привет! Обсуждали с братом такую нереализованную механику в игре, когда ты (например, с зажатой специальной клавишей) сначала выбираешь места каста способности (их несколько), а при выборе всех точек запускается каст способности по всем этим точкам сразу. Как пример это мог быть Скай с аганимом: выбираешь сначала первую зону ульты, потом вторую, и тогда 2 ульты кастуются. Мы пришли к выводу, что такая механика нереализована потому, что она асинхронна, а, видимо, движок сурс 2 асинхронность не поддерживает.
Как мы видим реализацию механики:
Вот ты Петух без аганима. Всё последовательно: выбираем область для ульты и кликаем --> это запускает анимацию каста --> это запускает затрату маны, саму способность и запускает кулдаун. Повторюсь: всё последовательно, синхронно. А вот ты с аганимом. И тут уже так: выбираешь область для ульты и кликаешь --> ЖДЁШЬ!!! и в то же самое время ПАРАЛЛЕЛЬНО выбираешь другую область для ульты и кликаешь --> это запускает анимацию каста --> это приводит к трате маны, запуску ДВУХ способностей и кд.
Вопрос: правильно ли мы увидели асинхронность здесь, правильно ли понимание асинхронности? И другой вопрос: а сурс2 поддерживает ассинхронность? Он на каком ЯП написан? Этот язык поддерживает ассинхронность?
Pro100 Bot сказал(а):↑Всем привет! Обсуждали с братом такую нереализованную механику в игре, когда ты (например, с зажатой специальной клавишей) сначала выбираешь места каста способности (их несколько), а при выборе всех точек запускается каст способности по всем этим точкам сразу. Как пример это мог быть Скай с аганимом: выбираешь сначала первую зону ульты, потом вторую, и тогда 2 ульты кастуются. Мы пришли к выводу, что такая механика нереализована потому, что она асинхронна, а, видимо, движок сурс 2 асинхронность не поддерживает.
Как мы видим реализацию механики:
Вот ты Петух без аганима. Всё последовательно: выбираем область для ульты и кликаем --> это запускает анимацию каста --> это запускает затрату маны, саму способность и запускает кулдаун. Повторюсь: всё последовательно, синхронно. А вот ты с аганимом. И тут уже так: выбираешь область для ульты и кликаешь --> ЖДЁШЬ!!! и в то же самое время ПАРАЛЛЕЛЬНО выбираешь другую область для ульты и кликаешь --> это запускает анимацию каста --> это приводит к трате маны, запуску ДВУХ способностей и кд.
Вопрос: правильно ли мы увидели асинхронность здесь, правильно ли понимание асинхронности? И другой вопрос: а сурс2 поддерживает ассинхронность? Он на каком ЯП написан? Этот язык поддерживает ассинхронность?
Нажмите, чтобы раскрыть...Это не реализовано потому что не реализовано, асинхронность тут вообще причем?
ты очень бредишь, движок очень гибок, и инженеры движка сорса условно гении, вот именно в этом они очевидно молодцы.
Для ская, спецом есть условие создание функции рядом с другим героем.И функция запускаеться наверно не последоватьельно как ты описал:(Ульта --> это запускает анимацию каста --> это запускает затрату маны, саму способность и запускает кулдаун)А одновременно, если прожал ульту, значит минус мана, минус кд, а дальше только или попал противник в зону ульты.С аганимом - найти вражеский герой рядом, и запустить функцию ульта ская на место где был этот герой до этоого.
Pro100 Bot сказал(а):↑Вот ты Петух без аганима. Всё последовательно: выбираем область для ульты и кликаем --> это запускает анимацию каста --> это запускает затрату маны, саму способность и запускает кулдаун. Повторюсь: всё последовательно, синхронно. А вот ты с аганимом. И тут уже так: выбираешь область для ульты и кликаешь --> ЖДЁШЬ!!! и в то же самое время ПАРАЛЛЕЛЬНО выбираешь другую область для ульты и кликаешь --> это запускает анимацию каста --> это приводит к трате маны, запуску ДВУХ способностей и кд.
Нажмите, чтобы раскрыть...Ты что в первом случае нажимал кнопки последовательно, что во втором.
Pro100 Bot сказал(а):↑Вопрос: правильно ли мы увидели асинхронность здесь, правильно ли понимание асинхронности? И другой вопрос: а сурс2 поддерживает ассинхронность? Он на каком ЯП написан? Этот язык поддерживает ассинхронность?
Нажмите, чтобы раскрыть...Сурс написан на с++, и да он поддерживает асинхронность.
Какое отношения это имеет к асинку? Асинк это когда я отправляю серверу запрос, а моя локальная программа продолжает работать, пока ждет ответа. В доте это есть, иначе бы игроки не могли делать действия одновременно
С ультой скаймага вообще не вижу никакой проблемы. Не реализовали, потому что посчитали, что это будет плохой гейм дизайн, вот и все
Pro100 Bot сказал(а):↑Всем привет! Обсуждали с братом такую нереализованную механику в игре, когда ты (например, с зажатой специальной клавишей) сначала выбираешь места каста способности (их несколько), а при выборе всех точек запускается каст способности по всем этим точкам сразу. Как пример это мог быть Скай с аганимом: выбираешь сначала первую зону ульты, потом вторую, и тогда 2 ульты кастуются. Мы пришли к выводу, что такая механика нереализована потому, что она асинхронна, а, видимо, движок сурс 2 асинхронность не поддерживает.
Как мы видим реализацию механики:
Вот ты Петух без аганима. Всё последовательно: выбираем область для ульты и кликаем --> это запускает анимацию каста --> это запускает затрату маны, саму способность и запускает кулдаун. Повторюсь: всё последовательно, синхронно. А вот ты с аганимом. И тут уже так: выбираешь область для ульты и кликаешь --> ЖДЁШЬ!!! и в то же самое время ПАРАЛЛЕЛЬНО выбираешь другую область для ульты и кликаешь --> это запускает анимацию каста --> это приводит к трате маны, запуску ДВУХ способностей и кд.
Вопрос: правильно ли мы увидели асинхронность здесь, правильно ли понимание асинхронности? И другой вопрос: а сурс2 поддерживает ассинхронность? Он на каком ЯП написан? Этот язык поддерживает ассинхронность?
Нажмите, чтобы раскрыть...вы васяны, в игре 10 РАЗНЫХ устройств (игроков). доте пофигу, нажмёт ОДНО устройство 10 ультов или ВСЕ 10 нажмут по ОДНОМУ - здесь ВЕЗДЕ асинхронность
errorstalker сказал(а):↑ты очень бредишь, движок очень гибок, и инженеры движка сорса условно гении, вот именно в этом они очевидно молодцы.
Для ская, спецом есть условие создание функции рядом с другим героем.И функция запускаеться наверно не последоватьельно как ты описал:(Ульта --> это запускает анимацию каста --> это запускает затрату маны, саму способность и запускает кулдаун)А одновременно, если прожал ульту, значит минус мана, минус кд, а дальше только или попал противник в зону ульты.С аганимом - найти вражеский герой рядом, и запустить функцию ульта ская на место где был этот герой до этоого.Нажмите, чтобы раскрыть...Перед тем как снимется мана и запустится кд, сначала идёт анимация каста. Как доказательство ульты СФа и Бары под батарейками Клока.
А вот потом насчёт маны, эффекта и кд не знаю. Поэтому через запятую написал.
Pro100 Bot сказал(а):↑Всем привет! Обсуждали с братом такую нереализованную механику в игре, когда ты (например, с зажатой специальной клавишей) сначала выбираешь места каста способности (их несколько), а при выборе всех точек запускается каст способности по всем этим точкам сразу. Как пример это мог быть Скай с аганимом: выбираешь сначала первую зону ульты, потом вторую, и тогда 2 ульты кастуются. Мы пришли к выводу, что такая механика нереализована потому, что она асинхронна, а, видимо, движок сурс 2 асинхронность не поддерживает.
Как мы видим реализацию механики:
Вот ты Петух без аганима. Всё последовательно: выбираем область для ульты и кликаем --> это запускает анимацию каста --> это запускает затрату маны, саму способность и запускает кулдаун. Повторюсь: всё последовательно, синхронно. А вот ты с аганимом. И тут уже так: выбираешь область для ульты и кликаешь --> ЖДЁШЬ!!! и в то же самое время ПАРАЛЛЕЛЬНО выбираешь другую область для ульты и кликаешь --> это запускает анимацию каста --> это приводит к трате маны, запуску ДВУХ способностей и кд.
Вопрос: правильно ли мы увидели асинхронность здесь, правильно ли понимание асинхронности? И другой вопрос: а сурс2 поддерживает ассинхронность? Он на каком ЯП написан? Этот язык поддерживает ассинхронность?
Нажмите, чтобы раскрыть...Есть четыре понятия:
Конкурентность.
Самое общее понятие. Предполагает, что за определенный промежуток времени будет выполнено несколько задач. Причем не важно как, с помощью действительно параллельных вычислений, или с помощью переключения задач, или асинхронно.
Асинхронность.
Предполагает, что задача будет выполнена на другом устройстве.
Параллельность.
Задачи выполняются одновременно на нескольких ядрах\процессорах.
Многопоточность.
Это когда реализация многопоточности скрыта под капотом абстракции и задачи выполняются либо конкурентно (потоков больше чем ядер), либо параллельно (потоков меньше или равно количеству ядер).
Pro100 Bot сказал(а):↑Ну потому что как вижу в доте все способности обрабатываются последовательно, а в такой механике нет.
Нажмите, чтобы раскрыть...Как тебе уже сказали, если бы сурс не поддерживал асинхронность, дота была бы невозможна.
Zemlenika сказал(а):↑Последовательно: ты кастуешь ульт - он прокастовывает своё время действия - кастуется автоматом второй ульт (ну или ты выбираешь куда нажать).
Асинхронно: второй ульт не ждёт пока кастанётся первый
Нажмите, чтобы раскрыть...И если хочется сначала выбрать две зоны, а потом уже одновременно начать кастовать, то последовательно это не реализовать?
У феникса птички асинхронно реализованы?
errorstalker сказал(а):↑ты очень бредишь, движок очень гибок, и инженеры движка сорса условно гении, вот именно в этом они очевидно молодцы.
Для ская, спецом есть условие создание функции рядом с другим героем.И функция запускаеться наверно не последоватьельно как ты описал:(Ульта --> это запускает анимацию каста --> это запускает затрату маны, саму способность и запускает кулдаун)А одновременно, если прожал ульту, значит минус мана, минус кд, а дальше только или попал противник в зону ульты.С аганимом - найти вражеский герой рядом, и запустить функцию ульта ская на место где был этот герой до этоого.Нажмите, чтобы раскрыть...Сурс очень плох для доты.
Pro100 Bot сказал(а):↑И если хочется сначала выбрать две зоны, а потом уже одновременно начать кастовать, то последовательно это не реализовать?
У феникса птички асинхронно реализованы?
Нажмите, чтобы раскрыть...Причем тут понятие из программирования и то как ты кнопки нажимаешь.
Слово асинхронно, вообще не применимо к тому что ты пишешь. Ты не можешь асинхронно нажать кнопки.
Ты можешь нажать кнопки либо одновременно, либо последовательно, все, точка.
Pro100 Bot сказал(а):↑И если хочется сначала выбрать две зоны, а потом уже одновременно начать кастовать, то последовательно это не реализовать?
У феникса птички асинхронно реализованы?
Нажмите, чтобы раскрыть...Ты как-то путаешь понятия. Если рассматривать весь цикл применения способности, то она асинхронна, т.к. второй каст не ждёт конца первого = функция не ждёт конца прошлой, чтобы выполниться. Если рассматривать применение способности, то оно последовательное (при условии, что тебе нужно выбирать обе аоешки), т.е. сначала ты выбираешь первую аоешку, а после этого вторую.
То же самое с птичками. Ты не ждёшь пока первая долетит и пока её эффект пропадёт с врага, чтоб кастануть вторую. Но ты не можешь одновременно кастануть сразу 4 птички по разным направлениям, т.к. клики последовательны.
ke1evra сказал(а):↑вы васяны, в игре 10 РАЗНЫХ устройств (игроков). доте пофигу, нажмёт ОДНО устройство 10 ультов или ВСЕ 10 нажмут по ОДНОМУ - здесь ВЕЗДЕ асинхронность
Нажмите, чтобы раскрыть...Васяны, и? Мы нигде и не писали, что мы разбираемся, лол. Тема не про мериние васюнами.
Зато теперь лучше понятно.
Закись Ашота сказал(а):↑Асинхронность.
Предполагает, что задача будет выполнена на другом устройстве.
Нажмите, чтобы раскрыть...я тебе конечно лайк поставил, но по этому факту есть вопросы. жабаскрипт в твоём браузере выполняет асинхронно задачи на ОДНОМ устройстве, event loop называется.
да и вообще любой async/await может работать на одном устройстве, при чём здесь "другое" нипанятна
Pro100 Bot сказал(а):↑Васяны, и? Мы нигде и не писали, что мы разбираемся, лол. Тема не про мериние васюнами.
Зато теперь лучше понятно.
Нажмите, чтобы раскрыть...ты извини, если я задел твои чувства верующего программиста.
но вообще нужно изначально в предисловии написать свой уровень, чтобы аудитория понимала, в каком ключе тебе отвечать, и отвечать ли вообще
ke1evra сказал(а):↑я тебе конечно лайк поставил, но по этому факту есть вопросы. жабаскрипт в твоём браузере выполняет асинхронно задачи на ОДНОМ устройстве, event loop называется.
да и вообще любой async/await может работать на одном устройстве, при чём здесь "другое" нипанятна
Нажмите, чтобы раскрыть...Что такое асинхронность в таком случае, и чем она отличается от параллельности, или многопоточности? Зачем то же ее выделяют в отдельный тип.
ke1evra сказал(а):↑я тебе конечно лайк поставил, но по этому факту есть вопросы. жабаскрипт в твоём браузере выполняет асинхронно задачи на ОДНОМ устройстве, event loop называется.
да и вообще любой async/await может работать на одном устройстве, при чём здесь "другое" нипанятна
ты извини, если я задел твои чувства верующего программиста.
но вообще нужно изначально в предисловии написать свой уровень, чтобы аудитория понимала, в каком ключе тебе отвечать, и отвечать ли вообще
Нажмите, чтобы раскрыть...Ну вот и была у нас логика, что идёт каст по первой области - это попадает в очередь событий, но выполнение начнётся только после выбора второй области, поэтому способность обрабатывается асинхронно.
Теперь понятно, что это в любом случае асинхронно, потому что действительно 10 компов и сервер, и надо на каждом компе информацию с сервера обрабатывать. Как-то так.
Сначала думал указать дилетанство, но это показалось ненужной информацией не к месту. И вы между собой начали обсуждать, то есть тут не только для нас ответы, а для всех. И спасибо за разъяснения!
Тема закрыта
-
ЗаголовокОтветов ПросмотровПоследнее сообщение
-
Сообщений:1
Просмотров:0
-
Сообщений:1
Просмотров:0
-
Атомный Белый 20 Apr 2024 в 02:28Сообщений: 1 20 Apr 2024 в 02:28
Сообщений:1
Просмотров:0
-
Сообщений:4
Просмотров:4
-
Сообщений:7
Просмотров:8