Лоадеры - как оно внутри устроено?

Автор kleptos, 04 сентября 2007 15:35:02

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Force

Этот подход лучше чем в ДЛ, согласен, круто :up:, не нужно бэкапы делать, а каталог игры вообще не трогается :yes:.

clearing

ЦитироватьПроверял пока с AshenAge
Цитироватькаталог игры вообще не трогается
В Dance With The Dead dark.cfg свой.

Force

clearing, ну так он и будет грузиться из папки миссии в первую очередь, а если его там нет, то из игровой.

DJ Riff

Цитироватьпапки с fm ресурсами перед родными путями
Так я это и написал: ".\fm" — это папка с ФМ, "." — это корень.
Если будешь работать с абсолютными путями, не забудь, что Вора могут установить в Program Files или ещё в какой-нибудь путь с пробелами.
Ага, если он из папки foo достаёт *.mis, то вроде и с dark.cfg проблем быть не должно.
Тьма тоже распространяется со скоростью света.

Force

DJ Riff, кстати, вроде бы T2X так же пашет...
kleptos, кстати, реально, вместо абсолютных путей автоматом всё надо преобразовать в относительные.

kleptos

clearing
Сейчас скачаю, посмотрю как оно.
Но вроде A Keeper of the Prophecies работает нормально, хотя у него тоже есть свой dark.cfg (один фиг во второй миссии застрял)
Может есть где описание настроек dark.cfg? можно было-бы испортить какую-либо настройку что-бы эффект был заведомо виден и проверить тем самым используеться этот конфиг или нет.


Force


kleptos

Force
Если подвинуть из корня оригинальный dark.cfg - падает.
В прицнипе логично, скорее всего theif2.exe берёт конфиги из текущей рабочей директории, обычно это папка где лежит экзешник, но этим параметром можно манипулировать, и если там их нет, то дохнет.
Более того, если скопировать конфиги в произвольную директорию и при запуске вора сделать её текущей рабочей, проще всего это сделать через cmd.exe, сменив сначала текушую диреткорию на директорию с конфигами, а потом запустить exe вора, то вор работать будет.

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

winter cat

kleptos И зачем ты всё это затеял. Это ж морока. Код Darkloader-а непонятен потому не ты писал прогу, зачем тогда решил её переделывать? Кстати путь к dark.gam, скриптам и миссиям указывается одним параметром load_path. Описаний всех конфигов нигде нет, есть только список на сайте Darkloader-а. Но ты как программист можешь отreverse-engineer-ить экзешник игры и глянув на код конфигов узнать что они делают.

kleptos

Winter Cat Я затеял потому-что dark loader мне не нравится, вполне веская причина я считаю.
С реверс инжинирингом всё очень просто, я могу долго возиться с какой-то не очень очевидной фичей, по которую здесь уже давно знают.  И не факт что получу результат, не говоря уже о бессмысленности произведённых усилий.
Поэтому проще сначала спросить, опираясь на опыт и знания сообщества, а потом уже, если никто про это не знает, ставить эксперименты.
Что-же до качества кода - схожий стиль программирования я встречал только в исходниках самых низкоквалифицорованных (быдло)кодеров. Обычно это правда было что-то написаное за копейки на php.
Маленькая демонстрация качества кода.
Рамер исходного кода DarkLoader - 5081 строк, размер исходного кода icq клиента r&q - 40354 строк, тоесть всего в ~8 раз больше.
А теперь подумайте, как много делает r&q и как много DarkLoader.
[Исправлено: kleptos, 7 сен. 2007 6:28]

clearing

ЦитироватьСосбно в ближайшие пару дней навреное сооружу первую консольную версию, нужны будут тестеры.
Жду.

DJ Riff

Цитироватьсооружу первую консольную версию
Можешь меня тоже в бета-тестеры записывать.
А ещё я втайне надеюсь, что консольная версия тоже дойдёт до релиза вместе с GUI. :sly:
Тьма тоже распространяется со скоростью света.

S.Siamsky

Раз пошла такая пьянка, готов поучаствовать в тестинге.
Szybko, szybko, geht der ab!

Force

Как-то уж больно грандиозно - затевать тестинг для такой маленькой наработки... Выкладывай для всех, а те, кто обещали, подробно отпишут о найденных багах. У меня, если время и возможность будет, тоже отпишусь. Было бы что тестить...
Тестить нужно готовый проект, а не его микрокусочек, иначе, получив лестные отзывы, не захочется продолжать разработку дальше.

kleptos

Не учите меня как разрабатывать софт, а я не буду учить вас как делать fm, ок?
Грубо-говоря для первоначальной обкатки хватит 2-3 человек с возможностью быстрого контакта через icq или какой другой im.