Крис Сойер — создатель RollerCoaster Tycoon, поклонник аттракционов и гениальный программист

Крис Сойер — создатель RollerCoaster Tycoon, поклонник аттракционов и гениальный программист

Ранним воскресным утром, в апреле 1999 года, геймдизайнер Крис Сойер, находившись в своей гостиной (командном центре), обставленной лучшей техникой 90-х, изучал сетевые форумы. Дело в том, что в конце марта того же года на полках магазинов Северной Америки появился RollerCoaster Tycoon, на создание которого огромное влияние оказала любовь Сойера к тематическим паркам. Но, похоже, что-то пошло не так.

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

Оригинал публикации: PCGamesN

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

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

Но по какой-то причине все изменилось!

Разработчик быстро подготовил патч и утилиту для исправления сохраненных файлов.

С другой стороны, самое смешное заключается в том, что RollerCoaster Tycoon представляет собой памятник тому, на что способен один человек в программировании. Практически полностью написанный на ассемблере (как и предшествующий проект Сойера, Transport Tycoon), RollerCoaster Tycoon и его сиквел выжимали все соки из процессоров того времени на симуляцию поездок, экономики и тысячи посетителей с указанием душевного состояния каждого из них. На деле, чтобы показать столько объектов в режиме реального времени без сбоев, потребовался гибкий, бескомпромиссный подход, а не медленное, но удобное семейство языков С. В самой оптимальной сборке, где буквы выступают вместо единиц и нулей, работать приходилось напрямую с процессором

Это чрезвычайно сложный для изучения язык, и он вышел из моды со времен разработки Fortran в 50-х годах прошлого столетия. В первые годы своей работы, в середине 80-х Сойер выпустил несколько игр с кодировкой z80, после чего стал твердым сторонником преобразования игр Amiga в DOS, включая классическую Elite II.

Впоследствии он занялся собственными разработками и создал Transport Tycoon, удержав за собой все права на игру, что и обеспечило ему постоянный источник дохода. Часть средств ушла на то, чтобы отправиться в путешествие по Европе и США и покататься на американских горках в таких парках развлечений, как Cedar Point в Огайо. На сегодня он посетил уже более 700 аттракционов. И его любимые американские горки, Taron at Phantasialand из Германии, как раз выглядят словно что-то созданное в Tycoon.

Вполне естественно, что Сойера тянуло к сборке x86. Он высоко ценил ее чистое представление и мгновенную компиляцию. Когда Крис решил сделать RollerCoaster Tycoon, он установил два PC: быстрый для кодирования и медленный для тестирования. (Позже объявленные системные требования игры указывали на Intel Pentium 90 MHz и 16 MB ОЗУ.) Кроме того, у него был матричный принтер (он так вспоминает), факс, карманный справочник по ассемблеру x86 и десктопный справочник на 500 страниц. Для него этого было достаточно; хотя полные руководства и занимали тысячи страниц, он запомнил большую часть того, что ему было нужно. Крис Сойер подчеркнул:

Я так долго программировал на x86, что мне редко приходилось что-либо подсматривать.

В самой ранней сборке игра напоминала Transport Tycoon, но с американскими горками, а также более гибкой и визуально улучшенной системой, созданной его художником графики Саймоном Фостером. Большая часть начальных дизайнерских уровней имела свободную форму и вдохновлялась очевидными предшественниками — Уиллом Райтом, Питером Молиньё, Сидом Мейером. Однако прежде всего Сойер должен был расставить приоритеты на производительности. Новые функции означали рост нагрузки на медленные PC. И хоть некоторые из них можно было вырезать из кода, другие пришлось оставить.

В частности, система поиска путей стал большой головной болью для Сойера:

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

Он отказался от алгоритмов, заставив многих посетителей парка двигаться по неправильному с точки зрения декора пути:

На то время я побывал в нескольких крупных тематических парках США, и в некоторых из них лично сумел заблудиться. И поэтому я посчитал, что будет правильным, если посетители RollerCoaster Tycoon испытают трудности, объясняемые плохо спланированной проектировкой.

Как только игра превратилась из списка желаний в цифровой храм тематическим паркам, Сойер раздал ее своим друзьям, соседям и соседским детям. И получил положительные отзывы. Издатель Hasbro организовал профессиональное тестирование, собрав профессиональных охотников за багами, а Сойер проводил собственные бесконечные исследования. И несмотря на сбой летнего времени, RollerCoaster Tycoon стала одной из самой продаваемых PC-игр 1999 года.

Для сиквела Сойер использовал исходный код, еще больше приблизившись к своей конечной цели. "Я все еще люблю эту игру и все, что с ней связано", — заявил разработчик в беседе с Eurogamer в 2016 году. Он продолжил работать с ассемблером, используя его для кодирования Locomotion 2004 года — на сегодня своей самой амбициозной и одновременно последней десктопной игры. С тех пор он отошел от разработок, а лицензия на новые игры RollerCoaster Tycoon перешла к Atari. Усилий компании не хватило даже для того, чтобы новые игры хотя бы частично приблизились к успеху двух первых частей.

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

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

7 Комментариев

  • Vik
    Комментарий скрыт. Показать

    Всегда хочется снять перед такими людьми шляпу.

    10
  • iddqd_0451
    Комментарий скрыт. Показать

    Спасибо за пост, читать приятно Играл давно и много, годнота лютая.

    5
  • Комментарий скрыт. Показать

    TTD топчик:) до сих пор затягивает

    2
  • master_chubos
    Комментарий скрыт. Показать

    Наконец- то супер годный пост!!! огромное спасибо! на одном дыхании читалось!!!!! Эти игры навсегда будут в наших сердцах! Ну и труд этого человека просто колоссальный!

    3
  • iddqd_0451
    Комментарий скрыт. Показать

    Если кому интересно погамать в нынешних реалиях в transport tycoon deluxe (TTD) есть открытый код, называется openTTD. По поводу атракционов не уверен, но скорее всего тоже есть.

    0
  • Комментарий скрыт. Показать

    "медленное, но удобное семейство языков С" - серьезно? Это он сам сказал?
    Лично программирую на C и Asm x86/64 больше 20 лет. C - язык, настолько простой с т.з. компилятора, что эффективность сгенерированного кода может быть оптимизирована еще процентов на 5-10. А в большинстве случаев вообще 0. Видел код, который по оптимальности никакой человек бы не написал руками на Asm.
    По аналогии. Писать на Asm по сравнению с C это как собирать современный автомобиль вручную, а не на конвейере. Ну, если вы хотите произвести Bentley с его ценой, то Ок.

    0
  • Ardiff
    Комментарий скрыт. Показать

    О, да. Сколько провёл времени за ней и сказать трудно, одна из самых затягивающих игр детства.

    0
Войдите на сайт чтобы оставлять комментарии.