А почему вы решили сделать Civilization IV с чистого листа?
Трой Гудфеллоу: А почему вы решили сделать Civilization IV с чистого листа? Просто выбросить все и начать сначала. Была хорошая серия игр, что побудило сказать «ладно, хватит»?
Сорен Джонсон: Хотя история Civilization IV начинается далеко в прошлом, для меня она начинается с Civilization III. Когда я присоединился к команде разработки, люди там были в основном новые, и код, на котором писалась третья игра, был по большей части кодом Alpha Centauri, мы просто перенесли его на другую основу. Было трудно, потому что ни у кого не было опыта работы с ним, это привело к тому, что пришлось принимать много решений по части мультиплеера и моддинга и даже организации игры в какой-то степени. Даже интерфейс мы не могли поменять, потому что не были достаточно хорошо знакомы с кодом. А игру нужно было выпустить через год-полтора. Поэтому, закончив Civilization III, мы оглянулись назад и спросили себя, будет ли быстрее, если мы напишем все заново или продолжим менять тот код, то есть дорабатывать его?
Много чего поменялось в коде Civilization III…
Не хочу называть это топорной работой, но это было необходимо именно для того, чтобы выпустить продукт. Многие изменения делались с мыслью о том, что надо выпустить игру, чтобы она была интересной, однако это не были перспективные решения. Мы чувствовали, что у Civilization IV огромный потенциал и хотели многое сделать с нуля и сделать отлично. Особенно сетевую игру и модификации. Я говорю в основном о технических вещах, а не об организации игры. С точки зрения организации мы, наверное, могли сделать Civilization IV на движке третьей части. Идея начать с чистого листа очень привлекательна. Это то, с чем программистам надо бороться, потому что думаешь, что старый код ужасен, и надо начать с начала, но понимаешь, что это не всегда это так. Если же говорить об организации игры, начав писать Civilization IV с чистого листа, мы могли проанализировать все мельчайшие элементы геймплея и решить, стоило или нет оставлять их. Например, если я начну с начала, не будет коррупции, не будет загрязнения, не будет восстаний, не будет зон контроля, не будет всех этих вещей, которые мне потом придется добавить, и шаг за шагом я буду спрашивать себя: «А это хорошая идея? Может, убрать это и посмотреть, что получится?»
Это интересный процесс, который, как мне кажется, называют упрощенным дизайном. Я не знаю, это то или нет, но в общем, если нет необходимости применять что-то, обойдитесь без этого и посмотрите что будет. Например, обнаружилось, что не нужны были наказания, накладываемые на игроков. Я считаю, у нас все получилось.
Думаю, когда люди говорят о Civilization IV, они обращают внимание на вещи вроде религии, великих персонажей, улучшений отрядов и другие классные штуки. Но очень важно и то, что мы убрали из игры. Вещи, без которых по нашему мнению, игра стала менее сложной для игрока, менее разочаровывающей. Но основная причина, по которой мы начали с чистого листа, была технической – необходимость сделать мультиплеер. Сетевые стратегические игры работают на одном том же компьютере, по принципу «клиент-клиент». Стрелялки работают по принципу «сервер-клиент», когда сервер производит все вычисления и передает новые данные назад клиентам, стратегии же настолько сложные игры, что идут только на одной машине, и все что вы передаете в сеть – решения игрока. Проблема в том, что когда пишешь сначала однопользовательскую игру, каждая функция может изменить что-то где бы то ни было, и трудно понять, что именно изменилось и как синхронизировать машины.
Поэтому с самого начала мы писали Civilization IV под мультиплеер. По сути она не была однопользовательской игрой. То есть, можно было не играть против других людей, однако всякий раз, как вы совершали действие, код вел себя как в сетевой игре, независимо от того, была она сетевой или нет. Так что, когда вы ведете одиночную игру и приказываете своему отряду идти на северо-восток, код посылает сообщение, как в многопользовательском режиме, и дальше он как бы говорит: «Кому мне нужно послать сообщение? А, только самому себе», – и возвращает его себе. Таким образом совершается перемещение. Если же это в самом деле сетевая игра, сообщение отправляется на другие машины. Пришлось бы долго рассказывать о том, что делать игру изначально сетевой гораздо легче, чем пытаться превратить однопользовательскую игру в многопользовательскую. Мы понимали, что лучше будет начать с самого начала. Та же история с модификациями.
Если вы предположите в начале, что будете использовать XML или Python, и постараетесь уместить весь игровой код в одном проекте, в конце концов, вы сделаете код открытым, это не так уж трудно. При попытке вытащить все необходимое из старого кода, вы потратите очень много времени на сам процесс, в отличие от правильной работы с нуля.
Troy Goodfellow, Civilization Chronicles
(Из беседы с Сидом Мейером и Сореном Джонсоном. Трой Гудфеллоу, Хроники Цивилизации, перевод 1С)
Советуем почитать:
- Как борьба за авторские права повлияла на разработку Civilization?
- Сорен Джонсон и его вклад в серию — Civilization IV
- Вы даете характерные черты правителям и нациям. Есть ли какой-то риск в этом?
- Вы рассматривали какой-нибудь более радикальный способ создания игры о мировой цивилизации?
- Что больше всего изменилось в Civilization III?
- Sid Meier’s Alpha Centauri — хит? Превью | Страна игр
- Кто-нибудь подпрыгнул на стуле, когда вы сказали, что будете внедрять религию в игру?