Компьютерные игры. Как это делается

       

Любите свою программу, но не обожествляйте ее


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

Кроме того, не устраивайте разборок насчет стилистических разногласий. Когда я слышу очередной спор по поводу того, использовать ли в тексте программы табуляцию или пробелы, мне кажется, что я готов вскрыть себе вены. Меня не волнует, как вы расставите свои пробелы или скобки, для меня важно исключительно содержание программы. Я думаю, каждая компания должна принять одно из двух решений: либо каждый пишет в своем стиле и никому не позволяется выражать по этому поводу недовольство, либо все должны придерживаться единожды принятого стандарта.

И вообще, программистам необходимо уметь отделять себя от своих программ.

Тодд Джонсон (Todd Johnson), Oddworld Inhabitants

Инженер-программист Тодд Джонсон работал в свое время над играми для Genesis (Sylvester n' Tweety in Cagey Capers, Demolition Man и Izzy's Olympic Quest) и PSX (Oddworld: Abe's Oddysee и Oddworld: Abe's Exoddus). Тодд считает, что самое важное для программиста - учитывать ограничения конечной системы. Он поясняет свою мысль:

Я начинал с игр для приставок, где мы постоянно мучились от недостатка оперативной памяти. Например, Oddworld: Abe's Exoddus должен постоянно подкачивать в ОЗУ анимацию, фоновые рисунки и даже фрагменты программы. А на ПК вы, вероятно, столкнетесь с проблемами быстродействия. В любом случае конечная система так или иначе влияет на игру.

«Во-вторых, уважайте игрока, - говорит Тодд, - в конце концов, это он платит за игру».


Иначе говоря, не стоит увлекаться излишним усложнением. Когда мы впервые начали работать над мудоканами (игра Oddworld: Abe's Exoddus), каждый из них обладал индивидуальными чертами характера и должен был реагировать по-разному. С точки же зрения игрока, их реакция казалась абсолютно случайной, так как внешне все они выглядели одинаково. Мы сохранили эмоции, но отбросили идею индивидуальности.

И последнее, что советует Тодд Джонсон: «Продумайте повторное использование кода».

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

Что Тодд считает самым большим препятствием в работе программиста?

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

Гонзо Суарес (Gonzo Suarez), Pyro Studios

Гонзо Суарес работает в компании Pyro Studios, которую основал в 1997 году вместе с другом и партнером по бизнесу Игнасио Пересом (Ignacio Perez). Именно здесь, в Испании, родилась игра Commandos: Behind Enemy Lines, ставшая позже международным бестселлером (издатель Eidos Interactive).

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

Прежде всего спросите себя: в какую игру ты хочешь играть? Вопрос кажется очевидным, но покрывает добрых 90% проблем, которые возникнут в ходе разработки.


Как ни странно, в большинстве случаев ответ на этот вопрос выпаливают, не задумываясь (хотел бы я уметь отвечать так же быстро), однако обычно этот ответ сразу же вызывает беспокойство. «Это экшен-игра с элементами стратегии и духом приключений, и она отображает 30000 полигонов!..» Довольно странно, когда ответ на вопрос «в какую игру ты хочешь играть?» начинается со слов «это...», а уж упоминание о числе полигонов достойно пера Кафки.

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

Примером могут служить Quake II и Half-Life. Кажется, что эти игры очень похожи, однако акценты, сделанные на том, где, как и когда нужно стрелять в Half-Life, контрастируют с быстрым окружением движущихся мишеней и точным прицелом Quake II, чувство силы оружия в игре id Software противопоставляется возможностям Half-Life скрываться от противника и снайперских выстрелов. Все это делает стратегию сетевой игры для них абсолютно различной.

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

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


Содержание раздела