Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Вниз

Где хранить ресурсы?   Найти похожие ветки 

 
DDS   (2004-01-03 18:38) [0]

У меня в игрухе много фалов ресурсов (картинок, звуков и прочего) как бы мне это все запаковать в архив что ли а при запуске игры достать и чтоб все работало. Ведь так делают во многих играх.


 
Igloo   (2004-01-03 19:11) [1]

dll


 
TButton ©   (2004-01-03 20:45) [2]

zip. например винамп пакует скины в zip с нулевой компрессией и меняет расширение на wsz, аналогично поступили парни из 14degrees east файлы .bos в Fallout: tactics ничто иное как zip"ы с нулевой компрессией. где-то я видел компоненту для работы с zip, где не помню, попробуй по ищи.


 
Omar2002 ©   (2004-01-03 23:51) [3]

Да тут же вроде есть в разделе "кладовка -> компоненты" еэти компонентв для работы с zip-ом.


 
Cash ©   (2004-01-04 01:47) [4]

А у меня конвектор спецательный (для работы в DelphiX).
Надо - дам... ссылку забыл, хыть закатай(мышъю).
Работает легче легкого. собираешь их, там и имя картинки или звука указываешь, в одну кучу, и эту кучу называешь по своему.
А када нуна их загружать - делаешь так:
DXImageList.Items.LoadFromFile("Куча.дрм")
DXImageList можно заменить на DXWaweList, при наличии WaweLib прилады (работает также).


 
Jenaxx ©   (2004-01-04 15:12) [5]

TButton, глянул двиг который присылал?


 
TButton ©   (2004-01-04 17:13) [6]

ща гляну


 
TButton ©   (2004-01-04 17:26) [7]

проект посыпался при загрузке.


 
Jenaxx ©   (2004-01-04 17:59) [8]

как это посыпался..


 
cyborg ©   (2004-01-04 20:55) [9]

[8] Jenaxx ©   (04.01.04 17:59)
Вот так - пшшшх... :)


 
TButton ©   (2004-01-04 21:20) [10]

:)
ну сначала он сказал label1 inavid properti value, потом он сказал тоже самое про остальные компоненты, а я ему сказал ну и игнор олл. а он сказал ну и смотри показал мне сурс и форму с одной битмапой :(

Cash ©   (04.01.04 01:47) [4]
ну скажем едиторов для ДельфиХ листов всяких навалом, а может твой едитор уровни для моей игры упаковать в один файлик?


 
Omar2002 ©   (2004-01-04 23:34) [11]


> Cash ©   (04.01.04 01:47) [4]
> А у меня конвектор спецательный (для работы в DelphiX).
> Надо - дам... ссылку забыл, хыть закатай(мышъю).
> Работает легче легкого. собираешь их, там и имя картинки
> или звука указываешь, в одну кучу, и эту кучу называешь
> по своему.
> А када нуна их загружать - делаешь так:
> DXImageList.Items.LoadFromFile("Куча.дрм")
> DXImageList можно заменить на DXWaweList, при наличии WaweLib
> прилады (работает также).


Ну это ты про формат DXG говоришь (графика), он действительно удобный, там даже покадровую анимацию прогонять можно :) У меня есть прога для работы с этим форматом GXGEdit, вроде даже последней версии. И со звуком тот же макар, и прога где-то валялась. Кому надо могу намылить.


 
TButton ©   (2004-01-05 00:03) [12]

и все-таки, как насчет упаковывалки для уровней?


 
Cash ©   (2004-01-05 14:08) [13]

TButton ©   (04.01.04 21:20) [10] - ну если твои уровни - это сплошь картинки - то да. прилады две - ImageLib и WaveLib,
а адрес я вспомнил, записывай:
http://www.mirgames.ru/download_addition.phtml?PHPSESSID=d58e7918b0111ae60e6dae08580c03b5

Там еще всякого навалом, и хелп к DelphiX (кому надо)


 
DDS   (2004-01-05 16:51) [14]

Я пишу под OpenGL, так что наверное DXImageList не
подойдет. Надо с Zip попробовать.


 
Cash ©   (2004-01-06 12:17) [15]

DDS ну тогда сделай свой запаковщик без сжатия.
Несколько таких паков разобрал по косточкам:
В начале выходного файла пишется список имен с адресами, разграничевается это обычно нулевым байтом. Пример...
TD[00]<name1>[6626][00][9899][00]ETD
<TD>..<ETD> - маркеры ТиПА TxtData.
<name1> - имя файла, для поиска можно прилау сделать,
[...] - внутри находится адрес начала или конца,
[00] - нуль, для разграниченияж
<> и [] внутри файла не употребляются.
Так сказать берешь файлы, пакуешь (можно все в один файл), вовремя загрузки ресурсов или распаковываешь или грузишь прямо из ф-ла(отдельно прописывать нуна).


 
NailMan ©   (2004-01-06 13:08) [16]

Я юзаю свой формат(исходники для юзателя лежат у меня на сайте).
Собсно сам файл с ресурсами(текстурами) в живую можно увидеть в демке моего GUI(валяется там же на сайте).

Просто, надежно как в танке. Простой ламер не раскроет. Непростой юзверь - при желании.


 
drnet   (2004-01-06 14:51) [17]

А я на основе ZlibEx (Delphi fast ZLib вроде) сделал компонентик:
идет хеадер с записями (имя файла, длинна архива, смещение)
а потом просто один за другим архивчики.
надо файлик - SaveFileToSteam(name:string), SaveFileToFile(name:string;target:string).....

просто совсем ;) я его часа за два наваял


 
DDS   (2004-01-06 16:46) [18]

NailMan че у тебя за сайт?


 
TButton ©   (2004-01-07 02:00) [19]

2 Cash ©   (04.01.04 01:47) [4]
записал, качаю


 
asc   (2004-01-24 02:16) [20]

Ну ты и тип - если такую элементарную задачу не можешь решить, зачем тогда за игру берешься?
К остальным - а зачем компоненты?? Есть же в Delphi файл ZLib.pas, там все есть!


 
комбинатор   (2004-04-22 14:03) [21]

установи компонент vcl.zip он с зипом делает все сам...
я через поисковик его нашел...он с примерами...разберёшся....
только это время отберёт..загрузки..


 
Гарри Поттер ©   (2004-04-22 23:46) [22]

А чем dll с ресурсами не нравится?


 
NailMan ©   (2004-04-23 09:22) [23]

Гарри Поттер ©
Не достойно Мастера.


 
Antichrist ©   (2004-04-26 01:29) [24]

2 NailMan ©:
Зачем из пушки по воробьям стрелять.


 
Гарри Поттер ©   (2004-04-26 12:29) [25]

Непнял. Зачем заморачиваться с зипом-нулевой компрессией, и т.п. когда можно просто сделать длл? Человек делает "игруху", ему, имхо, нужно просто чтобы картинки по папкам не валялись, паковать в ехе - увеличение размера, длл - это самое то.


 
NailMan ©   (2004-04-26 13:23) [26]

Antichrist ©
Держать ресурсы(графику) в DLL - это подход даже не чайника.

Гарри Поттер ©
Непнял. Зачем заморачиваться с зипом-нулевой компрессией, и т.п. когда можно просто сделать длл? Человек делает "игруху", ему, имхо, нужно просто чтобы картинки по папкам не валялись, паковать в ехе - увеличение размера, длл - это самое то.
Затем что твой любимый ДЛЛ надо перекомпилировать для того чтобы изменить что-то в ресурсе, а с ZIP-ом работать можно любой эксплориной начиная от ослика, заканчивая фором и без всяких Delphi.


 
Гарри Поттер ©   (2004-04-26 13:30) [27]

>чтобы изменить что-то в ресурсе, ZIP-ом работать можно любой эксплориной начиная от ослика, заканчивая фором и без всяких Delphi.

Ну дык сложи ресурсы в одну папку и зип ненужен, тем более что винда зипы как папки видит.

>Держать ресурсы(графику) в DLL - это подход даже не чайника.

А вот здесь лучше (чтобы не казаться чайником) лучше обосновать в чем минус длл.


 
NailMan ©   (2004-04-26 15:02) [28]

Гарри Поттер ©
НЕУДОБНО!!! Для наипростейшей игрульки типа крестики-нолики мож и прокатит, а вот для более менее серьезной игрушки нет.

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

Когда ты юзаешь зип(или же свой формат ресурса), то в памяти ничего не тусуется, акромя экземпляра класса ZIP(или же своей оболочки ресурса).

Я вон на своем сайте выложил модуль для работы с ресурсом(моего формата) - все что в памяти есть - это оболочка и таблица размещения(крошечного размера). Юзать просто и понятно. Компилить ресурсный файл проще паренной репки - указал путь к папке с файлами и имя выходного файла - бах и все готово. Разобрать файл лемеркам будет непросто(если уж печешься о сохранности контента).


 
Гарри Поттер ©   (2004-04-26 17:25) [29]

Ну, если автор ветки назвал свое творение "игруха", возможно это как раз и вариант.

Я использую несколько длл для разных ресурсов, необязательно делать длл Хмегового размера.

Модуль скачал, посмотрю, похоже интересная и полезная вещь.


 
MeF88 ©   (2004-04-27 14:36) [30]

Я обычно пишу свой игровой формат, потом сжимаю Zlib (правда файлы размером более 100Мб довольно долго распаковываются, хотя, наверное, можно по кусочкам распаковывать), иногда ещё и кодирую алгоритмом SHA512, но это уже моя паранойя. ;)


 
NailMan ©   (2004-04-27 16:17) [31]

MeF88 ©
Юзание сжатия похвально, а вот кодирование... :-)

Наверно вполне прокатит и XOR, для ресурсов-то...


 
MeF88 ©   (2004-04-27 16:22) [32]


> Наверно вполне прокатит и XOR, для ресурсов-то...

Если учесть, что всё ещё запаковывается... то и XOR прокатит. ;) Но если SHA512, то редкий хакер взломает ресурсы...


 
NailMan ©   (2004-04-27 16:25) [33]

MeF88 ©
Как будто хакер будет ломать твои ресурсы. Наверно уж такой-же программер-одиночка. Ты должен быть счастлив если твою игру потрошат - значит кому-то нравится... :-)


 
CofeWar   (2004-05-05 13:13) [34]

Есть программа, которая создает архивы, создана специально для делфи, может блокировать архивы, т.е. никто не сможет изменить содержимое твоего архива без введения кода, который знаешь только ты, еще может создавать архив любого формата хоть: *.NeLaz". Название программы:ResManager, скачать можно с http://resmanager.h1.ru/


 
Katleta   (2004-07-24 02:29) [35]


> http://resmanager.h1.ru/

Чето не пашет  8(


 
kas-t ©   (2004-07-24 18:04) [36]

Довольно познавательно:
http://delphigfx.mastak.ru/2d/015/2d_15.htm


 
Ландграф Павел ©   (2004-07-24 23:09) [37]

Ну скажу свое мнение что хранить ресурсы в dll это верх тупизма!!! минус один и самый главный: чтоб графику добавить/изменить нужно перекомпилить dll`ку... да и вообще это глупо... а хранить правельно народ говорит, в стандартных архивах (zip, rar и тд.) но граф. файлы либо своего формата, либо кодировать... иначе любой ламак вскроет... а так: вскрывайте кто хотите, но вот графику не сопрете... или изрядно попотеете))


 
wiz ©   (2004-07-25 16:15) [38]

Ребята, я конечно извиняюсь, но imho у вас паранойя (у тех, кто криптует данные)... как было однажды (или даже не однажды) замечено - если вашу графику хотят вскрыть, значит ваша игра понравилась :))) Зачем заморачиваться с кодированием и прочее??? Нормальные дизайнеры _не_ будут пользоваться чужим креативом, т.к. для них это всё равно что поставить жирную роспись, что они нулёвки в творчестве.

А всякие кены пусть пользуются - жалко что-ли?

С другой стороны, если вдруг кто-то захотел что-то изменить (сделать красивее, по-другому, по-своему) и лезет в ресурсы - значит он в какой-то мере фанатеет от вашей игры...

А фанатов надо всеми силами ублажать :) т.к. именно они питают наше самолюбие :)))


 
Ландграф Павел ©   (2004-07-25 17:35) [39]

wiz> после того как у меня диким образом украли титульную картинку мне стало обидно... вот и сделал свой формат (вернее переправил существующий для служебной инфы. и анимации)... незнаю, я рисую на бумаге карандашиком, поэтому это МОЕ, и я хочу чтоб все так и осталось...=)


 
Katleta   (2004-07-25 21:03) [40]

Вот вот !
Так что свою графику и тд надо прятать в архивы !
Есть этот компонент TResManager но у меня он чето глючит :(


 
xShadow ©   (2004-07-26 09:06) [41]

Для своих проэктов стал использовать компанент сжатие собственного производства с алгоритмом LZH и все проблемы улетучились!


 
Zer0 ©   (2004-07-26 15:14) [42]

пара неплохих компонентов сжатия данных, которые я использую  в своих проэктах:

http://tpabbrevia.sourceforge.net/ - бывший коммерческий проэкт, теперь поставляется с полными исходными кодами. pure delphi, никаких dll`ек (больше устойчивость к взлому)

http://www.xarka.com/prog/delphi.html
[HKStreams is a component that enables you to easily save and load many streams into one file. The streams can be stored with LHA compression if wanted, and can also be encrypted with blowfish. THKStreams is also smart, if you load afterwards an encrypted or compressed (or both) file, it will know how to read it, and can also call your event that asks the user for a password if needed.Can also handle wrong passwords or corrupt files.]
оч. полезный компонет, постоянно использую.

p.s. есть желание скооперироваться и сделать полноценный менеджер ресурсов на основе zlib и быстрого шифровальшика.


 
Micah'GF ©   (2004-07-26 15:49) [43]

а ктонить юзает gz ?! он же насколько я знаю free и исходники к нему должны быть

зы. Не бить если сказал глупость..!


 
DeadMeat ©   (2004-07-26 20:17) [44]

> Zer0
> http://www.xarka.com/prog/delphi.html
Надо будет глянуть...
А я сам использую UCL в PAK-ах у GLScene... Они там не сжимаются, пришлось доработать. Кстати разжимает в секунды (даже в миллисекунды)...

---
...Death Is Only The Begining...


 
Xerx ©   (2004-08-05 04:59) [45]

Если речь о компоненте, то моно использовать ZipTV Compression Components for Delphi 4, 5, 6 & C++ Builder 4, 5 and 6. Поддерживает МНОГО форматов, даже весьма экзотические. По-мойму такие: BH, ACE, ARC, ARJ, CAB, GZIP, LHA, RAR, TAR, ZIP, ZOO. Рекомендую BlakHole и ZOO. Первый я смог открыть только своей же программой. А ещё есть перекодировщик из формата в формат, мейкер SFX и т.д. Если б я делал не без VCL, то использовал бы только это! www.ziptv.com


 
kas-t ©   (2004-08-06 18:18) [46]

Вот возник вопрос почти в тему. Зависит ли размер архива на скорость работы с ним. Допустим, у меня есть архив, а в нем 150 файлов. Нужно выдернуть от туда один файл, знаю его имя. Будет ли выдергивание одного файла из архива в 150 файлов медленнее, чем, если бы я выдергивал из архива с 50 файлами один файл?

В общем, как рациональнее, хранить ресурсы в нескольких архивах, или лучше в одном? Как будет быстрее осуществляться работа с архивом?

Извиняюсь если оффтоп.

PS: ZipTv не бесплатный компонент, и наверное самый дорогой из всех подобных ему. Хотя может он того и стоит.


 
Micah'GF ©   (2004-08-07 12:45) [47]

[46] kas-t
нет, скорость почти не изменится (ну просто ты этого не заметишь). Архив в заголовке хранит смещение данных в файле и архиватор просто позиционирует указатель и считывает нужные данные, а не перебирает все записи в архиве, как ты подумал.


 
kas-t ©   (2004-08-08 17:20) [48]

[47] Micah"GF
Спасибо, разъяснил... :)


 
Ландграф Павел ©   (2004-08-08 20:26) [49]

>PS: ZipTv не бесплатный компонент
Разве в России есть что-то не бесплатное=)) (подмигивает)


 
Zer0_no_pass   (2004-08-08 21:50) [50]

<offtop>
2Ландграф Павел: *достает значОк ночного дозора* >8-E
Abbrevia - зачем платить больше, если уже и так бесплатно?
</offtop>

до кучи, вдруг никто не знает...  http://www.zeitungsjunge.de/delphi/ucl/index.htm

DIUcl is the Borland Delphi port of the popular UCL Compression Library.
DIUcl achieves an excellent compression ratio (up tp Zip and BZip!) with the following features:
* Decompression is extremely fast, and requires no memory
* The assembler optimized decompressor fits into less than 200 bytes of code
* Supports in-place compression and decompression
* Real-time decompression should be possible for any application


 
WandR   (2004-11-23 10:49) [51]

Решил попробовать упаковать все текстуры в паки, скачал PakExplorer
Сделал простой пак, 1 папка в ней 2 файла
Кидаю на форму GLVfsPAK1
Пишу GLVfsPAK1.LoadFromFile("data.pak",fmOpenRead);
Типа загрузил пак, но дальше в процесе работы сплошные баги=(
Например если хочу извлеч файл
GLVfsPAK1.Extract("dir\pic1.jpg","f:\pic1.jpg");
GLVfsPAK1.Extract("dir\pic2.jpg","f:\pic2.jpg");
Первый файл pic1.jpg вообще не извлекается, говорит такого нету, второй извлекает но содержимое это чето непонятное из первого файла
Смотрю количество файлов
GLVfsPAK1.FileCount
Если в паке 2 файла скажет 1, если в паке 3 файла всеравно 1
Если будет 4 то 2, Кароче 2 файла для него это 1
Вот и незнаю че делать, компонент удобный вроде в теории но вот работать не хочет а с другими возится не прет тут же как я понял открыл пак и указывай на загрузку относительные пути к файлам(относительно пака)
У когонить, чтонить подобное было??? Юзаю GLScene_SnapShot_100604


 
Colt1978   (2004-11-24 06:34) [52]


> WandR   (23.11.04 10:49) [51]
> Решил попробовать упаковать все текстуры в паки, скачал
> PakExplorer
> Сделал простой пак, 1 папка в ней 2 файла
> Кидаю на форму GLVfsPAK1
> Пишу GLVfsPAK1.LoadFromFile("data.pak",fmOpenRead);
> Типа загрузил пак, но дальше в процесе работы сплошные баги=(
> Например если хочу извлеч файл
> GLVfsPAK1.Extract("dir\pic1.jpg","f:\pic1.jpg");
> GLVfsPAK1.Extract("dir\pic2.jpg","f:\pic2.jpg");
> Первый файл pic1.jpg вообще не извлекается, говорит такого
> нету, второй извлекает но содержимое это чето непонятное
> из первого файла
> Смотрю количество файлов
> GLVfsPAK1.FileCount
> Если в паке 2 файла скажет 1, если в паке 3 файла всеравно
> 1
> Если будет 4 то 2, Кароче 2 файла для него это 1
> Вот и незнаю че делать, компонент удобный вроде в теории
> но вот работать не хочет а с другими возится не прет тут
> же как я понял открыл пак и указывай на загрузку относительные
> пути к файлам(относительно пака)
> У когонить, чтонить подобное было??? Юзаю GLScene_SnapShot_100604

Незнаю всё у меня работает. А вообще трабл наблюдается только при распаковке пака с использованием *.jpeg. Когда суёшь *.bmp никаких косяков. У меня пак выглядел так:
\
\data
\textures
\textures\World
\textures\map
\Models\
\Models\world
\Models\map
\sound
\fonts

Я делал так:          
glvfspak1.LoadFromFile("data.pak",fmOpenRead);
Причём заметь у тебя может быть ошибка если glvfspak1 ещё не создан в памяти.


 
WandR   (2004-11-25 10:26) [53]

хм, создан в плане GLVfsPAK1.Create(); ??
если да то там пораметром служит компонент, но вот какой?


 
TButton ©   (2004-11-25 10:50) [54]

ресурсы нужно хранить в складе.


 
WandR   (2004-11-25 10:54) [55]

TButton ©
очень дельный совет, только не по теме



Страницы: 1 2 вся ветка

Форум: "Игры";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.6 MB
Время: 0.057 c
1-1107746856
Bes
2005-02-07 06:27
2005.02.20
Поток в DLL...


6-1102537369
Homa_Programer
2004-12-08 23:22
2005.02.20
выключение компа


11-1091774698
Ricko
2004-08-06 10:44
2005.02.20
7 битная кодировка


1-1107468100
Назаров Евгений
2005-02-04 01:01
2005.02.20
чтение из Excel таблиц в фоновом режиме


14-1107255697
Dimedrol
2005-02-01 14:01
2005.02.20
Мелодию конвертнуть в "кнопки" для Nokia





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский