0: Знаете, я уже около 28 лет играю в старкрафт. Для этой игры все вот настолько сильно сошлось во времени. Талантливые авторы, компания, выделены были деньги, эпоха, инструменты. Все это было собрано в 1 точке, в которой не могла не родиться настолько
1: Гениальная игра. И даже сейчас, когда я готовился к этому видео, я нашёл какие-то вещи, которые сделали для меня эту игру, ещё удивительнее, хотя, казалось бы, прошло 28 лет, за 28 лет, я уже, наверное, все должен знать про эту игру. И сегодня я постараюсь вам рассказать, чем она так удивительна.
2: Я вам постараюсь показать вот прям моменты, да, то есть прям вот как мы шли по вот этому инженерному пути и дошли в итоге вот этому уникальному сочетанию шахмат в реальном времени. Хотя если мы говорим про шахматы, у нас одинаковые фигурки слева и справа, а когда мы говорим про старкрафт, у нас есть тр.
3: Независимые расы с абсолютно разным стилем поведения, но при этом они все равно также сбалансированы, как и шахматы. Меня зовут Алексей Гладков. Вы на канале информатика, и мы начинаем
4: Начнём мы, собственно, с истории. Компания blizzard выпустила игру, которая называлась варкрафт 2, и эта игра она была, ну просто мягко сказано да, нашумевшая это игра, в которую в то время ещё диалап, я напоминаю, был только.
5: Прям вот у избранных людей, а в основном все играли просто дома за своим компом. И вот в эту эпоху благодаря дискетками ещё даже дисков особо не было. Я, в частности, вот установил варкрафт 2 ещё на дискетках. Это все распространилось настолько сильно по всему миру, что дошло до маленького городка.
6: В сибири, который называется Томск, где, собственно, я и жил, и я установил его себе на комп и долго, долго прям ночами играл. У меня есть вот эти истории, у меня даже, по моему провод прятали. После этого я, в общем, ночью проснулся, чтобы поиграть в warcraft. Специально я ставете, лежал несколько часов не засыпал. То есть я просто смо.
7: Смотрел в потолок, чтобы все уснули я сел, включил компьютер, как-то зашёл в warcraft, 1 же удар и там вот это на нас напали и просто на весь дом там все проснулись, у каждого в жизни была такая история если у вас была такая история, тоже напишите в комментариях, давайте вместе повспоминаем, но
8: Тем не менее, время шло, варкрафт все равно был пройдён, естественно, вдоль и поперёк за людей, за орков. Та компания, эта компания, те игры, эти игры, все было пройдено уже не так интересно. И я задумался о том, чтобы, ну, как-то вот что-то, во что-то ещё хочется поиграть. И тут, значит,
9: Мне отец говорит что мне подарили диск и там какой-то варкрафт 3 варкрафт 3. Думаю нифига себе круто он приносит а там написано старкрафт я говорю мать ну это же starcraft. Он говорит да, варкрафт, старкрафт какая разница, там craft в конце короче в общем и так я познакомился с этой игрой starcraft. Ну понятн.
10: Что тогда для меня это было просто, ну вот что-то, что-то типа похожее и так далее. Но я не знал, какой долгий путь прошла компания близерт вот от этого варкрафта 2 до старкрафта, который появился в 98 году. Поэтому давайте пройдёмся по тому, как компания близерт пришла. Вот, собственно,
11: К этой игре конечно, когда у тебя есть такая игра как warcraft, 1 мысль, которая придёт любому, не знаю там капиталисту, бизнесмену как угодно, а давайте мы сделаем ещё 1 такую же игру и ещё соберём ну типа сделаем продукт, но маленечко по другому. Вообще в целом есть даже такая матрица, которая говорит о том, что если у тебя есть бизне,
12: То у тебя есть 2 способа заработать больше денег, либо предложить новую услугу тем же покупателям, либо предложить свою старую услугу новым покупателям. И вот таким образом, соответственно, двигаться. Они решили предложить новую услугу старым покупателям. То есть, ребят, вам понравился варкрафт, смотрите.
13: У нас есть классная игра, которую они тогда назвали, шет ред нейшенс, типа, тоже самое, только это значит, ртска в космосе, вот с этим сай Фай, там всем сеттингом, да, и начали они её, соответственно, пилить. 1 раз они её показали в 96 году, на е, 3. Это известная конференция, опять же.
14: Если хотите выпуск про e3, напишите в комментариях, потому что это, ну, мало кто перевернул настолько игровую индустрию в целом разработку, потому что вот сегодня не было бы, например, ii без игр, да, так вот, на е, 3 показали, значит, эту конференцию, и там все такие сказали, блин, да, это ж просто орки в космосе. Ну, то есть, представляет.
15: Люди тогда были настолько, как сказать, искушённые, что они не схавали вот этот подход. Типа, давайте мы вам ту же донатную доилку дадим, как бы, ну, тогда донатов не было, но смысл такой только, значит, в другой оболочке, они такие, не, фу, это какая-то шляпа, это какие-то орки в космосе взяли, естественно, просто.
16: Движок от варкрафта нарисовали новые там спрайты, новые фигурки полностью 2 д. Значит и выкатили. Типа вот смотрите в космосе, на самом деле, вот вы видите скриншоты у себя на экране, вы понимаете, да, вот вам warcraft 2, посмотрите, вот вам, значит, орки в космосе, ну тут
17: Как бы, по фактам очень удивительное событие, которое, мне кажется, сегодня бы просто, ну, не произошло вот сегодня, оно не могло произойти, а тогда, поскольку индустрия ещё зарождалась, ещё не было вот этого, знаете, нам надо выпустить. И вот вообще пофиг на этих пользователей, да, ну,
18: Нам главное, чтобы вот людям понравилось. И тогда крис мэтсон и Марк морхейм, значит, по сути, руководство близзард, оно собралось и такое, типа, ну да, наверное, надо переделывать это вообще, ну, представляете, решение, вы сделали игру, вам говорят, ну, игра так себе, и вы её решили полностью переде.
19: Делать. Ну, типа, вы сделали 3 расы вместо 2, да, то есть вы там усложнили баланс, потому что это все-таки отличалось от варкрафта. Конечно, терять столько денег сегодня бы, наверное, никто не стал, а тогда стали, и это было ключевым моментом. То есть ребята решили не просто переписать игру, а они решили зало.
20: Жить принципиально новый движок под эту игру. И вот здесь самое удивительное вот мы сейчас очень сильно я вам сразу говорю этот выпуск он прям для инженеров. Короче если вы инженер, вам должно понравиться здесь мы сейчас будем разбирать, что именно они заложили в движок, потому что это, блин, гениально и когда я готовился к
21: В том видео я реально задумался о том, что, блин, а ведь в старкрафте, если вдуматься, по сути, нету как такового, ну, как бы сервера, да, то есть вот если мы с вами возьмём ворлд оф фаркрафт, то там обязательно должен быть какой-то сервер, или в лайнейдж, неважно, да, или даже современные какие-нибудь та
22: Overwatch, да, даже тот же старкрафт 2, да, то есть там обязательно должен быть сервер, на котором, по сути, происходит игра без него никак. Его все равно надо поднимать. Даже если вы делаете неофициальный, у вас все равно все коннектятся к общему серверу. В старкрафте 1 было как бы, ну, не совсем так. Вы могли играть вообще по абсолютно
23: Любому соединению. И вот здесь 1 офигенный факт, касаемый вот движка старкрафта
24: В мире геймдева все несколько отличается от мира вот того вот, которым я занимаюсь, да, там мобильные приложения сервера стандартные. Дело в том, что у нас все работает вот по Такому принципу я постараюсь объяснить так, чтобы даже не инженерам было понятно тебе, что
25: Что-то надо, ты нажал, ну там пользователь нажал кнопочку куда-то на сервер улетел запрос, тебе пришёл ответ, ну и соответственно ты что-то получил. Вот это стандартная схема. Если не вдаваться там в детали. Если мы говорим про геймдев, то там поскольку идёт игра и это некоторый непрерывный процесс, то
26: Сути в игре постоянно должен работать какой-то вот бесконечный цикл у вас должен мир симулироваться. Для этого у вас должен быть, ну как бы таймлайн, да, время. И вы это время как-то должны отсчитывать. Обычно это называется тиками и тик равен, ну, совершенно разным там параметрам, в частности.
27: В старкрафте 1 он был равен 24 герцам. То есть 1 раз, вернее, 24 раза в секунду происходил вот этот самый тик, да, то есть какое-то изменение это на самом деле, поверьте мне, не очень много. Ну то есть для такой вот игры быстрой, как старкрафт, это на самом деле не
28: Очень много и 24 тоже было выбрано не случайно, оно идеально ложилось. Во первых, оно чётное, да, оно хорошо высчитывается, ну и так далее. То есть оно ложилось вот прям в основу тех протоколов, тех объёмов оперативной памяти и тех мощностей процессоров, которые были
29: Тогда, то есть, которые были на то время, поэтому был выбран именно 24 герца, но это ещё не все самое главное изобретение, которое есть в движке 1 старкрафта. Это так называемый лок степ энджин. То есть что это означает? Давайте мы возьмём опять же, те же самые
30: Шахматы, смотрите, шахматы это крайне детерминированная история. У вас есть доска, у вас есть, с 1 стороны, сколько там 16, по моему, да, фигур. И с другой стороны, 16 фигур. Соответственно, зная вот это вот начальное состояние и зная, как у вас перемещаются фигуры, то есть, если у вас записаны все
31: Ходы вы можете, по сути, восстановить, ну, любой момент игры, да, то есть вы можете сказать так, ага. Белый сходил пешкой сюда, потом чёрный сюда, потом белый сюда и так далее. То есть вам не нужно хранить как бы, состояние игры, вам не нужно где-то, чтобы у вас было записано, в каком сейчас находится
32: Состояние фигур вы можете как бы взять любой момент посчитать от него ходы и у вас будет строго фиксированное состояние. И тут важный интересный момент, который касается вот именно геймдева в игре. Обычно вам нужно симулировать как бы Вселенную, то есть если мы возьмём, допустим, world of warcraft, то там
33: Бегает куча людей вам для того, чтобы банально симулировать скорость, с которой бежит персонаж. Ну, скорость, она в любом случае функция от времени, да, то есть это некое расстояние, пройдённое за время. Соответственно, вам нужно это время для того, чтобы его симулировать. И получается такая интересная история, что в старкрафт
34: Этого не нужно. Ну, практически не нужно. Там это работает несколько по другому. То есть, это тоже в некотором смысле, ну, уникальная история, поскольку игра была достаточно древней, и тогда не было мощных процессоров, оперативки, там, видеокарты и так далее. А у вас была изометрия хотя бы, то есть какое
35: Это некое такое псевдо 3 д, то перед инженерами встала реально сложная задача. Как нам сделать игру, которую можно играть по сети? Они тогда, конечно, ни про какой киберспорт не думали, это вообще все потом было. Вы можете посмотреть видео вот про киберспорт, как это все развивалось. Как нам сделать
36: Игру, в которую можно играть по сети, но при этом она должна быть псевдо 3 д, то есть как бы в чем разница? В 2 д у вас понятно, у вас всегда монитор, он плоский, естественно, в нём нет там глубины, вы не можете в него руку засунуть, но тем не менее вы можете считать координаты либо как икс игрек.
37: Перемещение и это будет строго 2 д, да, то есть например там вы x подняли, игрек изменили и у вас как бы чувак там unit переместился вот так вот так там или вот так вот так вы можете считать это как 3 d когда у вас есть икс игрек и зет и соответственно у вас объекты они будут как бы ну в реальном 3 д перемещать.
38: А изометрия это что-то вот посередине между 2 д и 3 д. То есть у вас как бы есть икс игрек, но ещё у вас есть отдельный параметр, который отвечает как бы за высоту юнита, ну условно там он там на высоте 2, на высоте 3 или на высоте 1. Это для чего нужно? Это нужно для того чтобы сделать
39: Например, воздушных юнитов, которые могут пересекать какие-то препятствия. Это нужно для того, чтобы сделать какую-то там рампу, например, которая была в старкрафте, на которую надо забегать, да, но при этом это даёт огромное число ограничений, потому что если вы что-то реализуете неправильно, у вас может быть ситуации
40: Когда, не знаю, там муталист не может пролететь сквозь гору или, например, Драгун не может забраться на рампу или наоборот, он просто берет и проходит насквозь. И поверьте, таких багов в старкрафте более чем достаточно. Мы с вами сейчас ещё про них поговорим. Соответственно, нам нужно было придумать какой-то движок.
41: Который бы поддерживал, с 1 стороны, изометрию, а с другой стороны, ещё и вот успевал вот эту всю работу выполнять по синхронизации, да, то есть, чтобы мы могли там реальную, сетевую, реальной сетевой протокол, реальную сетевую игру сделать. Нужен какой-то, ну, лютейший просто компромисс, ну, потому что
42: Ну, не получится это реализовать вот теми усилиями или получится, но это будет очень сложно. И 1 из основных компромиссов, на который в итоге пошли, это сделали, по сути, этот мир, ну вот мир старкрафта детерминированным. То есть, нам кажется, что на самом деле Драгун или
43: Любой другой юнит может пойти практически, ну, чуть ли не в любом направлении, да, так, по сути, и есть на самом деле. Но в реальности, в реальности для движка карта делится на такие вот как бы, квадратики вы сейчас видите на экране и состояние, с которого игроки начинают игру. То есть, если вы помните, в старкрафте была такая
44: Стартовая локация, она прям на карте была отмечена. Если вы вдруг делали свои собственные карты, вам обязательно нужно было поставить таким кружочком нарисованную стартовую локацию. То есть вы знаете, в какой конкретно локации у вас появляются вот эти вот командные центры хатчери, нексусы, неважно, то есть старт.
45: Локация и там сколько по моему 4 да, 4 дрона было. Я просто в последнее время 2 старкрафт играю 4 дрона, 4 там пробки или 4 xiv. Они всегда появлялись в 1 и том же месте. Ну, вернее они всегда появлялись предсказуемо, то есть вы всегда могли сказать начальную.
46: Стадию игры это буквально тоже самое, как в шахматах. То есть вы всегда точно знаете, что у вас игра начинается вот именно с такого положения, вот именно с так будут расставлены пешки. Вот так будут расставлены офицеры, король Королева и так далее. Тут абсолютно тоже самое.
47: То есть вы точно знаете, с какого состояния у вас начнётся игра. Причём, независимо от того, они там 3 игрока. 4, 5, 6, 7, 8. Неважно, у вас есть 8 максимум игроков и есть обзерверы обзерверов, соответственно, некого состояния нет. Дальше у вас, поскольку у вас карта
48: Бита строго на тайлы у вас есть? Ну, то есть на квадратики у вас есть прям детерминированное состояние, как в шахматах, опять же. То есть у вас просто огромная шахматная доска, просто она размером не, там сколько? 64, по моему, да, клеток, а тут 128 на 128. Ну там посчитайте.
49: Но состояние по прежнему детерминированное, то есть те же самые дрончики, там юниты, они все едут вот строго по вот этим вот направлениям. И тут, соответственно, получается такая интересная история, что вам достаточно знать, какой, как бы ход сделал ваш соперник, да?
50: Ну и ваш ход, и ход соперника. Для того, чтобы высчитать текущее состояние игры. Это можно делать прям буквально на локальной машине. Собственно, в этом и состоит гениальность вот этого лок степ движка. То есть, по большому счёту, вы можете сэмулировать любой сложности историю, имея вот такой подход, но это даёт вам огра.
51: Ограничения. То есть у вас есть вот эти самые 4 дрона всегда стартовая локация, понятная, никогда не может быть по другому. То есть, ну, у вас в некотором смысле игра залочена, но тем не менее, вы же наверняка помните, вы же играли в старкрафт. Складывалось ли у вас ощущение, что, ну, типа, она какая-то несвободная, что
52: Вы не можете отправить там рабочего куда угодно. Нет, в этом и магия. То есть магия заключалась в том, что, несмотря на то, что это, по сути, шахматы, по сути, шахматы, вы могли буквально указать. Так ты дрон, едь сюда, и, соответственно, он сам выстраивал маршрут. Че самое интересное, что на сервере, на сервер, перед
53: Просто что-то, типа, player там 1 отправил, значит, дрона, икс, игрек, координата такая, соответственно, плеер 2 отправил, то, то, то, то. И вот здесь мы как раз возвращаемся к этим самым тикам. То есть, sticky, конечно, в старкрафте все равно были. Почему? Потому что, ну, нужно как-то синх.
54: Синхронизировать, да, действие у вас все равно есть некоторый таймлайн, но работали они совершенно иначе. То есть они не эмулировали мир, а они просто собирали указания на каждом тике, который, кстати, равнялся 24 герцам. То есть 24 раза в секунду происходило обновление. Каждый раз пользователь присылал какой-то
55: Действие, мы дожидались действия от другого, от другого клиента, либо, соответственно, пропуск действия, потому что 24 раза в секунду, ну, не каждый тыкает. Мягко говоря, этого оказывалось достаточно для того, чтобы верифицировать, что игра находится в одинаковом стейте. То есть дальше можно было эти команды отправить на
56: Соответствующие клиенты и обработать визуально, как бы это выглядело. Это вообще гениальная история. С 1 стороны, у вас действительно это работает полноценно. То есть с точки зрения сервера, у вас всегда непротиворечивое состояние. То есть вы всегда знаете, что, ну, не может быть истории, где пешка улетела.
57: В открытый космос, да, то есть она может только двигаться вот по тем направлениям, которые ей разрешены. С другой стороны, это лютейший античит. То есть если вы как-то модифицируете клиент, вы начинаете что-то слать другое или там пытаться запросить и так далее. Клиент просто под это не
58: Способен, это как буквально пытаться взломать банк, где нет ни входа, ни выхода. То есть, ну вы, вы как бы, какой бы вы там гений не были, да, вот он просто там замурован в непробиваемое вещество, и хрен вы его взломаете. Ну, тем не менее, читты, конечно, все равно в старкрафте были
59: Там находили способы, но тем не менее, вот из коробки это был очень крутой античит механизм. И самое главное, это работало вообще на всем, чем угодно. То есть, по сути, вам даже сервер не нужен был. По сути, вы могли играть по лану, потому что сервер, по сути, нужен для того, чтобы
60: Нет 2 Чуваков, которые сидят там, не знаю, в разных странах. Ну, если вы играете по лану, если вы играете, там даже айпии с был, если вы играете по лану, то, соответственно, вы просто отправляете свою команду туда, тот отправляет свою команду туда все, как бы вы высчитали новый стейт, и таким образом, у вас игра, это прям
61: Буквально шахматы в скорости. То есть это как speed chess, да, то есть, когда у вас мало времени, и вы там, типа, должны быстро двигать, быстро принимать решения, здесь у вас просто ещё меньше времени. Ну то есть, вернее, ваше время ограничивает ваш противник, если противник двигается быстрее, чем вы, ну там кликает
62: Быстрее, быстрее принимает решения и более правильные решения, то о вас конечно выигрывает. Тем не менее, какая-то, какой-то автоматизм все равно был. То есть вы могли взять, например, дрона и вам не нужно было прям рукой его переставлять. То есть он дальше ехал до нужной точки сам. И вот здесь 2 момент, который служил вот просто
63: Бесконечным поводом для мемов, багов и всяких разных вот просто фантастических моментов, без преувеличения в 1 старкрафте, ну на турнирах, например, это пас фандинг так называемый. Вот сейчас опять давайте погрузимся в некоторую инженерную тему.
64: Что такое пасфайндинг? Ну, когда вы опять же, берете вашего там дрончика муталиска, не знаю, зерлинга, кого угодно. Я просто за зергов всегда играю и направляете его в какую-то точку. Соответственно, если у вас просто плоская карта в ней есть вот как в шахматах, да, расчерчено квадратиками, то ваш путь будет, ну, довольн.
65: Таки простой там вы там квадратик вверх квадратик так, квадратик вверх квадратик. Так, ну и вот так вы, соответственно, дошли до нужной точки, но все меняется, если у вас есть ландшафт, соответственно, если у вас есть ландшафт, если у вас есть другие юниты, через которые, по идее, нельзя переходить. Ну то есть, например, вот тут у вас стоит другая фигур.
66: Да, как в шахматах, опять же, вы не можете через неё переходить, вы там должны как-то по другому сходить. Соответственно, у вас это все сильно усложняется. Плюс, помимо того, что есть другие юниты, есть ещё и такая история, как вот муталиска, муталиска можно сравнить на самом деле, с конём в шахматах, ну или
67: Там кэрриер, или призрак, или что ещё угодно, которые там могут летать. Соответственно, транспортники те же, они могут перелетать через юнитов, так же как конь может перескакивать через других юнитов. И вот это все надо реализовать. И вот это все очень сложно на самом деле реализовать. Понятно, что существует
68: Алгоритмы существуют, алгоритмы поисков пути, они всем довольно, ну, известны и так далее. Но тут как раз-таки включается вот эта история с изометрией. Если мы говорим, что у нас есть 2 д и 3 д в мире, да, 2 д, это вот наш банальный листочек, альбомный, который мы видим перед глазами, a3
69: Это вот, ну, какая-нибудь фигура, да, как у меня, опять же, вот за спиной вот, например, возьмём, да, вот нашего замечательного джокера, вот это 3 д фигурка, мы понимаем, да, но если мы её, скажем так, сфотографируем и как бы положим на альбомный лист или нарисуем, то это будет уже, соответственно, 2 д фигурка.
70: В чем отличие отличие в том, что у нашего замечательного джокера есть 3 координаты, у него есть высота, у него есть как бы ширина, пускай это будет, да, и у него есть глубина, то есть у него есть ещё вот этот вот параметр. Если мы говорим про компьютерные игры, то у нас получается история, что у нас есть либо x.
71: Игрек, либо икс, игрек. Зет зет, соответственно, определяет как раз вот ту самую глубину. А вот то, что было в старкрафте, это называется изометрия. И это как бы не совсем 2 д, как, например, это было в варкрафте, но и не совсем 3 д, как это, например, уже было там в квейке или даже в том же старкрафте 2.
72: 2 д. В плане, что у него есть икс игрек координата, но у него ещё есть 3 параметр, который условно можно назвать уровень высоты, да, типа там, это вот юнит 3 порядка, 2 порядка, 1 порядка, или там минус 1 порядка, если он зарыт. Соответственно, там очень жёстко прописаны рамки д.
73: Unit 1 порядка может переступить через минус 1 юнит, там 2 порядка, через 1 и так далее. Туда же заложены все. Вот хайграунд рампы и все, все, все остальное прочее. И они, соответственно, тоже это важный прикол, они составляют, по сути, ну, либо 1 клетку, либо если это хайграунд, там много
74: Клеток, соответственно, но тем не менее, это все тоже привязано вот, вот к этим вот квадратикам. И вам это нужно тоже учитывать в вашем алгоритме пути. В чем проблема? Проблема в том, что если вы делаете стандартное обычное 3 д, то ваше уравнение очень простое. Если объект ниже по уровню зетт находится, чем
75: Другой объект, он не может пролететь, и вы можете брать и буквально мышкой вот так вытягивать горы, устанавливать им какой-нибудь там уровень типа 763 с половинкой, а у этого объекта будет 762, они уже там будут сталкиваться прям вот где-то здесь, да, то есть вот на самой верхушке, а если там будет 500, то где-то
76: Вот там, вот здесь, например, в случае с жёсткой привязкой, он либо может пройти, либо не может пройти. И это, в свою очередь, приводит иногда к тому, что вам нужно обрабатывать какие-то, знаете, ну у нас это называется эдж кейсы, то есть корнер кейсы ещё по другому называются некие значения, некоторые ситуации, вернее,
77: Которые не должны по идее, возникнуть, но они все равно возникают. Вот смотрите вам пример.
78: Собственно, что вы здесь только что увидели? Вы увидели, как драгуны толпятся в 1 клетке, и в итоге Драгун перешагивает через хайграунд и через узкий проход, через который он, по идее, не мог перешагнуть. Почему так произошло? Потому что чуваки, которые писали старкрафт, они из за того, что нужно было переделат.
79: Движок, а они уже всем пообещали, что мы сейчас сделаем вау стратегию. Они находились в настолько жёстком перегрузе, в настолько жёстком кранче. Они прям ночевали в офисах, они прям палатки приносили, ставили все, по сути, вот, ну, какие-то неровности, да, ситуации из разряда. А че мы будем делать?
80: У нас там как-то окажется 100 юнитов на 1 клетке и там не пойдёт ответ вот это вот типа да, не окажется. Нет, вы должны буквально прописать, что произойдёт. Иначе, ну там игра упадёт, например, они такие, да, пофиг, вытесни просто его в соседний квадрат. Вот собственно, вы это и видели только, что, когда у вас
81: Получается, вот такие вот ситуации, когда, например, там вультура ставит мину под себя или много вультур ставит мину. Вот вы сейчас тоже это видите на экране, почему они проезжают? Потому что срабатывает вот этот самый баг, который, ну, не заложили специально, а скорее сделали разработчики. Просто потому, что они торопились, н.
82: Только тоже, опять же, какое-то некое случайное совпадение факторов, потому что, ну, мы с вами знаем, да, что баги они в основном раздражают. То есть, когда ты идёшь, и у тебя там, не знаю, там кто-то долбится головой в стену какой-нибудь энписи, ты там поугораешь, но это как бы рушит, да, вот всю атмосферу игры, вот эту
83: Фантастику, которая есть, ну, по ощущениям в игре, вот этот мир, ты понимаешь вдруг, что ты находишься в игре, а не проходишь, не проживаешь какую-то жизнь, да, все-таки, как и кино, игры, они тебя, ну, погружают в некую Вселенную. Здесь баги стали источником популярности этой игры.
84: Ну то есть это тоже какое-то уникальное на самом деле совпадение, но ещё 1 важный момент, который касается собственно движка близзард, не придумали этот движок, это не их изобретение, изобретение, это военных. То есть это прям военные сша использовали этот механизм для отработки операции.
85: На море, на суше, в воздухе. То есть буквально есть какие-то военные, которые построили себе старкрафт только в реальном мире. И такие, о, классная идея. Давайте мы это переведём в игру. То есть старкрафт это не просто опять же, какая-то ртска, какая-то игра, это прям
86: Военный жёсткий симулятор, завязанный на логику шахмат и на баланс шахмат. Вы только вдумайтесь в это много, знаете таких ещё игр. По сути, это полноценная отработка стратегии тактики. То есть понятно, что она упрощённая. Понятно, что вам там нужно добывать ограни.
87: Число ресурсов, а не как в жизни. Вам нужно добыть там 366 там миллионов ресурсов, чтобы собрать какой-нибудь 1 танк. Нет, понятно, что здесь это работает не так, но все равно сама механика боя, сами принципы, тактики и стратегии отрабатывались военными. То есть это буквально
88: Военный жёсткий симулятор, на основании которого военные принимают решения. И это очень прикольно звучит. Учитывая, что в южной корее те, кто хорошо играли в старкрафт, их прям забирали в штаб, да, то есть они служили, ну, где-то в командовании, потому что считалось, что если человек очень классно принимае,
89: Такие решения, да, ещё и на скорости, значит, он будет полезен в принятии каких-то военных играх, например, и так далее. И это, кстати, нас отчасти возвращает к истории петра 1. Помните его, этот потешный флот, да, с которым он игрался, казалось бы, игры, детское какое-то развлечение. Покажите это, кстати,
90: Там, не знаю, своей подруге или ещё кому-то можно теперь говорить, что я не просто играю в компьютерные игры, а я становлюсь маршалом, я отрабатываю навыки военного планирования, и это будет реально правдой. В этом прикол. Ну окей, вернёмся к вот этим Багам, всяким связанным с пасфайндинг.
91: Стала популярной, когда появился, появились первые киберспортивные турниры, когда люди поняли, что, опять же, это произошло именно по вот этой причине, потому что это реальный военный симулятор с настолько же высокой точностью, с настолько же детерминированным поведением, ещё и балансом шахмат. Да, эта игра не
92: Могла не стать популярной. То есть если выбирать какую-то стратегию для того, чтобы в ней соревноваться, то старкрафт это идеальный выбор. Буквально, когда это стало популярным, случился вот этот вот момент. Некто игрок по имени Джулай зерк, это корейский прогеймер, да, он использовал
93: Баг, связанный с тем, что опять же нету полноценной высоты, да, есть просто изометрия. И, соответственно, если долго жать в 1 точку, вернее, как сказать, если взять юнита, где-то находящегося за пределами твоей карты, и объединить в пачку с другими воздушными юнитами, то как бы
94: Поскольку они находятся на достаточно большом расстоянии. Вот эти юниты, опять же для упрощения математики сталкиваются просто в 1 клетку и становятся как бы 1 юнитом. Так родился 1 из самых известных багов и 1 из самых известных прогеймерских техник, которая называется мутастек. Таких на самом деле вещей было.
95: Достаточно много. То есть даже если взять того же драгуна, у него прям очень плохо был реализован пасфайндинг, поэтому кучка Драгунов шло, шла куда-то в атаку, они постоянно там куда-то шли в другом направлении. Ты куда-то кликал, это вообще не имело значения. Драгун уже сам начинал ходить в том или Ином направлении.
96: Это тоже было, ну, поводом для кучи мемов. 2, ещё важный момент, который в пасфайндинг приводил вот к таким вот смешным вещам, но которые стали визитной карточкой старкрафта. Это то, что путь для каждого юнита высчитывался отдельно. То есть, представляете, вы выводите там пачкой зерлингов, там
97: Каких-нибудь там ультралисков и так далее. Да, и отправляете их куда-то в атаку. Соответственно, в этот момент игра прям берет каждого юнита и отправляет типа, player, там 1, там, unit такой, то x туда, то игрек туда, то там, player 1 unit такой, то x туда, то игрек, туда-то, и вот так для каждого юнита пря,
98: Пачкой отправляет, и для каждого юнита, соответственно, высчитывается свой Асфандияр этом. Учитывая, что опять же рядом бегут какие-то другие юниты. Все это приводило к тому, что иногда юниты просто зависали на клетке, потому что рядом было куча других зерлингов, им буквально просто некуда было шагнуть. И они прям бежали, бежали такие
99: Хоба и зависли на месте. Потом опять, соответственно, побежали. Все это, соответственно, тоже приводило к огромному количеству багов и мемов. Но тем не менее, по другому тогда реализовать. Это было, учитывая лок степ движок и учитывая вот это все, ну просто было невозможно. Однако это опять же, говорю, пошло игре скорее на
100: Пользу. То есть это породило огромное число техник, которыми люди стали пользоваться для того, чтобы выигрывать реальные турниры и бороться там за миллионы долларов. Представьте, у вас на кону 1 000 000 $, и вы нашли какой-то баг. Больше всего мне нравится в этой истории то, что blizzard и официальные всякие там кеспа и прочее.
101: Организации, они не стали за это банить. То есть они сказали, типа, окей, чуваки, вы нашли какой-то баг, флаг вам в руки, вы красавчики, молодцы. Если вы с помощью него победили, вы честно победили. И я считаю, что это офигенный подход, потому что в большинстве там видов спорта, скорее всего, это бы запретили, если
102: Либо кто-то это сделал и так далее. Но я ещё думаю, что это не запретили, потому что это очень сложно запретить, потому что, ну а как отличить? Человек случайно это сделал? Или просто баг в игре произошёл, поэтому они приняли единственное верное решение. Типа, да, пофиг, если есть баги, пускай люди используют, кстати, ещё был
103: Дополнительные ограничения в движке, которые, например, очень сильно меняли баланс. И это тоже касалось вот именно движка ограничений. Например, в группу можно было назначить только 12 человек. Ну не человек, в смысле юнитов. Это тоже было связано с определённой отрисовкой экрана, с определённым местом на экране. И сколько у вас вообще
104: Типа, есть возможных вот квадратиков. Это приводило к тому, что, например, протосы, у которых юниты дорогие, и их мало. Им было намного проще управлять своей армией, чем, например, зергам, у которых юнитов много, и они, соответственно, очень быстро умирают. Их нужно постоянно в группы. Вот.
105: И я даже помню, было такое упражнение, где ты сидел, и такой, типа, 1, а, 2, а, 3, а, 4, а, и вот так вот просто тренировался. То есть ты просто прокликивал, и это тоже влияло на игру, потому что, ну, у тебя в конце всегда было там, типа, 10 пачек, например, лингов и ультралов, и ещё кого-то. И ты такой.
106: Типа, должен отправить их в атаку, но ты не можешь их просто обвести всех, в отличие от 2 старкрафта и отправить в атаку. Нет, ты такой, типа 1, a2, a3, a4, a5 и так далее. Это приводило к каким-то сумасшедшим скоростям. На самом деле у прогеймеров там до 400 действий в минуту. То есть это даже до 600.
107: Доходило. То есть, если брать 600, ну, давайте 300 возьмём это, там получается, че, 50 действий в секунду. То есть это быстрее даже кликают, чем, чем успевает обрабатывать движок, а не 5 действий в секунду, извините, 5 действий в секунду, но все равно это очень, очень много. Это супер. Быстро, представляете.
108: Некоторые до 600 доходили, то есть до 10 действий в секунду. Ну, там ещё мерился так называемый её апм. То есть это эффективный апм, который считал именно вроде как эффективные действия, а не просто там накликивание юнитов, но, тем не менее, все равно очень быстро это тоже дало какую-то вот, знаете, фишку.
109: То есть вам вы должны не просто уметь играть в шахматы, не просто выстраивать стратегию, а ведь, несмотря на то, что это полностью детерминированная игра, количество возможных стратегий настолько велико, что вы никогда их не запомните, тем не менее все равно присутствует и стратегическое мышление, и тактическое.
110: Мышление, оно прям очень хорошо развивается. Вот на примере этой игры, поэтому я всегда всем родителям рекомендую, дайте вот эту игру детям, она у них очень сильно разовьёт мышление, прям не хуже, чем шахматы. Я вам отвечаю, а в шахматы как бы не все готовы играть. Не всем это интересно, а вот
111: Стратегии, да, пожалуйста, это как-то поинтереснее. Ну окей. То есть, помимо того, что нужно думать, как в шахматах, нужно ещё и думать очень быстро. То есть это тоже играло роль, и что тоже всегда порождало некоторые, ну, споры, что ли, типа, что вот, да, вот он просто быстро кликает, на самом деле, он не умеет думать, это, поверьте, н.
112: Так было масса историй, когда люди выигрывали у намного более медленных, вернее, намного более медленные оппоненты выигрывали у более быстрых просто за счёт скилла, за счёт мышления стратегического, за счёт тактики и всего остального. Поэтому это, конечно, не так просто, как про это говорят. Это именно вот комбинация.
113: Его вместе последняя штука, которую я хотел бы рассказать про старкрафт, которая меня всегда удивляла, это баланс.
114: Баланс старкрафта это, конечно, нечто удивительное. Вот просто вам пример юниту зерга, который назывался зерлинг, стоил 50 минералов, их появлялось 2 за 50 минералов, то есть за 100 минералов появлялось 4, и был зилот, который стоил тоже 100 минералов, и он убивал зерлинга с 2 ударов, то ест.
115: В идеале, если брать вот 1 к 1, то 4 зерлинга почти всегда вот 1 в 1 убивали этого самого зилта, и это state, идеальное соотношение стоимости. При этом, соответственно, если вы нападёте сразу 4 зерлингами за счёт того, что они убьют вчетвером, они его, конечно же, убьют апгрейд, который делал
116: Зилоту на атаку, например, давал + 2. Он давал не просто + 2, а он давал 1 + 1. То есть зил бил как бы 2 раза. Соответственно, это было + 1 и + 1. В итоге + 2 зерлинга броня давала + 1, но так как он бьёт 2 раза именно у зилота это снижало урон Ровно в то же
117: Самое состояние, как без апгрейдов, то есть 1 апгрейд на броню полностью компенсировал 1 апгрейд на атаку у зилта. И таких вот комбинаций в старкрафте бесконечное множество. Почему так произошло? Опять же уникальное явление как для игровой индустрии, так и для всей индустрии вместе взятой. Дело в том, что
118: Отдел кьюэй в близзарде был на тот момент просто огромным, и возглавлял этот отдел кьюэй, некто по имени крис сигати. Вы видите имя его на экране. Дело в том, что на тот момент у близзардовский кьюэй было право ломать игру, несмотря на все там.
119: Вещание дизайнеров, то есть они приходили, они наигрывали 1000 часов сам по себе крис был таким вот жёстким инженером, таким вот прям с правилами. То есть его задача была сделать не баланс даже, а некий метабализм, которое бы работало
120: В любом случае, плюс жёсткая детерминированность игры. То есть мы помним, да, что состояния чётко прописаны возможные плюс тайлы, плюс ещё много чего. Все это вместе, ну, накладывает как раз вот это вот мета, состояние на игру, любое изменение в игре, да, оно не просто могло.
121: Поломать какой-то там visual или восприятие от игры, оно могло прям игру сломать буквально, соответственно, изменения делали довольно-таки аккуратно, но при этом, чтобы они не Ломали некую вот общую метастратегия, то есть некие правила игры. То есть игра была крайне хрупкой, наверное чуть ли не впервые или не единственно
122: Случай в истории, где кьюэй были важнее, чем геймдизайнеры и разработчики. Они тестировали игру, и они говорили, что делать. То есть они наигрывали 1000 часов, и они меняли баланс. Плюс здесь сработал реальный эффект эволюции. То есть, если говорить про старкрафт, это вообще удивительная история, посл,
123: Появление брудвар корейской сцены и всего прочего. Близзард, как бы, с 1 стороны, меняла баланс, но делала это крайне, крайне аккуратно. То есть изменения были прям крошечные. Опять же, это было связано с тем, что игра довольно хрупкая, её достаточно легко разломать и годами, годами. Вот эти
124: Вот, там + 1 - 1, они привели к тому, знаете, как вот вода стачивает камень. То есть они привели к тому, что игра сбалансирована, но сбалансирована она довольно-таки хитро. Это даже не просто принцип. Камень, ножницы, бумага, это скорее, там камень, ножницы, бумага, ящерица, спок, да.
125: Каждую стратегию, то есть баланс всегда немножко перекошён, да, там в ерли гейме 1 раса посильнее, в лейт гейме другая раса посильнее на такой карте. Там 1 раса сильнее на такой другая. В итоге в итоге у вас всегда есть контра на любую стратегию, и всегда есть некая
126: Которая там в определённый момент там не контрится. То есть нет такого состояния, что вот можно выучить 1 стратегию, и она всегда будет работать. Нет такого просто быть в старкрафте не может вот этот баланс, который получилось достигнуть эволюционным путём. Он и привлекал людей, это
127: Представляете, это вот к военному симулятору, к шахматам практически на огромной скорости прибавляется ещё и вот эта сбалансированность шахмат. Несмотря на то, что у вас 3 полноценных расы и у них огромное число юнитов, вы получаете вот настолько же сбалансированную игру, как шахматы. Где у вас
128: У вас юниты буквально одинаковые и ходы вы можете делать тоже по сути одинаковые. Опять же такого никогда не было до и никогда не было. После даже starcraft 2 чуть менее сбалансирован чем starcraft 1 там уже появилось понятие меты, то есть в этом сезоне это раз посильнее в этом этот посильнее в 1 же starcraft.
129: Оно застыло и опять же blizzard позволили этому застыть, что тоже является уникальным, ну некоторым совпадением факторов и оно вот существует в этом виде до сих пор. Вы можете прямо сейчас скачать себе 1 старкрафт, зайти, поиграть и убедиться, что все только зависит исключительно от кривизны ваших собственных рук. И это.
130: Конечно, удивительная история. Я даже не знаю, получится ли у кого-нибудь в 21 веке сделать какую-то такую же игру, которая бы вот обладала всеми вот этими 3 признаками. Но прежде чем заканчивать, я хотел бы рассказать ещё 1 важную штуку, но которая уже касается 2 старкрафта.
131: Здесь тоже довольно удивительная штука. Почему? Потому что время, которое понадобилось близзарду, чтобы выпустить 2 старкрафт, огромное, там прошло 10 лет. Представляете, 10 лет. Это огромный срок. Казалось бы, у тебя игра на супер волне, у тебя просто там супер популярность, у тебя турниры.
132: У тебя там деньги, ну какая бы компания не выпустила игру прям в этот же год. Просто там че то как-то бы сделали, на имени выкатили, нет, 2 старкрафт, видимо, опять же, из за community, из за того, насколько бережно люди относились к тому, как эта игра устроена, к её днк какому-то.
133: Что ли, вот именно. И по этой причине старкрафт 2 делали, ну, как бы с любовью. Та материя, которую сегодня мы в играх уже, ну, наверное, не почувствуем, да, когда вот игра сделана прям с любовью. То есть видно, что создателей от игры так прёт и так кайфово, что они готовы делать просто бесконечно.
134: Лишь бы соответственно это все продолжалось понятно, что starcraft 2 достаточно быстро вытеснил 1 старкрафт, хотя на самом деле до сих пор очень много людей играют в 1 старкрафт если вы зайдёте на официальный батлнет, вы игру найдёте буквально ну секунд за 20 25 вот у вас найдётся
135: То есть для игры, которой 20, для игры, которой 28 лет, это невероятный онлайн, ну просто невероятный. Вы ни 1 такого примера мне сейчас, наверное, не назовёте. Ну, может быть, за исключением какого-нибудь варкрафта 2, который тоже принадлежит близарду. 2 старкрафт, он тоже очень популярный, буквально там.
136: Не знаю, полсекунды вы находите себе соперника, но самое главное, что там классно сделали, это пасфайндинг, это вообще просто шедевр. Ну, я уже объяснил косяки 1 старкрафта, понятно, что там каждый юнит отдельно рассчитывался. Есть вот эта изометрия и так далее. Во 2 старкрафте уже появилис.
137: Нормальные видеокарты и можно было сделать честное 3 д, что, собственно, близзарды и сделали? Вот вы видите модельки баттл крузеров, там, зерлингов и всех остальных. На самом деле, вот под способом нахождения пути у юнитов во 2 старкрафте лежит реальная термодинамика и физика. Также, кстати,
138: Как и в балансе 1 старкрафта, лежит реальная физика и понятие динамическое равновесие. То есть вот баланс старкрафта это именно динамическое равновесие. По сути, когда вы указываете какой-то путь юниту, да, то у вас, ну вот эти юниты, они обрабатываются как некий общий
139: Пузырь, то есть вот вы выделили юнитов и отправили туда не рассчитывается путь для каждого юнита отдельно. Нет, отправляется прям целое облако. Причём каждая вот единица юнитов внутри этого облака, они ведут себя как жидкий, вот инертный газ или жидкость, да, то есть оно вот такое текучее, как бы считается.
140: Как будто каждая молекула внутри жидкости. Именно поэтому, когда вы отправляете зерлингов внутрь проходов каких-то, если вдруг они понимают, что они не могут затечь в этот проход, да, прям я буквально терминами жидкости говорю, они просто идут по 1, как струйка капает, да, то есть если у вас маленькая дырочка, много воды, у вас будет така
141: Струйка тоненькая лиса. И вот этот подход, который глубоко физичен, это, конечно, вообще просто, ну, гениально, багов с нахождением пути. Ну, во 2 старкрафте практически нет, и это работает до сих пор и работает очень круто и, честно говоря, в других играх я не встречал.
142: Вот настолько круто просчитанного пути, который ещё и работает на практически неограниченном числе юнитов. Для этого был реализован целый алгоритм, который назывался навмеш. Он учитывал и положение юнитов, и положение, и стоимость стрелочек, да, в каждом направлении, то есть там была применена не
143: Только физика, но и теория принятия решений с реальными формулами, вычислениями всего этого. И самый главный момент, который вот нужно понимать, что сложность поиска пути снизилась вот с о от n. То есть у вас стоимость алгоритма высчитывается от количества юнитов, то есть 20
144: Это, условно, 20, там, 200 юнитов, условно, 200. То есть у вас растёт линейно, в зависимости от того, какое количество юнитов вы выделили к о, от единицы. То есть, неважно, сколько вы количество юнитов выделили. У вас всегда стоимость расчёта пути будет одинаковая, и это тоже делает старкрафт 2 тоже. Ну, гениаль.
145: Игрой. И вот пасфайндинг это как раз та самая вещь, которую всегда упоминают. Ну вот когда говорят про 2 старкрафт, когда как-то его вот упоминают, именно его движок, именно его техническую составляющую. Хотя, конечно, и художники там очень круто поработали, и в принципе механики просчитаны. Ну то есть действительно очень круто сделан.
146: Игра, опять же, редкое исключение, когда 2 часть получилась, ну, реально лучше, чем 1. Хотя, когда я смотрел первые трейлеры, мне казалось, что 2 часть будет намного хуже. Ну, вот такой вот рассказ у меня получился про мою самую любимую игру, если я вдруг чего-то не осветил, извините, как говорится, пишите.
147: В комментариях обязательно подписывайтесь на мой telegram канал там я выкладываю новости из мира технологий вы можете узнать гораздо больше про наш технологический прогресс и вот про все то, что я рассказываю здесь, на канале информатика, меня зовут Алексей Гладков увидимся с вами в следующих видео всем огромное спасибо.
148: И пока.