Дневник разработчика #9. По ухабам разработки.

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

Ещё один пропавший разработчик.
Многие наверно уже заметили, что нет никаких вестей от нашего разработчика Шона Маклафлина. Это касается не только форума и других публичных ресурсов, но и нашей с ним частной переписки. Я в шоке от происходящего. Просто невероятно. Это происходит уже второй раз, и очередной разработчик не просто покидает нашу команду, а просто обрывает все контакты, без уведомлений. Хотя я и благодарен Шону за его работу над тайлами, но возникшая ситуация сильно тормозит развитие игры.

Дневник разработчика #8

Продолжаем публикацию переводов дневника разработчика Cataclysm: Dark Days Ahead, нанятого на полный рабочий день за счёт кампании на Кикстартере. Отчёт за 9-ю неделю, который он выпустил с запозданием. С переводом я также запоздал, так что имейте в виду, что данный отчёт выпущен 4 октября, то есть месяц назад.

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

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

Дневник разработчика #7

Текущий выпуск охватывает период с 16 по 22 сентября

На этой неделе удалось сделать не так много, по сравнению с прошлой. Много времени ушло, чтобы обеспечить совместную работу различных систем. Во-первых, теперь у нас есть новая система загрузки JSON, которая облегчает процесс накладывания модов друг на друга. Она совершенно отличается от нынешней системы загрузки данных из них, так что для адаптации потребуется изменение макета уже описанных в JSON предметов. Во-вторых, я создал статический класс, который будет производить в заданной директории рекурсивный поиск имён файлов, содержащих определённую строку. Это будет подобно поиску файлов по формату "*.json" в Проводнике Windows. Затем нужно было убедиться в кросс-платформенности этого решения, и насколько я знаю, с этим всё в порядке. Тесты показали прекрасную работу с символическими ссылками без зацикливания, и это было бонусом, который я не ожидал. Проделана кое-какая работа над интерфейсом управления модами, однако, она ещё далека от завершения. Он не совсем стабильно работает и есть ряд недостатков, которыми я недоволен.

Дневник разработчика #6

Продолжаем публикацию переводов дневника разработчика Cataclysm: Dark Days Ahead, нанятого на полный рабочий день за счёт кампании на Кикстартере. Текущий выпуск охватывает период с 9 по 15 сентября

Эта неделя в основном была посвящена описаниям монстров, с помощью которых умельцы сами смогут добавлять новых тварей в игру, переходу от нынешней системы на базе идентификаторов «mon_id». Это отняло у меня очень много времени. Больше, чем я предполагал, так как ещё не знал, насколько часто эти идентификаторы используются по всему коду игры. Как только я создал подходящую систему для описания монстров, я начал шерстить исходный код и переделывать ссылки на монстров на новую систему.

Дневник разработчика #5

Продолжаем публикацию переводов дневника разработчика Cataclysm: Dark Days Ahead, нанятого на полный рабочий день за счёт кампании на Кикстартере. Текущий выпуск охватывает период с 2 по 8 сентября.

К новым мирам
Если это лучший из всех возможных миров, то каковы же остальные? — Вольтер.

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

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

Дневник разработчика #4

Продолжаем публикацию отчётов разработчика, который занимается реализацией фич, заявленных на Кикстартере. Данный отчёт относится к периоду работы с 26 августа по 1 сентября.

На прошлой неделе я сделал несколько вещей: исправил несколько ошибок, связанных с тайлами, начал работать над Фабрикой миров и добавил несколько дополнительных опций в SDL-версию.

Исправления тайлов:
Было несколько проблем с анимацией погоды. Цикл, который генерировал точки падения дождя/снега в curses-версии использовал больший размер окна экрана, чем в тайловой версии. И я сначала полагал, что проблема именно в этом. На деле оказалось, что замедление анимации было связано с двойной записью в буфер экрана, что было излишним. Методом научного тыка я закомментировал лишний код и вернул игре нормальную скорость. Уверен, есть ещё другие способы оптимизации, которые можно сделать, но пока остановлюсь на этом.

Дневник разработчика #3

Продолжаем публикацию эксклюзивных переводов дневника разработчика.

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

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

Дневник разработчика #2

Для начала прошу прощения, что не успел закончить поддержку тайлов до своего путешествия в Айову. Я не учёл, что подготовка к нему займёт так много времени. А теперь о ходе разработки.

Большую часть дня я потратил на работу над тайлами стен, чтобы они меньше походили на разрозненные символы вроде '|' и '-', и представляли собой одну непрерывную поверхность. Сначала я достал миллиметровую бумагу и начертил 16 возможных ориентаций тайлов стены и способов соединения их между собой. Затем написал функцию, которая обрабатывала графические данные и размещала их на нужном месте в игре. Тут передо мной встала небольшая дилемма. Я не хотел иметь 15 тайлов для каждого вида стен и полагал, что смогу обойтись меньшим количеством. Для этого я переделал функцию, вместо нахождения индивидуального тайла, она стала находить универсальный, а затем поворачивала его в нужном направлении.

Дневник разработчика #1

Чтобы бейкеры не сомневались, что работа действительно началась, я решил отправить первую запись дневника разработчика всем бейкерам (но только им и никому больше). Следующие записи дневника разработчика будут доступны только тем, кто приобрёл награду Dev Diary и выше.

Эта неделя посвящена поддержке тайлов. На первом месте стоит задача заставить тайлы работать, на втором удобство их использования. До сего дня я никогда не использовал SDL, однако, смог подобрать то, что нужно, читая документацию и изучая проделанную работу utunnels по реализации тайлов. Я не хотел изобретать велосипед, поэтому постарался максимально изучить его наработки. Проработав весь исходный код, я нашёл некоторые вещи довольно интуитивными и совпадающими с моим видением, однако, всё остальное требует тщательной переработки или должно быть выброшено. В своём коде я буду отмечать в комментариях те части кода, которые были заимствованы или появились благодаря предыдущим наработкам. Я займусь этим прямо сейчас, чтобы выразить глубокую благодарность тебе, utunnels!