Привет всем!
Мне задают много вопросов о том, как будет всё это работать и что значит, когда я говорю про инстансы.
Я уже давал ответы на некоторые вопросы, но вопросы продолжают поступать, и поэтому я решил, что было бы очень неплохо дать вам более подробный отчёт о том, как это все работает.
Одной из моих целей при создании SC было создать огромный открытый мир, в котором вы могли бы путешествовать в одиночку, с друзьями и вперемешку с NPC и реальными людьми.
Мультиплеер Фрилансера создавался с поддержкой до 128 игроков, но как некоторые из вас знают, это был скорее теоретический предел, чем что-то реально достижимое, особенно в 2003 году. Когда я начал работы над Фрилансером, частично вдохновленный проделанной работой над Ultima Online (которая была в разработке, когда я был еще в Origin), радость полученную играя в мультиплеер в таких играх как Command & Conquer и Diablo, я хотел внести опыт Приватера в смелый новый мир мультиплеера. Мое первоначальное видение Фрилансера было сначала в том, чтобы выпустить одиночную игру а затем расширить ее до многопользовательской версии с динамически меняющейся экономикой и миром реагирующим и адаптирующимся на действия игрока.
Мне так и не удалось донести свое видение, тем не менее Фрилансер стал хорошей игрой, но не тем, на что я рассчитывал.
В SC я решил объединить все, чего я хотел достичь во Фрилансере с сильными сторонами Винг Командера и Приватера.
Все многопользовательские игры - будь они с постоянным миром (ММО) такие как WoW или просто онлайновые игры по типу Battlefield 3 - имеют ограничение на одновременное количество игроков пребывающий на одной локации или уровне. Это число обычно обратно пропорционально объему данных передаваемых между клиентом и сервером. В играх с реалистичной физикой и полностью разрушаемым ландшафтом, как в Battlefield 3 количество активных игроков в одной локации меньше, чем в таких играх как WoW или EVE-online. Но во всех случаях игроков больше, чем может поддерживать один инстанс. Для постоянных многопользовательский миров таких как WoW существует решение - разделить игроков на более управляемые группы называемые "осколками (shard)", представляющими собой постоянный инстанс вселенной, которая закрывается (прим. пер. в оригинале look, но думаю это опечатка) при наборе определенного числа игроков.
Одна из нелюбимых мной вещей в существующих MMO как раз разделение игроков по "осколкам". Если вы попытаетесь присоединиться к игре, намного позже чем ваши друзья, есть шанс что вы можете не попасть в их мировой инстанс и вам придется подключаться на параллельный и играть одному. Это одно из достоинств EVE online - все играют в одной вселенной.
В SC будет существовать постоянный вселенский сервер, на котором будут жить все. Так что вы никогда не будете разделены с друзьями, и если вам захочется, вы сможете присоединиться к приключениям ваших друзей. Из-за сложности догфайта и симуляции физики, мы не сможем поддерживать тысячи игроков в одной зоне космоса. Даже будь у вас достаточная пропускная способность позволяющая передавать необходимый объем данных и супер компьютер для сервера, не существует ПК, даже с четырьмя SLI, способного отрисовать такое количество кораблей в SC.
"Магия" SC заключается в том, как мы совместили постоянную вселенную с более традиционной (и легко реализуемой) системой инстансов.
Суть в том, что существует постоянный сервер вселенной, который мы называем галактический Сервер, который обслуживает все активы игрока, отношения групп и локации внутри вселенной SC. Так как Галактический Сервер не обслуживает никаких действий в реальном времени (realtime action), он может заниматься обработкой всей базы игроков, которая на данный момент может содержать около 45000 игроков, он разработан так, что способен масштабироваться до миллиона в случае необходимости. Другая фишка Галактического Сервера, что он динамично распределяет игроков в зависимости от их умений, мировоззрения (aligment) и настроек предпочтения PvP по боевым инстансам. Боевой инстанс можно рассматривать как многопользовательские сессии Battlefield 3 или битвы в WoT, с существенным отличием что подбор игроков происходит прозрачно и "в тему" (in fiction).
Можно привести такой пример -
Я начинаю на планете New Pitsburg. Я решил прикупить пару тонн стали и отвезти ее на верфь Терры. Я нахожусь в руках Галактического Сервера, который общается с моим клиентом и осуществляет мои покупки и взаимодействия на планете, так как это не real time действия на манер битв в космосе. Мы представляем это на подобие Фрилансера, в 3D обстановке, локация с видом от третьего лица, мы взаимодействуем с NPC либо с терминалом, чтобы купить/продать, произвести апгрейд корабля, послушать слухи, узнать о миссиях и т.д. Вы также сможете общаться с игроками посредством чата. Мы еще не до конца проработали поддержку аватаров, но в игре будут бары или частные клубы, где вы сможете встретиться/общаться с другими игроками. Помимо наполнения баров NPC, в бары будут заходить и другие игроки.
Если зайдет большее количество игроков, чем у вас панель аватаров (slots of avatars in the bar), для вас будут отображены игроки имеющие какое-либо отношение к вам, например, игроки ищущие напарника, игроки из вашей группы или возможно кто-то, на кого вы взяли миссию. Возможно, это будет ниспадающий список, но я ненавижу все, что ломает атмосферу игры, скорее всего мы реализуем это каким-нибудь отыгрышом, возможно, вы говорите бармену, кого вы ищете или смотрите гостевой список.
Купив груз, я направляюсь в космос. Если на орбите уже присутствуют игроки, инстанс орбиты уже будет создан. Если он еще не полон, я попаду в него. Если мест в нем уже не будет, то создастся еще один инстанс орбиты. Все орбитальные (и боевые) инстансансы будут иметь зарезервированные места для друзей и Важных персонажей (persons of interest (POI)), которыми могут быть как игроки так и NPC, так что если существует несколько инстансов орбит вы попадете в ту, где уже присутствуют ваши друзья. Это также будет работать если вы хотите проследовать за каким-либо персонажем - вы "помечаете" его как POI и дальше игра сделает все, чтобы вы попали в один инстанс к нему. Например, если вы пометили кого-либо на планете и затем запустили свой PDA, он уведомит вас, что этот POI отбывает с планеты, показав вам окошко о запуске в космос и для вас.
На орбите я могу запустить Навигационный компьютер и задать пункт назначения. Если пункт назначения в нескольких прыжках, навигационный компьютер проложит курс по соответствующим прыжковым точкам (jump point). Вы сможете корректировать ваш курс как в Google maps, так что если вы выберите другой джамп поинт на звездной карте, маршрут пересчитается и выбранный джамп поинт будет первым в списке.
Проложив маршрут, я включаю автопилот и направляюсь к первой точке своего путешествия (джамп поинту, промежуточной космической локации (например, пояс астероидов) и т.д.). В этот момент управление берет Галактический Сервер, который рассчитывает буду ли перехвачен врагом, либо встречу того, кто отметил меня как POI, либо попаду на какую-то предопределенную локацию. Такие встречи могут быть как с NPC, так и с игроками и выбираются по уровню навыка и, что важно для всех тех кто хочет больше играть в одиночку и не хочет связываться с гриферами (griefers), будет основываться на ваших настройках PvP. Так что если вы выбрали для себя низкий уровень PvP и вы в относительно безопасной зоне, вам скорее попадется NPC - PvE встреча, вместо PvP. Конечно, в таком случае ваш ранг и заработанная репутация будет другой, нежели после PvP встречи.
Я надеюсь, что такая система позволит новичкам чувствовать себя более безопасно в открытом мире, но как только они почувствуют себя увереннее и захотят испытать свои силы с живыми соперниками, они смогут вступить в битвы PvP. Во вселенной будут места, где не будут учитываться выставленные настройки PvP, там PvP будет присутствовать в любом случае. Это будут системы на окраинах охраняемой галактики и будут славиться пиратством и нелегальной деятельностью. А еще они будут гораздо прибыльнее - в том случае, если вы сможете там выжить.
Теперь, если вы летите с друзьями, которых вы "пометили" с помощью системы POI, они будут втянуты в боевой инстанс, неважно против кого - NPC, людей, либо и тех, и тех.
Как только Галактический Сервер рассчитает, что вам предстоит столкновение с учетом выше перечисленных критериев, он создаст боевой инстанс, либо поместит вас в уже существующий, если в нем будет место для новых игроков. Чтобы покинуть данный инстанс вам необходимо избавиться от врагов, либо уничтожением, либо договорившись, либо просто сбежав. Попав в инстанс, вы можете подать сигнал бедствия, чтобы позвать своих друзей. Есть два способа, которыми ваши друзья могут вам помочь. Мы резервируем места в инстансе для ваших друзей, чтобы они могли вступить в бой. Что бы сделать это, они должны быть в той же системе.
Если да, то они должны включить авто пилот, который приведет их вам на помощь в инстанс. Если они в другой системе, они могут попытаться прилететь в вашу систему до того, как битва закончится и войти в бой первым способом. Второй способ, которым ваши друзья смогут помочь - это "войти" в ваш корабль. Это будет работать только если в вашем корабле предусмотрен экипаж, например, RSI Constellation. В таком случае им нет необходимости быть в одной с вами системе, они просто появятся на вашем корабле и смогут передвигаться в нем от первого лица, смогут занимать места в туррелях или сесть в P52 и вступить в битву на нем пока вы пилотируете основной корабль (либо они могут взять управление корабля, а вы будете управлять истребителем).
Как только минует опасность либо произойдет событие (иногда вам будут встречаться инстансы, в которых будут присутствовать покинутые корабли или космические станции, и мы хотим дать игроку исследовать их) вы сможете опять включить автопилот, вас подхватит Галактический Сервер и вы продолжите путь по проложенному маршруту.
Вас будет выкидывать либо к джамп поинтам, либо планетам, где вы можете решить уйти ли в другую систему либо приземлиться.
Этот процесс будет повторяться до тех пор, пока вы не достигнете пункта назначения, в нашем примере Terra, где я смогу использовать свою систему коммуникаций, чтобы запросить место посадки, которая спустит меня на поверхность планеты, проиграв ролик на движке игры. На земле я смогу продать свой груз, восполнить запасы и поискать новые возможности перемещаясь по планете с видом от третьего лица.
Преимущество данной системы в том, что вы сами подгоняете игру под свой стиль игры - соло, кооператив или PvP. Такая система не помещает вас в другую, параллельную версию вселенной SC, так как все живут на одном сервере. В связи с тем, что все инстансы орбит/битв временные, вы никогда не застрянете с одной группой игроков на длительное время и особое внимание уделено взаимодействию с друзьями и кооперативу, так что всегда будет место для друзей в ваших приключениях; неважно против игроков или NPC.
Та же система инстансов будет присутствовать в одиночном режиме 42й Эскдрильи (Squadron 42). Если вы играете оффлайн, ваш компьютер будет работать в режиме клиент-сервер, для ваших друзей не будет возможности подключиться и все персонажи будут NPC. Но если вы решите играть в 42-ю Эскадрилью на Галактическом Сервере, даже на предопределенных миссиях и космических локациях (вы не выбираете куда лететь, вы ведь военный) мы позволим вашим друзьям занимать место NPC ведомых, а если вы захотите получить высокий ранг, вы можете позволить другим игрокам играть против вас, заняв места вражеских персонажей. Эта система похожа на Demon’s Souls, где люди могли подключаться как Blue Phantom, чтобы помочь вам убить босса или сражаться против нападающих игроков, либо вы могли войти как Black Phantom в чей-то мир и попытаться убить его за опыт и награды.
Основная цель - позволить игрокам выбирать - хотите играть в одиночку? Пожалуйста! Хотите кооператив с друзьями? Мы и это позволим! Хотите настоящего испытания с реальными людьми? Вы можете и это! Самое главное, что все это возможно в одной и той же целостной вселенной.
Надеюсь эта статься позволит понять как мы собираемся сбалансировать некоторые аспекты мультиплеера и при этом получать море фана.

Ссылка на первоисточник