Покорители галактики | Дневники разработчиков
07.10.2009 12:17 | http://www.snowball.ru/galaxy/?page=diary.htm


В этом дневнике Саймон де Риваз, один из разработчиков «Покорителей галактики» и основателей студии SaintXi, рассказывает о сложностях и радостях, с которыми он столкнулся во время создания игры, и делится секретами геймдева из первых рук.

Сложности

1. Смешение кодов графики и геймплея

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

2. Миссии и тексты на C++

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

Весь текст к игре тоже хранился в файлах C++. Основную массу мы собрали в отдельный файл, но даже после этого тексты было неудобно форматировать и править. Во время работы обнаружилось, кроме всего прочего, что корректура игровых текстов — задача непростая, ведь многие игровые реплики и даже отдельные слова «расползлись» по разным кускам кода.

3. Отладка интерфейса вместо гейм-дизайна

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

4. Огромный объём тестирования

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

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

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

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

Радости

1. Удачная предыстория

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

2. Хорошие прототипы

Ещё до того, как мы начали работать над графикой, звуком и миссиями, у нас был первичный билд игры с прототипом одной-единственной планеты и зачатками экономического геймплея. После того, как этот билд был закончен, мы увидели, что получается оригинальная и интересная игра, и решили продолжить разработку. Добавить графику в уже готовый билд несравненно проще, чем пытаться изобразить хоть какой-нибудь геймплей на «голом» движке.

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

3. Оптимальная сложность

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

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


The entire contents of this web site are © 1995-2011 by ЗАО «Сноуболл». © 2009 Snowball Studios, 1C company, SaintXi, Mamba Games. All rights reserved. Print version.