| Разработка и ромхакинг > Ромхакинг и программирование |
| Ищем программистов. Не опять, а снова. |
| (1/3) > >> |
| HoRRoR:
Многие из посещающих этот раздел знают, насколько сложен труд ромхакера. Но далеко не многим приходится менять свой взгляд на подобные увлечения по ходу своего профессионального роста, получения опыта и прочего. Я хочу сказать, что за долгие годы увлечения ромхакингом, из подхода дилетанта я вырабатывал свой подход к ведению проектов. А затем, получив опыт на реальной профессиональной практике, понял, что в этом подходе следует доработать. Суть этого прохода проста и знакома всем специалистам — просто делать всё грамотно, красиво, продуманно, качественно. Чтобы в итоге не оставалось так называемого технического долга — именно это залог того, что проект не увязнет в необходимости кучи монотонной работы и рефакторинга проекта, которые убивают весь энтузиазм. Главная составляющая этой концепции — автоматизация и качественная архитектура проекта. Да, это требует много усилий, но куда меньше, чем суммарное выполнение вручную раз за разом одних и тех же операций. Так вот, к чему я клоню. У команд Consolgames и Exclusive накопилось некоторое количество проектов, которым не помешало бы дать пинка. Стоят они по нескольким причинам, но, будучи ответственным за техническую часть, я могу сказать, что мешает мне довести всё до финиша. Раньше это было отсутствия энтузиазма, теперь это ещё и критически малое количество свободного времени. Т.к. мы привыкли делать всё с умом, то методы долота и зубила в вёрстке перевода нам не помощники. В связи с этим, чтобы эти проекты и Consolgames в том числе не канули в лету, я решил попробовать в очередной раз привлечь к проектам заинтересованных в этом людей. Да, чёрт возьми, мы нуждаемся в программистах! Но не просто в дилетантах, а в знающих своё дело людях, готовых тратить своё личное время на пользу обществу, готовых и способных следовать требованиям. Итак, нам требуются программисты, обладающие хотя бы одним из следующих навыков: * C++ * C++/Qt * Delphi * Java Что именно надо делать? В целом — разрабатывать инструментарий для локализации игр, а более конкретно: * Производить тотальный рефакторинг старого кода. * Разрабатывать инструментарий для работы с различными данными и форматами. * Дорабатывать уже существующие инструменты: добавлять новый функционал, исправлять баги, производить рефакторинг. * Разрабатывать инструменты для визуального редактирования данных (редакторы шрифтов, текста, 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. Если у кого-то есть мысли по поводу всего этого — добро пожаловать, излагайте их в конструктивной форме :) |
| Mad:
HoRRoR, А как вообще обстоят дела с переводом СХ, какой процент работы примерно готов? И сколько перевод по времени не выйдет, опять же примерно, полгода, год? |
| HoRRoR:
--- Цитата: Mad от 06 Январь 2012, 10:49:14 ---HoRRoR, А как вообще обстоят дела с переводом СХ, какой процент работы примерно готов? И сколько перевод по времени не выйдет, опять же примерно, полгода, год? --- Конец цитаты --- Ммм, сложно точно сказать. У нас часто было так, что проект стоит год-другой, а потом за две недели доделывается оставшаяся работа — и готово. В случае с СХ готово очень много — почти всё расхакано (из необходимого не расхакан только формат хранения дефолтов настроек, там что-то вроде бинарного XML — расхакать надо, чтобы по-умолчанию включить субтитры). Перерисована огромная куча текстур для Wii-версии (и наш чертовски продуктивный художник просит ещё!). Так что остались только программирование и перевод, да и то здесь тоже немалый прогресс — явно за 50%, а то и куда больше. Обычно, когда какая-то часть проекта стоит — это негативно сказывается на энтузиазме участников, отвечающих за другие части. Я думаю, если добьём техническую часть, за переводчиками дело не станет. Оно и работается лучше, когда знаешь, что именно осталось сделать и сколько на это уйдёт. Но сперва я хочу добить Metroid Prime 3 - там вообще почти всё готово, осталось только привести в цивильный вид. |
| Yoti:
--- Цитата: HoRRoR от 06 Январь 2012, 03:38:19 ---Разрабатывать презентабельные патчеры с маловесным GUI (эх, мечтаю об уровне кряков :) ). --- Конец цитаты --- Во, я тоже хочу научиться! =) А то дельфовые гуишки толстые, как большинство троллей. Да и кряки нынче пошли не те... Пока есть две идеи (в долгом ящике): легковесный экзешник и ресурсный файл в комплекте или пересобирать каждый раз под новую игру. |
| r57shell:
Windows Application на Win32 API будет весить 16кб без ресурсов Отрубив стандартные библиотеки, можно этак <5кб сделать... если заморочиться можно ужать дозадницы. |
| Yoti:
Как раз в процессе изучения WinAPI. Пустой проект в КодБлокс - 50 КБ. При этом, Борланд компилятор требует 1.32 МБ библиотеку =) В общем, есть у меня одна идейка...))) |
| r57shell:
http://elektropage.ru/publ/ourwork/rock_n_roll_racing_extreme_edition/15 большинство программ моих тут, на чистом WinAPI + GDI+ (который используется только ради того чтобы сохранять/подгружать PNG) |
| HoRRoR:
--- Цитата: Yoti от 08 Январь 2012, 18:27:17 ---Пока есть две идеи (в долгом ящике): легковесный экзешник и ресурсный файл в комплекте или пересобирать каждый раз под новую игру. --- Конец цитаты --- Пересобирать, конечно же, надо под каждую игру. Потому что код-то разный, патчер производит преобразование данных, у каждой игры свои данные, форматы и алгоритмы :) --- Цитата: r57shell от 08 Январь 2012, 19:16:23 ---Windows Application на Win32 API будет весить 16кб без ресурсов Отрубив стандартные библиотеки, можно этак <5кб сделать... если заморочиться можно ужать дозадницы. --- Конец цитаты --- Ну, маловесные - это не обязательно 15кб, достаточно в пределах пары мегабайт :) Цель - не минимализм, а отсутствие максимализма. Это я к тому, что Qt и прочее по 10-20МБ весу сюда не подходят (гуя будут весить больше самих данных патча), так что всю красоту надо реализовывать как-то самостоятельно. Скачать патчер в 5МБ нынче не проблема, а вот качать 25МБ из-за гуёв - свинство со стороны разработчика. Если извращаться каждый раз с каким-нибудь чистым WinApi/GDI - это очень муторно. Но как вариант - можно написать какой-нибудь фреймворк, т.е. отмучиться лишь раз. А там уж можно будет подумать и над мультиплатформенностью, хотя у меня была идея делать консольные варианты патчеров под линукс. Вот поэтому и важно следовать какому-нибудь паттерну вроде MVC. |
| Yoti:
r57shell, твоя ссылка редиректнула мою ОперуМини 3 мод на якобы (прямой линк на jar, ~13 КБ) ОперуМини 6. Это в первый раз. Во второй - на страницу "центра обновления Internet Explorer" со ссылками на якобы ОперуМини 6.5 . Почему и в этот раз "якобы" - объяснять нужно? Пиарим разводил, значит... Ай-ай-ай. HoRRoR, общий экзе + картинка игры + инишка с именем и хэшами файла (файлов) + файл вида "оффсет: старые_данные новые_данные". |
| HoRRoR:
--- Цитата: Yoti от 08 Январь 2012, 20:25:12 ---HoRRoR, общий экзе + картинка игры + инишка с именем и хэшами файла (файлов) + файл вида "оффсет: старые_данные новые_данные". --- Конец цитаты --- Не всё так просто :) У нас для патчеров перепаковка игровых архивов и умный патчинг образа - обыденное дело :) Плюс есть идея делать гуя патчей с закосом под стилистику игры. |
| Yoti:
Ах, ну тогда извращайтесь =) Я только автораны в стиле игры делал (на Дельфи+Фотошоп+Редактор курсоров). |
| HoRRoR:
Ну тут идея проста - делается небольшой фреймворк, надстройка над WinApi, с возможностью переопределять прорисовку контролов. Ну и можно сделать визуальный редактор какой-нибудь, чтобы вручную не подбирать координаты и размеры контролов на форме. Подходящих фреймворков я пока не нашёл... |
| Злая Бака:
--- Цитата ---надстройка над WinApi, с возможностью переопределять прорисовку контролов --- Конец цитаты --- Чем не устраивают стандартные батоны/бары? |
| HoRRoR:
--- Цитата: Злая Бака от 08 Январь 2012, 21:58:44 ---Чем не устраивают стандартные батоны/бары? --- Конец цитаты --- --- Цитата ---Плюс есть идея делать гуя патчей с закосом под стилистику игры. --- Конец цитаты --- Хочется презентабельности :) |
| gepar:
--- Цитата: HoRRoR ---Написать презентабельный патчер. Точнее — маловесные GUI для него. --- Конец цитаты --- Это чтобы весил сам 5 кб, но требовал последний установленный нетфреймворк, а если его нет то предлагал скачать 40 мб? :) Хотя мне не сильно понятно в чём суть погони за малым весом? На винапи пока создашь небольшой проект да пока прикрутишь эту *!"№;%%?( прокрутку так всякое желание пропадёт делать с небольшим весом, уж лучше в mfc неспешные два клика мышкой и пускай уж весит в два раза больше. Это ведь патч к игре которая сама весит больше 1 гб, почему бы личику патча не весить 1 мб например даже? Хотя если делать морду с расчётом на все будущие проекты то можно уж сделать и на чистом winapi ради экономии в кб, но что мешает? Там же на один (ну хорошо-хорошо, пускай на три) зимних (дождливых) вечера, особенно если взять заготовку где уже создано новое окно, написан для него обработчик и нужно только дописывать что выводить в окно, какой-то стиль добавить/удалить, дописать всплывающее окошко about там, засунуть картинку где-то по середине... --- Цитата: Yoti ---Как раз в процессе изучения WinAPI. Пустой проект в КодБлокс - 50 КБ. --- Конец цитаты --- А теперь ставим в build target вместо debug - realease :) |
| HoRRoR:
--- Цитата: gepar от 09 Январь 2012, 01:22:03 ---почему бы личику патча не весить 1 мб например даже? --- Конец цитаты --- 1МБ - вполне приемлемо. Только вот подскажи мне такой фреймворк. Конечно, можно на всё забить и юзать что-то вроде MFC или VCL, но хочется хотя бы кросс-компиляторного чего-нибудь. --- Цитата: gepar от 09 Январь 2012, 01:22:03 ---Это чтобы весил сам 5 кб, но требовал последний установленный нетфреймворк, а если его нет то предлагал скачать 40 мб? :) Хотя мне не сильно понятно в чём суть погони за малым весом? На винапи пока создашь небольшой проект да пока прикрутишь эту *!"№;%%?( прокрутку так всякое желание пропадёт делать с небольшим весом, уж лучше в mfc неспешные два клика мышкой и пускай уж весит в два раза больше. Это ведь патч к игре которая сама весит больше 1 гб, почему бы личику патча не весить 1 мб например даже? Хотя если делать морду с расчётом на все будущие проекты то можно уж сделать и на чистом winapi ради экономии в кб, но что мешает? Там же на один (ну хорошо-хорошо, пускай на три) зимних (дождливых) вечера, особенно если взять заготовку где уже создано новое окно, написан для него обработчик и нужно только дописывать что выводить в окно, какой-то стиль добавить/удалить, дописать всплывающее окошко about там, засунуть картинку где-то по середине... --- Конец цитаты --- Это не то, что надо. Во-первых, не гибко - геморрой в случае, если переделывать придётся. Во-вторых, не красиво, не презентабельно. В-третьих, не переносимо - каждый раз писать заново, под каждый новый патчер, пусть даже и по шаблону. Так что в таком случае лучше сделать фреймворк с необходимыми возможностями. А просидеть один-три зимних дождливых вечера желания пока не возникает - слишком муторное занятие, не мотивирует ничего, да и раз уж на то пошло - есть куча более приоритетных задач по мою душу. |
| gepar:
--- Цитата: HoRRoR ---1МБ - вполне приемлемо. Только вот подскажи мне такой фреймворк. Конечно, можно на всё забить и юзать что-то вроде MFC или VCL, но хочется хотя бы кросс-компиляторного чего-нибудь. --- Конец цитаты --- Ну я о mfc в этом случае и говорил, из мультиплатформенного не жирного есть wxWidgets - использует стандартные ресурсы ос так что приложение получается с интерфейсом родным для каждой ОС, хотя не помню я чтобы какая группа переводчиков делала патчеры для линукса там, мака или, чего доброго, для freebsd для какой-либо игры, но если так хочешь мультиплатформенности то посмотри на эту штуковину. Только чтобы сделать приложение на ней с ней же разобраться надо. На меня если что не смотреть, я ею не пользуюсь :) |
| HoRRoR:
--- Цитата: gepar от 09 Январь 2012, 02:03:49 ---Ну я о mfc в этом случае и говорил, из мультиплатформенного не жирного есть wxWidgets - использует стандартные ресурсы ос так что приложение получается с интерфейсом родным для каждой ОС, хотя не помню я чтобы какая группа переводчиков делала патчеры для линукса там, мака или, чего доброго, для freebsd для какой-либо игры, но если так хочешь мультиплатформенности то посмотри на эту штуковину. --- Конец цитаты --- Это из разряда "экзешник 40МБ". По крайней мере при статической линковке в дебаг-конфигурации с дефолтными настройками у меня где-то такой размер получался, помнится. Туда же и Qt, и тому подобное относится. Хотя, из Qt можно выжать всего метров 10-15, но это всё равно меня не устраивает. Пробовал вообще минимальную сборку делать - так хрен, не собирается, те же тулзы для дальнейшей самосборки типа qmake требуют фич, которые я отключал. Да и другие зависимости имеются. По-моему, разработчики давно забили на кастомизацию. |
| Yoti:
--- Цитата: gepar от 09 Январь 2012, 01:22:03 ---А теперь ставим в build target вместо debug - realease :) --- Конец цитаты --- А "билд тагет - дебаг" (галка в диалоге создания проекта) было убрано на стадии создания ;) И да, я ошибся. Писал по памяти - и указал размер другой вещи. Этот выходит 7.50 КБ (7 680 байт). Но Борланд компилятор всё равно хочет cc3250mt.dll весом в 1.42 МБ (1 497 088 байт). И, просто похвастаться, вот Delphi наработка авторана диска Deus Ex (забросил): Курсор не заснялся (известная проблема; делал простым prntscr), но он срисован из игрового меню и лежит в файле .cur. А так, на скриншоте фоновая картинка (.jpg) + множественное изображение кнопки (.png). |
| HoRRoR:
--- Цитата ---Писал по памяти - и указал размер другой вещи. Этот выходит 7.50 КБ (7 680 байт). --- Конец цитаты --- Попробуй с флагом -s. В кодблоксе есть в списке параметров. |
| Навигация |
| Главная страница сообщений |
| Следующая страница |