2010
01.10

А здорово ведь. Внешний XML-файл содержит данные об игровом оружии — название, урон, прочее. Файл загружается и данные из него заносятся в массив, в готовом для работы виде. При этом отдельно формируется и навигационный список, пока в виде comboBox (список с выпадающими элементами). Теоретически можно сделать сколь угодно большой арсенал, легко модифицируемый и отображаемый в любом удобном виде.

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

Из интересного — занимательный цикл из 7 небольших записей, отображающий ход разработки World of Goo. Ранние версии и описание процесса поиска правильных решений прилагаются. Остальные части идут под тегом game design. Да и в целом блог любопытный, есть милый flash-прототип про роботов-убийц, например, или заметки по playtesting’у.

2009
12.28

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

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

Прикручен автобой, включаемый и отключаемый — ну тут всё просто, хотя его нужно дополнить самой примитивной реакцией на события. Далее по плану — практика XML и создание арсенала оружия. А потом редактор. А потом косметические мелочи и будет вполне неплохо.

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

2009
12.26

В очередной раз код переписан полностью. Очередные проблемы на пустом месте. Всё как обычно.

Наконец-то, впервые за всё время, начал нормально использовать классы и писать независимые функции, работающие не с конкретными значениями, а с данными в определённом формате. С ростом объёма данных, такой подход принесёт свои плоды — можно будет быстро вносить изменения и модификации. Следующим серьёзным открытием, думаю, будет начало практической работы с XML. Надеюсь не возникнет привычного «я всё делал не так и нужно переписать код».

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

Открытие дня — бумажный листок с описанием класса и списком стандартизированных переменных. Глядишь на него и сразу знаешь что можно использовать и на что ссылаться.

Второе открытие дня — параметры object и target для функции. Это, соответственно, объект совершающий действие и цель действия. Решение кажется на удивление логичным и удобным. Нужно запустить атаку — объект PC атакует цель NPC. Меняем их местами — и вот та же функция используется для контратаки. В изначальной С++ версии «игры-сражения» я такую роскошь себе позволить не мог и код атаки был куда более неудобен. Прогресс.

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

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

2009
12.23

Вместо большого вводного текста и рассуждений придётся перейти сразу к делу.

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

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

2009
12.21

Итак, спустя несколько лет, тут наконец-то что-то будет. Stay tuned ;)