Архив

Публикации с меткой ‘разработка’

Настройки

В институте, на средних курсах я и двое моих товарищей объединились, чтобы делать компьютерные игры. Мы начинали разрабатывать несколько проектов, но не доделали в итоге ни одного. Почему – это отдельная история, а сейчас я расскажу о том, как мы занимались планированием игровой механики.
Игровым дизайнером из нас чувствовали себя два человека. Это просто великолепно, потому, что было бы, если бы такое ощущение было у всех троих, я себе представить не могу. Быстро определившись с базовой механикой и сеттингом мы часто упирались в мелочи. Один из нас считал, что управление будет более удобным при одном поведение мыши, второй что при другом, плюс нужно использовать клавиатуру. Один считал, что когда объект доходит до края экрана, то он должен там и оставаться, а второй, что он должен появляться с другой стороны.
Сначала мы долго спорили, пытались переубедить друг-друга, а потом нашли, как нам показалось, магическое решение – перенести все в настройки. Отмечает игрок чекбокс, и объект не пересекает границы экрана, убирает, и он начинает перемещаться по кругу. После этого обсуждение деталей пошло гораздо быстрее, а список настроек игры мгновенно вырос до двадцати пунктов.
Сейчас я понимаю, что мы нашли тогда наихудшее решение. Мы здорово теряли время: нам нужно было запрограммировать два разных варианта, плюс добавить элемент управления в настройки, а его описание в помощь. Мы делали нашу игру слишком сложной. Покопавшись игрок мог найти комбинацию настроек при которой играть ему было бы максимально интересно и удобно, но это была не та игра, которая стоила бы таких усилий со стороны игрока, зато несколько действительно важных пунктов в настройках найти было практически невозможно. И, самое основное, этими настройками мы фактически сами признавались, что мы не знаем какую игру хотим увидеть в итоге: у нас есть идея, но вот обо всем остальном мы сомневаемся. Сделать хорошую игру при таком подходе практически невозможно.
Flash игры традиционно обладают минимумом настроек. Часто это только звук. Иногда, качество графики и язык интерфейса. Все остальное – это уже лишнее. Его в настройках быть не должно. А уровень графики и язык должны по возможности определяться автоматически и игрок даже не должен знать, что их можно поменять.

Спецэффекты. Часть 1

10 Март 2010 1 комментарий

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

  • active.tutsplus.com – эффектов не много, но те которые есть, документированы очень хорошо и наглядно.
  • pixel2life.com – агрегат эффектов с кучей ссылок на другие сайты, в том числе и на предыдущий.
  • flasheff.com – это коммерческая библиотека со множеством эффектов смены экранов. Можно использовать, как генератор идей и реализовать похожий эффект самому, ну или потратиться на 100 долларов.

Редактор

9 Март 2010 4 comments

Раньше очень многие свои игры я начинал с программирования редактора игрового мира. Часто им же и заканчивал. Потом я отказался от этой порочной практики и перешел на использование ini файлов, а позднее xml. Но новую игру я начал именно с редактора, потому, что надо было разобраться как работать со сплайнами, а когда я этим разобрался, то оказалось, что для того, чтобы получился нормальный редактор надо добавить всего несколько дополнительных возможностей.
Основная сложность, с которой я столкнулся – это как сохранить данные. Сохранять в «cookie» в данном случае бессмысленно, а для того, чтобы сохранить бинарный или текстовой файл надо писать обертку на чем-то вроде Php. Это не сложно, но разворачивать ради этого на локальной машине сервер Apachi – это как-то чересчур. Перепробовав несколько вариантов, я остановился на самом простом: при сохранении генерируется xml файл, который затем выводится в текстовое поле, появляющиеся на экране. Я копирую текст в буфер обмена и сохраняю его туда, куда мне нужно.
А редактор, возможно, мне еще пригодиться. В него вставить финальную графику, научить работать с БД и можно выпускать на потеху фанатам. Но смысл все это сделать будет тогда, когда фанаты у игры появятся.