Gamedev Artyom Kaleev
11 816

Просчитать расстояние и не зависнуть: с какими проблемами сталкивались создатели C&C: Tiberian Sun

У истоков геймдизайна стратегий в реальном времени.

В закладки
Аудио

Command & Conquer: Tiberian Sun вышла в 1999 году, и уже тогда игрок в ней управлял сотнями юнитов одновременно. Естественно, это не обошлось без нужды оптимизировать код: просчитывание даже такой простой операции, как пройти из одной точки в другую, требовало колоссальных вычислительных мощностей.

YouTube-канал издания Ars Technica опубликовал разговор с сооснователем студии Westwood Луисом Каслом — разработчик рассказал, как команда в своё время решала проблемы создания Command & Conquer. Сейчас многие из приёмов могут показаться очевидными, но тогда это было настоящим прорывом.

Технологии сжатия

Tiberian Sun использовала CD-ROM — настоящую инновацию того времени. Вместо десятков дискет игру можно было загрузить на диски — это экономило время установки. К тому же, формат CD позволял хранить полноценные аудио- и видеозаписи.

Если бы Tiberian Sun записывали старым методом, то она бы заняла 1050 дискет. Вместо них игра использовала два диска.

Tiberian Sun славилась качеством внутриигровых роликов — в катсценах снялись даже такие актёры, как Майкл Бин («Терминатор») или Джеймс Эрл Джонс («Звёздные войны»). Но внедрение CD обернулось для студии большой проблемой — диски слишком медленно передавали информацию для таких объёмов данных.

Зато Кейна сыграл Джо Кукан — глава разработки Tiberian Sun

В те времена почти не было технологий, которые могли бы считывать подобные ролики со стандартной скоростью CD-ROM. К тому же, не существовало нужных кодеков — потому программы по обработке и сжатию видео Westwood пришлось писать самостоятельно.

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

Луис Касл
сооснователь Westwood

Перемещение юнитов

В Tiberian Sun одной из ключевых особенностей было строительство. Разработчики не могли просчитать все возможные пути перемещения юнитов заранее — внутриигровая карта постоянно менялась. Пришлось найти нестандартные варианты решения проблемы.

Самый простой способ решить эту проблему — это пойти по принципу лабиринта. Вы можете просто постоянно поворачивать направо, пока не наткнётесь на тупик — со временем вы найдёте выход. Предположим, я беру в игре юнит, говорю ему идти в такое-то место, и дальше он просто кружит от одного края карты к другому — это попросту нелепо.

Луис Касл
сооснователь Westwood

В C&C игроку были доступны несколько типов юнитов, и у каждого из них перемещение работало по-своему. Пеший солдат не мог двигаться как вертолёт, потому что он не может облететь препятствия по воздуху. По словам Касла, необходимость просчитывать пути одновременно сотен юнитов «опускала на колени любой процессор того времени».

Так что разработчики прибегнули к ряду уловок. Так, каждый юнит при перемещении будто бы не замечал все дружественные динамические объекты. Если стену или любое другое препятствие он обычно обходил, то в случае с союзными юнитами просто шёл «напролом» — без необходимости обрабатывать их поведение.

Естественно, в таком случае пришлось решать проблему коллизии — особенно в случае, когда военных единиц становилось слишком много. В таком случае те юниты, которые стояли у других на пути, просто слегка двигались на момент в сторону.

Так выглядела ситуация, когда сотням юнитов пехоты приходилось переходить через один-единственный мост. Солдаты продолжали «дрожать», пока наконец не пересекали узкий проход.

В комментариях к ролику на Kotaku другие разработчики из Westwood дополнили слова Касла. Так, если множество юнитов одного типа передвигались вместе, то путь просчитывался лишь у условного «лидера» — все остальные шли группой по той же дороге, что и он. Это снизило нагрузку на процессор до минимума.

А если в тот момент, когда группа передвигалась через мост, он разрушился, то юниты просто делились на две разные группы.

sarusa
пользователь Kotaku

Другой приём касался обработки самого пути. Если отослать юнита в другой конец локации, то игра не будет просчитывать дорогу пиксель за пикселем. Вместо этого карта представлялась в виде множества сеток разной детализации — с разметкой вплоть до одного юнита. Большая сетка лишь условно показывала путь, в то время как сетка меньшего масштаба, к примеру, рассчитывала его с учётом возникших препятствий.

Так сделали для того, чтобы просчитанная дорога адаптировалась под изменения обстановки на экране. Как только юнит проходил площадь сетки меньшего масштаба, генерировалась новая сетка — и так далее.

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

sarusa
пользователь Kotaku

Игра просто не делала ненужную работу — как, например, Baldur's Gate, которая в те времена «фризила» почти каждый раз, когда игрок перемещал партию на огромные расстояния. Путь просчитывался не полностью, а лишь частично — и он постоянно подстраивался под все изменения на карте.

#commandandconquer #разбор #опыт

{ "author_name": "Artyom Kaleev", "author_type": "editor", "tags": ["commandandconquer","\u0440\u0430\u0437\u0431\u043e\u0440","\u043e\u043f\u044b\u0442"], "comments": 66, "likes": 154, "favorites": 125, "is_advertisement": false, "subsite_label": "gamedev", "id": 42529, "is_wide": true, "is_ugc": false, "date": "Mon, 11 Mar 2019 20:23:22 +0300" }
{ "id": 42529, "author_id": 17412, "diff_limit": 1000, "urls": {"diff":"\/comments\/42529\/get","add":"\/comments\/42529\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/42529"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954, "last_count_and_date": null }

66 комментариев 66 комм.

Популярные

По порядку

Написать комментарий...
21

У игры помимо роликов, крепкого сюжета был оочень большой плюс - саундтрек.

Ответить
1

Возможно, не самое крутое творение Клепаки, но точно самое атмосферное.

Ответить
13

Игра была отличная. А по тексту:
1. Расписывается про диски так, будто не было первой C&C и первого Red Alert, по 2 диска на игру. Это не считая аддонов к ним. Видеороликов в них было даже больше, кстати.
2. К предыдущему пункту. Считывание данных "на лету" к тому моменту уже не было революцией. 99 год, уже не 2х скоростные сидюки. Плюс инсталляция на хард. Как приставки то справлялись?
3. Path-Finding хоть и стал лучше, но в целом остался идиотийным. Фиг знает, что они там просчитывали, но по сравнению с играми Близзард - это был стыд и срам. Или фишка)
4. Коснуться технологий (в теме тез же CD), и ни слова про воксели. Вот уж что реально было мощно.

Ответить
7

3. Path-Finding хоть и стал лучше, но в целом остался идиотийным. Фиг знает, что они там просчитывали, но по сравнению с играми Близзард - это был стыд и срам. Или фишка)

Чегооооо? Сами близы отмечали что фиксили поиск пути в ремастере старкарфта. О чем ты?

Ответить
3

Я помню что танки в Старкрафте творили, если их кучей куда-нибудь отправить нужно было. Это была жесть жестяная.

Ответить
1

Эти же сиджи в Тибериан Сане творят вещи похлеще. Пускаешь две группы из одного места по очереди в одну же точку, а они разными маршрутами едут (иногда кардинально)

Ответить
1

Ну вот близардовцы решили такие проблемы с рабочими.... сделав из просто "прозрачными". SCV проходят сквозь друг-друга без коллизий.
ЕМНИП стеки муталисков возникли по той же самой причине: нет коллизий - нет проблем.
Эталонное решение!

Ответить
3

Рабочие "прозрачные" только во время добычи минералов, даже термин есть - mineral walk

Ответить
0

Настолько.что это стало фичей. И частью стратегии разведки позволяя проходить сквозь вражеских юнитов на холде.

Ответить
0

Для меня самая большая жесть была управлять хотя бы 5-6 не помню как называются, роботами на ножках, похожих на Ed-209 из Робокопа. Вот они точно всё время шли не туда, препятствия обходили так, что всё время их надо было возвращать, а уж в узких проходах совсем беда была.

Ответить
0

Гуны или полностью Dragoon )

Ответить
2

Скорее всего имелись в виду голиафы, но у драгунов тоже была проблема с узкими местами, даже похлеще чем у голиафов )

Ответить
1

и спустя много лет выходит ск2, где (по крайней мере в WOL и HOTS) застревали колоссы )

Ответить
1

Голиафы, точно! Спасибо.
Goliath on line!

Ответить
0

О да, какие они выделывали коленца своими раскинутыми в стороны ногами на подъемах - это только матом можно описать : )

Ответить
0

Про них и драгунов есть отдельный видос карботов, очень ржачный : )

Ответить
0

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

Ответить
1

Ну ок, просто ставить в пример близов, где сам поиск пути был на костылях - так себе идея.

Ответить
1

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

Ответить
0

Как это фиксили? В ремастере специально оставили всё как было, потому что создавался он в первую очередь для киберспортивной сцены Кореи, где малейшее изменение повлияло бы на идеальный баланс, выверенный десятилетиями. И вызвало бы море возмущений, потому что тупящие драгуны, скарабы и т.д. - это уже неотъемлемая часть механики. Может в сингле разве что что-то фиксили.

Ответить
0

Нет, не фиксили, ибо совместимость с классической игрой, старыми реплеями и привычность для корейцев. Тем не менее, по нынешним меркам, pathfinding в Starcraft 1 слабоват.

Ответить
1

3

Согласен. Буквально на днях прошел тиб сан и местный патх фаиндинг это пиздец. В старике он тож не блистал, особенно в коридорных уровнях с лестницами, но в тиб сане намного хуже.

Ответить
1

Справедливости ради, в C&C не было ограничений на количество юнитов и выделение групп.

Ответить
0

Path-Finding хоть и стал лучше, но в целом остался идиотийным.

Вы видимо в орду не играли. Вот там всё очень плохо. В C&C солдатики хотя бы стопроцентно до цели доберутся.

Ответить
0

Да там хуже, но...
Blizzard, Westwood, 7th bit labs.
Что-то подсказывает, что у кого-то тут масштаб немного не тот.

Ответить
0

Просто тбх у меня с поиском пути в тибериан сане проблем не было. Юниты иногда странно себя ведут когда отправляешь в туман. В остальном не ощущал дискомфорта.

Ответить
10

Первопроходцы они, ага. В это время уже давно была TA, где каждый выстрел имел свою физику.
Напомню, Total Annihilation лишь на 2 года старше оригинальной CnC, вышла в 1997 году.

Ответить
4

Total была хорошая, но мне C&C:TS всегда заходил как-то больше, в том числе и из-за визуала. У нас в школе чуть ли не два лагеря были: кто топил за TA, а кто за C&C:TS.

Ответить
2

Если сравнивать CnC и TA (да даже CnC:TS, который старше TA на 3 года), то в CnC практически нулевой сетевой режим - медленный, на крошечных картах, несбалансированный, в ТА же наоборот он невероятный. А вот сингл в CnC это топ, тогда как в ТА он на дне.
Всё детство-юношество пока не было интернета играл в CnC, RA, RA2, а потом как появилась сеть плотно засел именно за сетевую TA (в неё кстати во всю до сих пор играют и патчат).

Ответить
0

Да, всё так. Ну я больше по синглу угорал в CnC как раз.

Ответить
3

Но были еще Генералы. Где и сингл и сеть были невероятными.
(как же скучаю по тем временам)

Ответить
0

А они вот как-то в душу не запали. Но по тем временам скучаю, да.

Ответить
–1

Да ладно, сингл в Генералах был так себе, особенно на фоне С&С других серий. В целом, Генералы хороша игрс, но называть её С&С не следовало.

Ответить
0

Очень следовало. Как раз-таки из-за скайрмиш-режима. Он там невероятен

Ответить
1

А я, как дурак, залипал в 3 героев

Ответить
2

Никто ж не мешал всё это совмещать :)

Ответить
0

Черт, до сих пор рублюсь в эту чёртову TA. Ryzen 2, ddr 4, gtx 1070 - и играю в стратежку 1997го года. Запала в душу чрезвычайно! ТС тоже люблю, но скорее вспоминать. В ТА веселый скирмиш - ставишь самых сильных врагов, карта из металла и поехали. И оооочень быстро отстраиваешься, экономя время примерно на всём, чтобы вывести тяжёлые корабли вокруг базы и минимальную авиацию. Это сдерживает примерно все волны при должной скорости апгрейда. В это время собирается первая ракетная установка и 3 ракеты, которые успокаивают противников, чтобы была возможность отдышаться. Ну и все, дальше уже дело за малым, объявляешь врагам джихад и выносишь их 15 ядерными снарядами и авиацией (я люблю до последнего здания, а не до смерти командира).
Компания была не очень, удивлён, что ещё рубят в сетевую, пошёл качать на ноут!

Ответить
1

Заходи на tauniverse, сейчас играют в мод ta escalation, в основном в gameranger. Но ребята там играют хорошо.
Какое-то время был ещё русскоязычный форум, может жив.

Вообще ТА навсегда в моем сердце, только вар3 может как-то конкурировать с ней за мою любовь :)

Ответить
0

А Сюприм Коммандер уже не то?

Ответить
0

Весьма то, причём оба два.
До сих пор рубим в него иногда, но ТА мне нравится больше.

Ответить
0

А я обновил комп и смотрю твич :\

Ответить
7

Блин, на больное давите. В школе у друга был бокс с лицензий из Штатов. На разных дисках кампании за разные фракции. Какая же она охрененная была :(

Ответить
1

Помниться купил себе Тибсан в стандартной пиратской точке, а игра попалась в странном джевеле. Сзади не было ни текста, ни скриншотов, только напечатанный снизу ключ. Спустя год увидел у знакомого такую же коробку внутри бигбокса. Кто-то видать сдал на обмен...

Ответить
6

Тиб сан еще удивлял своей разнообразной тибериумной фауной, это было чертовски круто. Да юнитов можно было строить много, но и карты были большие, что вытекало в долгие битвы.
Кстати существует духовный наследник в виде Twisted Insurrection, самостоятельная игра использующей сильно расширенный движок Тиб Сана.

Ответить
0

Еще визуал и атмосфера классные были.

Ответить
5

-Command & Conquer: Tiberian Sun вышла в 1999 году
-Tiberian Sun использовала CD-ROM — настоящую инновацию того времени.

Ответить
1

1999ый год

инновацию того времени

CD-ROM уже почти 5 лет как стандарт на PC, и это не учитывая того, что игры на PC с дисками в качестве носителей выходили задолго до этого (Dune, The 7th Guest, Myst)

TurboGrafx-16 CD вышел вообще в 1988ом

Ответить
0

Для 99го года такая себе инновация.

Ответить
5

У истоков геймдизайна стратегий в реальном времени

99й год. Истоки. Тогда волна РТС уже к закату подходила, если не считать потока корейских игр.

Ответить
0

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

Ответить
2

В тибериансан меня больше всего бесил терраформинг. От врывов, особенно артиллерии нод, менялся ландшафт, а построить на нём уже ничего нельзя было. Зачастую возле полей с тибериум шли самые жаркие стычки, а потом рядом ни электростанцию не поставить, ни перерабатывающий завод.

Ответить
9

По моему это круто?

Ответить
3

Сам терраформинг вещь крутая, но когда тебе не хватает места под базу, так как половина площадки в "ямах", то удовольствие пропадает.
В том же периметре ты мог "насрать" противнику так же, но он потом мог выравнить площадку. В тибериансан нельзя было

Ответить
4

Я уже забыл, но разве асфальтовые полотна не помогали от этого?

Ответить
1

Помогали, но строить задолбаешься эти квадратики 4х4.

Они ещё и доступны только после постройки бараков.

И под уже имеющимся зданием не построишь. И под юнитами тоже.

Единственное что доставляло — в некоторых пиратских версиях это строение было переведено как «тротуар».

Ответить
3

Отличная игрушка была. Помню в 3 классе дал одному челу игру на пару деньков. На следующий день, он мне отчитался что его младший братец сломал тот диск, который нужен был для запуска игры. Славных пиздюлин я тогда от отца выловил. В итоге где-то с полгода любовался красивым ярлыком на столе, который при запуске настойчиво требовал диск..

Ответить
5

Вот это сейчас жестоко было , такие ужасы душераздирающие рассказывать.

Ответить
2

Я уснуть вчера не мог после твоего поста, что ты за человек?!

Ответить
3

потому программы по обработке и сжатию видео Westworld

Westwood

Ответить
0

У-упс, спасибо, исправил!

Ответить
1

Первый C&C был откровением.

Ответить
1

А что, волновую трассировку в те времена не знали? Вроде, еще в WC1 использовалась, да и в героях первых..

Ответить
1

Тибериан Сан - одна из любимых игр детства и до сих пор.
Помню что диски были у хорошего друга, и поэтому он мне их постоянно погонять давал. Проблема была в том что кампания требовала соответствующего диска, а диск нодов был как-то неудачно затертым и поэтому кампания нодов ну очень уж долго загружалась. Если за гди миссии грузились может секунд по 15-20, но у нодов загрузки были по 5-10 минут. И конечно самый фан что я был достаточно тупым чтобы не мочь пройти дальше середины кампании гди, поэтому играл за нодов и постоянно смотрел на эти загрузки.
А боев с ботами у меня не было потому что игра без аддона была. Такие дела.

Ответить
–3

У истоков геймдизайна стратегий в реальном времени.

Давай детка. Издевайся над игроками дальше. Показывай как и что вы там делали, несмотря на похороны серии.

Ответить
0

Ну под их руководством ремастеры делают, поэтому и интервью, собственно случилось.
Причем тут похроны и смерть серии?

Ответить

Комментарий удален

0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Хидео Кодзима оказался алгоритмом
машинного обучения
Подписаться на push-уведомления