Многозадачность. Часть 1
Хочу немного порассуждать на тему многозадачности. Существует такой стереотип, что многозадачность - очень полезна и даже необходима и следует применять этот навык везде, где только можно. Мы используем его в реальной жизни - дома и на работе, многозадачность очень необходима в старкрафте. Но действительно ли этот навык так полезен?

Наше… исследование научно доказывает, что мозг
не способен эффективно делать две вещи одновременно.
доктор Рене Маруа, кафедра психологии Университета Вандербилта

На самом деле как таковой многозадачности не существует, а существует переключение между задачами.
Для примера, проведем небольшой эксперимент, для которого потребуется карандаш, лист бумаги и таймер. Нарисуйте сперва такую таблицу

Шаг первый
1. Возьмите в руку карандаш или ручку.
2. Возьмите в другую руку таймер. Для наилучшего результата попросите засечь время другого человека.
3. Напишите в первой строке таблицы фразу «Многозадачность хуже лжи». Вслед за каждой буквой, написанной в строчке «М», сразу же переключайтесь на вторую строчку «1» и вписывайте в нее соответствующий этой букве порядковый номер. Если вы сделаете все правильно, то получите в первой строчке фразу «Многозадачность хуже лжи», а во второй – числа от 1 до 22. Т.е. надо писать в порядке М1н2о3 и т.д. буквы в первой строке, а цифры во второй.
4. Написав последнее число (22), отметьте в конце второй строчки общее время, которое заняло у вас выполнение этого задания.

Шаг второй
1. Вновь приготовьте таймер. Для наилучшего результата попросите другого человека засечь время.
2. Снова напишите фразу «Многозадачность хуже лжи» в третьей строке таблицы, но только сразу от начала до конца. После этого переключитесь на четвертую строку и по порядку впишите в нее числа от 1 до 22. Если вы сделаете все правильно, то получите в третьей строке таблицы фразу «Многозадачность хуже лжи», а в четвертой – числа от 1 до 22.
4. Теперь сравните время заполнения второй и четвертой строк. Как правило, у человека уходит примерно в два раза больше времени на выполнение этого упражнения, когда он переключается между задачами (шаг первый), чем когда он концентрируется на одной задаче за один раз (шаг второй).

У меня, например, первый шаг удалось выполнить за 43 секунды, а второй - за 25.
Тут следует ввести такое понятие, как стоимость переключения - это затраты ресурсов при переключении с одной задачи на другую. В качестве ресурсов выступает время и внимание.
Таким образом напрашивается вывод - лучше избегать многозадачности если это возможно
Надо планировать свои дела так, чтоб было как можно меньше переключений между разными задачами.
Но все же я создал эту тему поскольку хочу найти применение этому в старкрафте. Старкрафт - игра которая в любом случае требует многозадачности, и от этого уйти не удастся. Но все же можно попытаться минимизировать количество переключений между задачами или наладить однобразную последовательность переключений, чтоб проще было довести все до автоматизма.
Я попробую найти такие пути упрощения управления игровым процессом, которые позволили бы максимально эффективно использовать внимание игрока.
Наша первая цель - уменьшить количество переключений между задачами.

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

Периодичные задачи
Старкрафту, как и любой РТС, характерна периодичность однотипных задач, стоящих перед игроком. Периодичность решения одной и той же задачи может быть как постоянна - например, строительство пробок происходит с периодом в 12,5 секунд, заказ юнитов гейтах тоже периодичен (около 30 секунд), так и переменная - например, добавление пилонов.
Сложность соблюдения периодичности выполнения задач растет с увеличением количества задач другого типа. Но все же периодичные задачи должны иметь более высокий приоритет.
Игрок вынужден отвлекаться на периодичные задачи каждые N секунд. Как упростить или ускорить выполнение такого рода задач?
В игре есть механизмы позволяющие это сделать - это бинды строений и экранов, очереди заказов. Можно забиндить нексусы/цц/хатчери на цифры, и тогда заказ рабочих сведется к нескольким нажатиям. Но учитывая что период постройки рабочих 12,5 секунд, 1,5-2 секунды тратится на заказ рабочих в трех местах, а еще нужно отправить построившихся рабочих добывать ресурсы, что займет еще около 2 секунд. Итого ~30% времени будет потрачено только на заказ и развод рабочих. Уменьшить это время в два или более раз можно за счет очереди заказа - заказав в одном главном здании 2-3 рабочих, мы можем вернуться к нему не через 12,5 секунд, а через 25-35 секунд. Да, рабочие будут некоторое время простаивать, но это позволит нам освобоить 15% своего времени для выполнения других задач.
"Ну, в очередь заказывать юнитов любой нуб сможет" - скажете вы, - "а какая нам от этого польза?". Все очень легко. Поскольку я поставил цель уменьшить количество переключений между задачами, то необходимо свести все периодические задачи к одинаковому периоду, дабы возвращаться к ним как можно реже.
В идеале временная линия периодических задач выглядит так:

Тут каждый вид периодических задач выполняется со своим периодом. Видим, что мы переключились между периодическими задачами и задачами другого типа за 35 секунд 7 раз туда и обратно.
Теперь если попытаться свести все виды периодических задач к одинаковому периоду получим:

Всего 3 переключения за 35 секунд, что почти в два раза меньше. В итоге это позволяет нам лучше сосредоточить внимание на решении однотипных задач, и довести заказ рабочих/юнитов/лимита до автоматизма.
Теперь о практическом применении. Как можно это тренировать? Например, использовать какой-то циклический таймер с сигналом. Поставить таймер на среднее время строительства боевого юнита - около 35 секунд. И когда таймер сигнализирует о завершении периода выполнять следующие действия:
  • заказть по 2-3 рабочих на всех локациях. Например, у меня это будет 8ppp9ppp00ppp
  • отправить построившихся рабочих на минералы. У меня это c учетом предыдущих действий - select-rc 99-select-rc 88-select-rc (rc - right click)
  • переключить экран на месторасположение производственных зданий (F2)
  • заказть по юниту во всех зданиях
  • выделить необходимое количество рабочих для постройки пилонов/саплаев (у меня это пробка забинженая на 7)
  • заказть нужное количство пилонов саплаев. Как определить сколько надо заказывать? около 8 лимита нам нужно для рабочих. + еще по 2 лимита на каждое производящее здание +еще один пилон запасной. например, если у нас 9 гейтов, 3 базы, то ставим 4 пилона, если две базы и 4 гейта, то +2 пилона должно хватить.
После того как мы выполнили все эти дейсвтвия, то можно переключиться на другие типы задач и полностью забыть про дозаказ юнитов-рабочих-пилонов до следующего сигнала таймера. Если таким образом поиграть с пару десятков игр, то у же выработается хорошая привычка выполнять эти действия слитно и почти автоматически.
У кого возникают такие же проблемы с дозаказом как у меня попробуйте использовать такой метод тренировок полностью сосредоточившись на выполении перечисленных действий после сигнала таймера. Договритесь с кем-то поиграть какие-то именно макробилды, с быстрым занятием экспанада без ранних рашей/пушей, чтоб успеть дойти до макростадии. Можно даже сохранить игру после того как появятся первых два производящих здания, чтоб пропускать момент начального развития. Сперва таймер можно поставить на период около 45 секунд, а потом уменьшать, доводя длительность периода до оптимального значения.

В данном посте были рассмотрены только периодические задачи. Позже я рассмотрю другие типы задач и постараюсь найти решения по оптимизации действий.
P.S.Если у кого-то возникли свои замечения, идеи, предложения, пожелания - пишите в комментариях.
Категория: Полезные статьи | Добавил: mSj[MrPlaksa] (18.04.2012)
Просмотров: 1150 | Комментарии: 5
Всего комментариев: 5
1 mSj[Holy]   (18.04.2012 18:12) [Материал]
нихуя ж себе ты Лир теоретик :O

2 mSj[MrPlaksa]   (18.04.2012 18:16) [Материал]
biggrin

3 mSj[MrPlaksa]   (18.04.2012 18:52) [Материал]
Во, нашел простенький периодический таймер

4 prokaznik   (21.04.2012 15:42) [Материал]
Переосмыслил статью. Что хочу добавить.

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

2) Мы же не всегда строим рабов, наступает определенное время, когда рабов уже достаточно и строить их больше не имеет смысла. И что самое интересное что чем больше Нычек, тем меньше надо заказывать рабов т.к. к этому моменту их уже скопится достаточное количество.

3) Заказ в очередь так в этом вся и фишка, мы заказываем в очередь выигрываем во времени(удобстве), но проигрываем по минералам(эффективности).

4) Проблемы с доказом решаются очень просто. Во время игры заучить какую-то фразу словосочетание(можно слова из песни) и повторять её. Например "все нубы один я госу". Когда её проговариваешь микришь, как закончил говрить вернулся на мейн заказался, опять начал повторять фразу и микрить, закончилась фраза на мейн-заказ ну и так далее. Да может со стороны смотрится нехорошо, но зато ненужны никакие сторонние программы и лишнее отвлечение на них. Но что само интересное, что после недели активных тренировок, у тебя уже появляется рефлекс, автоматически через определенное время возвращаться а сам уже ничего проговаривать не будешь, руки будут сами за тебя всё делать и возвращать на мейн, а затем на поле боя.

ИМХО


PS. кое что интересное нашёл

и ещё

5 mSj[MrPlaksa]   (21.04.2012 16:23) [Материал]
Я акцентирую внимание на том, что статья рассчитана на таких игроков как я - у которых во время игры возникает чувство что они не успевают сделать много нужных вещей, которые теряются в макро игре, у которых пробки на дальней локации могут простоять пол-игры ничего не добывая, которые вспоминают про доазаказ только тогда, когда от полных 5 пачек войск остается всего 5 юнитов, которые постоянно втыкаются в саплай-блок.
Поэтому:
1) Самая главная причина бесполезности пробела в решении таких макропроблем - это то что пробел перемещает только к одному последнему действию. И, например, если у нас три нексуса и в каждом из них достраивается в каком-то порядке пробы, то нажимая на пробел мы попадем только к одной из трех локаций. А потом все равно возникнет необходимость переключиться на другие локи.
От пробела, конечно, есть своя польза, но об этом я попробую написать в следующий раз.
2) ну да, такое бывает. Но вот этот промежуток времени, когда у нас становится больше одной локации и до первых накопленных 200лимита рабочих придется строить почти непрерывно, как и пилоны и войска. Т.е. по сути мы только этими вещами и занимаемся преимущественно. Но из-за того что приходится постоянно переключать свое внимание между заказом рабов/войск/пилонов не остается времени чтобы например похарасить противника. Я вотуже опробовал эту методику тренировок с таймером в нескольких играх на ладдере. С непривычки конечно у меня не совсем получалось так как надо. Но вот в одной игре ПвЗ я заметил, что если делать заказ рабов/юнитов/пилонов слитно и периодически, то у меня из каждых 40 секунд появляется около 20 секунд времени, когда делать абсолютно нечего. И вот эти 20 секунд (а если привыкнуть, то и все 30 секунд) можно потратить на какие-то полезные действия.
3) ну опять же, нам, игрокам с низким апм не приходится выбирать между эффективностью и удобством, потому что стремясь к эффективности будем проигрывать и там, и там. Конечно, если есть возможность, то лучше выполнять дополнительные действия чтоб увеличить эффективность, но приоритет все же должен отдаваться удобству.
4) вот да, хороший вариант замены таймеру. Если выработать такую привычку, то будет здорово.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Copyright team Mesija © 2024