Существуют несколько инструментов, предназначенных для разработки NewGRF. Сперва вам следует определиться с "языком", который вы хотите использовать для создания GRF. Вообще говоря, есть три распространенных набора инструментальных средств, один из которых вам нужно выбрать:
- grfcodec/nforenum — два наиболее фундаментальных инструмента для создания NewGRF. GRFCodec декодирует GRF в изображения и (мета-)данные (NFO) либо кодирует их в GRF. NFORenum же преднаначен для подчистки и проверки синтакса файлов NFO. Начиная с версии GRFCodec 5.0, оба инструмента входят в один пакет. Этот тулчейн подобен набору ассемблер/дизассемблер.
-
GRFMaker — инструмент, который абстрагируется от файлов NFO и позволяет генерировать файлы GRF, не заставляя разработчика заниматься редактированием практически на уровне шестнадцатеричных кодов. Он представляет собой графическую утилиту, которая представляет GRF в абстрактном виде, скрывая некоторые детали. Все кодирование производится посредством графического интерфейса; однако, данный инструмент поддерживает лишь часть возможностей, имеющихся у NewGRF.
К сожалению, из этого проистекает его наиболее существенный недостаток: его не используют опытные GRF-кодеры, так что практически никто вам с ним не поможет. На вопросы, касающиеся GRFMaker, на форумах часто дают ответ, объясняя, как что-то сделать посредством NFO и/или NML, но никто не может сказать, как это делать в GRFMaker. :(
- NML — высокоуровневый язык и инструмент для создания NewGRF. NML — консольная утилита, но она существенно абстрагируется от сложных тонкостей написания NewGRF. NML является единственным инструментом, поддерживающим операции над термами и выражения, в связи с чем он особенно подходит для создания GRF, принимающих задаваемые пользователем параметры.
В дополнение к этим инструментам вы можете быть заинтересованы в использовании следующих утилит:
- Grf2Html — инструмент для генерации представления GRF в виде HTML для просмотра в браузере. Его можно использовать для тщательного анализа, семантической проверки файлов GRF и исследования их поведения. Таким образом, он особенно подходит для обучения написанию NewGRF посредством изучения файлов GRF, созданных другими. Однако, он малополезен в случае использования высокоуровневого языка NML, так как Grf2Html, вероятно, завалит вас деталями, от которых абстрагируется NML.
- TTDViewer — простой инструмент, который отображает на экране изображения в форматах .pcx и .png. Однако, он также осуществляет характерную для TTD анимацию палитры и позволяет производить перекраску специальных цветов (например, менять цвета компании). Так как он перезагружает файл изображения при каждом его изменении, его можно использовать параллельно с программой для рисования с целью быстрого предпросмотра результата, особенно в случае использования специальных анимированных цветов палитры TTD и перекрашиваемых цветов.
Другие ресурсы:
- #openttdcoop Development Zone — сайт, на котором размещены многие инструменты для разработки и множество NewGRF с открытым кодом. Если вы думаете самостоятельно создать NewGRF под лицензией GPL, вы оттуда также можете взять "скелеты" проектов NewGRF (как для GRFCodec/NFORenum, так и для NML) для быстрого старта.
- TT-Forums NewGRF Development — англоязычный форум, посвященный разработке и обсуждению NewGRF, созданию графики и поиску партнеров для работы над проектами.
- TT-Forums NewGRF Technical Discussion — Англоязычный форум для технической поддержки касательно разработки NewGRF (не по использованию NewGRF!) и инструментария для создания NewGRF, а также для обсуждения спецификаций формата NewGRF.
- Low level NewGRF format specification — Вам нужно будет изучить это, если вы планируете создавать NewGRF, используя GRFCodec/NFORenum и/или желаете воспользоваться Grf2Html.
- NML documentation — Спецификация и справочник по NML.