Многие из посещающих этот раздел знают, насколько сложен труд ромхакера. Но далеко не многим приходится менять свой взгляд на подобные увлечения по ходу своего профессионального роста, получения опыта и прочего. Я хочу сказать, что за долгие годы увлечения ромхакингом, из подхода дилетанта я вырабатывал свой подход к ведению проектов. А затем, получив опыт на реальной профессиональной практике, понял, что в этом подходе следует доработать.
Суть этого прохода проста и знакома всем специалистам — просто делать всё грамотно, красиво, продуманно, качественно. Чтобы в итоге не оставалось так называемого
технического долга — именно это залог того, что проект не увязнет в необходимости кучи монотонной работы и рефакторинга проекта, которые убивают весь энтузиазм. Главная составляющая этой концепции — автоматизация и качественная архитектура проекта. Да, это требует много усилий, но куда меньше, чем суммарное выполнение вручную раз за разом одних и тех же операций.
Так вот, к чему я клоню. У команд
Consolgames и
Exclusive накопилось некоторое количество проектов, которым не помешало бы дать пинка. Стоят они по нескольким причинам, но, будучи ответственным за техническую часть, я могу сказать, что мешает мне довести всё до финиша. Раньше это было отсутствия энтузиазма, теперь это ещё и критически малое количество свободного времени. Т.к. мы привыкли делать всё с умом, то методы долота и зубила в вёрстке перевода нам не помощники. В связи с этим, чтобы эти проекты и Consolgames в том числе не канули в лету, я решил попробовать в очередной раз привлечь к проектам заинтересованных в этом людей. Да, чёрт возьми, мы нуждаемся в программистах! Но не просто в дилетантах, а в знающих своё дело людях, готовых тратить своё личное время на пользу обществу, готовых и способных следовать требованиям.
Итак, нам требуются программисты, обладающие хотя бы одним из следующих навыков:
Что именно надо делать? В целом — разрабатывать инструментарий для локализации игр, а более конкретно:
- Производить тотальный рефакторинг старого кода.
- Разрабатывать инструментарий для работы с различными данными и форматами.
- Дорабатывать уже существующие инструменты: добавлять новый функционал, исправлять баги, производить рефакторинг.
- Разрабатывать инструменты для визуального редактирования данных (редакторы шрифтов, текста, etc).
- Разрабатывать презентабельные патчеры с маловесным GUI (эх, мечтаю об уровне кряков ).
Естественно, всё при моей координации и непосредственном участии в процессе. Но... следует удовлетворять ряду требований. А именно:
- Следовать установленному код-стандарту и спецификациям.
- Следовать установленным шаблонам программирования.
- Не делать весомых изменений без предварительного согласования.
- Писать независимый от какой-либо платформы код, если это возможно. Т.е. не использовать специфические фичи ОС и компиляторов, если это изначально не задумано.
В общем-то, всё не так строго, как звучит, но всё же соблюдение этих правил имеет большое значение. Я надеюсь, что найдётся хотя бы один программист, способный и готовый на всё это.
Каковы конкретные цели на будущее? Ну, мне бы очень хотелось прежде всего добить два проекта —
Metroid Prime 3: Corruption и
Silent Hill: Shattered Memories. Более конкретно? Окей.
Metroid Prime 3: Corruption:
- Написать презентабельный патчер. Точнее — маловесные GUI для него.
- ТОТАЛЬНО отрефакторить существующий код для работы с образами Wii, стянутый из WiiScrubber'а, автор которого писал абсолютно всё в одном месте. Половина работы в этом направлении уже сделана. Относится и к SHSM, к слову.
- Отрефакторить код для работы с текстурами Wii.
- Добавить функционал в конвертор текста.
- Отрефакторить всё остальное.
Silent Hill: Shattered Memories:
- Дописать парсер ресурсов, унифицированный для всех платформ.
- Добавить поддержку текстур PSP и PS2 в конвертор.
Тут мы имеем дело с квантованием текстур с альфа-каналом, придётся искать и прикручивать ещё одну библиотеку. Изначально используется nvidia-texture-tools. Дело усложняется тем, что мало где учитывается альфа-канал при квантовании — в распространённых форматах при индексированной цветности обычно используется только флаг прозрачности. - Доработать (читать как «написать, используя наработки») код для работы с ISO-образами.
- Написать патчер.
- Может ещё что, уже всё и не припомню.
- И, конечно же, отрефакторить всё к чертям.
Общие задачи:
- Продумать структуру репозитория.
- Продумать структуру общих классов и исходников.
- Создать унифицированные интерфейсы к классам образов, архивов и прочего - надо же привести всё к общему знаменателю!
- Разобраться с системой сборки — что использовать, как использовать, зачем и почему.
- Заставить это всё компилироваться и работать
Всё это планируется делать под флагом опенсорса. Хотя, я бы сделал некоторые ограничения — например, открывать исходники только после релиза перевода. Но, к сожалению, для этого нужен свой сервер для репозитория, которого пока нет. В качестве системы контроля версий будет использоваться SVN.
Если у кого-то есть мысли по поводу всего этого — добро пожаловать, излагайте их в конструктивной форме