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

Вниз

как облегчить игру?   Найти похожие ветки 

 
antonn ©   (2006-02-05 18:42) [40]

XProger ©   (05.02.06 18:22) [39]
antonn, я вижу, ты в очередной раз гордишься своим незнанием Delphi? :)

скажи, что такое "знание Дельфи".


 
XProger ©   (2006-02-05 18:51) [41]

antonn, совокупность знания многих вещей в частност тех о которых я уже упоминал... кончай оффтопить!


 
antonn ©   (2006-02-05 19:12) [42]

XProger ©   (05.02.06 18:51) [41]
antonn, совокупность знания многих вещей в частност тех о которых я уже упоминал...

ты конктерно сформулируй:)

> кончай оффтопить!

хо-хо-хо, сам не лучше. постыдился бы... :))


 
Cash ©   (2006-02-06 15:56) [43]

От зафлудили то... во зафлудили...
Блин, топик ветки в пору на "anton vs XProger" менять. :)))
Щас как модеры придут, как откусят одному молодому человеку
кой что по мелочи, чтоб не флудил почем зря! :)))
Я не знаю как Антону, а мне уже давно стало кое что ясно.

Да и ваабще, дайте в конце концов дельный совет хозяину ветки,
как ему свою игруху, сделанную на DelphiX(подчеркиваю!),
минимизировать по лучше.

Я бы так сказал:
- держишь ресурсы внутри проги, выкидывай их в отдельный файл.
- пакуй прогу UPX-ом или ASPack-ом.
- пакуй ресурсы Zip-ом или Cab-ом или сделай свой формат.
 (кстати, про свой уникальный формат обжатия рисунков без потерь
  я не таращусь как некоторые про их достижения в написании легких прог!)
- установи себе InstallShield, который вместе с Delphi идет и пакуй все им.

... И будет твоя прога легка как перышко!... :)))


 
Don Nikola   (2006-02-06 16:21) [44]

Для хранения ресурсов можно посмотреть в сторону http://www.gamedev.ru/download/?id=2950

А вместо InstallShield взять NSIS в nullsoft.com и далее по ссылкам.


 
XProger ©   (2006-02-06 16:54) [45]

Cash, если гражданин распространяет свою, написанную на DelphiX программу, в архиве, то максимум сэкономит - 10 кб :)

Совет автору ветки: пиши на чистом API, и будет тебе небольшой размер, в противном же случае - не смей задавать подобных вопросов... ;)


 
DeadMeat ©   (2006-02-06 17:07) [46]


> Совет автору ветки: пиши на чистом API, и будет тебе небольшой
> размер, в противном же случае - не смей задавать подобных
> вопросов... ;)

Это знаешь примерно на что похоже?

- "Какую видео карту мне выбрать для игр?"
- "Покупай приставку, в противном же случае - не смей задавать подобных вопросов"

или

- "Какой файерволл мне лучше поставить?"
- "Переходи на линукс, в противном же случае - не смей задавать подобных вопросов"

Человек спросил, как ему размер уменьшить... Я не думаю, что он спросил на чем ему переписывать всю его игру.


 
XProger ©   (2006-02-06 17:13) [47]

DeadMeat, перечитай топик перед тем, как постить что-либо... ответ уже дали, а я совет дал :)


 
antonn ©   (2006-02-06 19:15) [48]

Cash ©   (06.02.06 15:56) [43]
- держишь ресурсы внутри проги, выкидывай их в отдельный файл.
- пакуй прогу UPX-ом или ASPack-ом.
- пакуй ресурсы Zip-ом или Cab-ом или сделай свой формат.
(кстати, про свой уникальный формат обжатия рисунков без потерь
 я не таращусь как некоторые про их достижения в написании легких прог!)
- установи себе InstallShield, который вместе с Delphi идет и пакуй все им.

согласен с первым и третьим. Второй для фанатов "внешнего осмотра файла", которым важно, как характеристики его файла будут выглядеть в св-вах проводника. Если делаешь дистрибутив, он все равно сжимается архиватором, смысла в upx"е в этом случае нет.


 
Bogdan1024 ©   (2006-02-06 21:43) [49]

Речь шла про маленький размер эхэ в составе дистрибьютива.
- держишь ресурсы внутри проги, выкидывай их в отдельный файл.
А зачем? Ведь архиваторы сжимают одинаково хорошо эхэ с ресурсами как внутри, так и отдельно. По-моему, эхє+ресурс даже лучше чем отдельно...но я всё равно держу их отдельно.
- пакуй ресурсы Zip-ом или Cab-ом или сделай свой формат.
опять-же, это не повлияет на размер дистрибьютива, кроме того я не знаю как это делать :) (Как?)
- установи себе InstallShield, который вместе с Delphi идет и пакуй все им.
Всмысле, делать инсталяхи? Дык голый архив походу меньше весит килобайт на 100.


 
Cash ©   (2006-02-07 08:27) [50]

Bogdan1024 ©   (06.02.06 21:43) [49]:
InstallShield или подобные умеют сжимать другими методами нежели
WinZip, RAR или 7-Zip. Они умеют сжимать уже сжатую информацию!

А то как же так, взял я Commandos 3 на одном диске, пришел,
поставил, он у меня четыре раза распаковывался, а потом уже сказал,
мол: "Парень, я готов, давай ставиться!"! И размер в норму - 3,5 Гб.

... А зачем? Ведь архиваторы сжимают ...
В виде отдельного файла ресурсы позволяют производить над собой
больше опираций: сжатие, модернизацию, изменение компонентов, и т. д.

А перед архивированием все файлы всеравно в одну ленту переписываются,
так что с той стороны, с которой ты посмотрел разницы на самом деле нет.

P. S.:
Чесно говоря странно, парню сжать охота, но он не принимает такие
тривиальные вещи.


 
DeadMeat ©   (2006-02-07 08:46) [51]


> XProger ©   (06.02.06 17:13) [47]

Может быть я не прав, но первое твое сообщение не очень похоже на совет.. А скорее на "ответ" на вопрос... Точнее на его попытку.

ЗЫ. Топики я всегда читаю с начала и до самого конца.


 
Nic ©   (2006-02-07 09:48) [52]

Для Shareware игры нормальный размер ~ 1-3,5 Мб.
Если делать больше - игру многие не смогут скачать.  => Размер всей распакованой игры может достигать в среднем 3-10 Мб. О каких килобайтах речь? :)


 
Nic ©   (2006-02-07 09:52) [53]

Хотя приятней иметь exe не 450 Кб (это было при использовании VCL + OpenGL API при создании красивой демки), а 190 Кб (из VCL только SysUtils). Если ещё избавиться от SysUtils (сделать это несложно) и взять компилятор помладше, то исполняемый файл будет меньше 100 Кб. Почуствовать разницу 450Кб и 75? В шесть раз. Приятно. Это без всяких там UPX и иже с ними.


 
XProger ©   (2006-02-07 11:03) [54]

Nic,
http://reflexive.com/ - нормальная шаровара, меньше 10 мб в дистрибутиве не весит, и стоит не менее 10 у.е. :)
Delphi компиляторы без VCL дают не более 6 кб прироста... (проверенно)

Cash, никакой InstallShield не "пережмёт" 7z (проверенно)


 
Bogdan1024 ©   (2006-02-07 11:38) [55]

Для Cash:
Ну так рар тоже умеет сжимать уже сжатые файлы, и Ace умеет, и куча кого ещё умеет, но всё равно голый архив легче чем инсталятор. Или ты хочешь сказать что инсталщилд сжимает лучше рара?
Чесно говоря странно, парню сжать охота, но он не принимает такие
тривиальные вещи.

Ты о чём?


 
Cash ©   (2006-02-07 11:53) [56]

Bogdan1024 ©   (07.02.06 11:38) [55]:
Да голый архив легче! Это правда! Давай я тебе дам мой архив,
в котором используется моя методика сжатия в два раза лучше
сжимающая чем RAR. Я просто дам тебе файл с расширением *.ddw.
Что ты сним сможешь сделать? Ражать не сможешь, у тебя нет моей
программы. Сможешь только выделить этот файлик, потом Del нажать,
а затем Enter. Это будет самое рациональное, что ты сделаешь с
моим архивом. Ну дак как? все еще думаешь, что архивы лучше
инсталлеров?

InstallShield в его полном исполнении сжимает файлы сжатые любым
архиватором создавая общий процент сжатия до 10 и выше раз лучше
чем 7-Zip. Так же можно применить спец опцию крутого обжатия, и
не архивированный дистрибутив будет весить меньше чем архив RAR.


 
Cash ©   (2006-02-07 11:59) [57]

Увидел в своем посте опечатку, оборжался просто! :)))
Хотел сказать "Расжать", а что получилось то! :)))


 
Don Nikola   (2006-02-07 13:00) [58]

2Cash:
>Давай я тебе дам мой архив, в котором используется моя методика сжатия
>в два раза лучше сжимающая чем RAR.

А можно поконкретнее? Хочешь сказать что твой пакер способен сжимать любой блок данных лучше чем rar в два раза? Если так, то было бы интересно узнать используемый метод(хотя бы название, если используется общеизвестный метод), необходимые ресурсы на сжатие/расжатие и время для этого необходимое.


 
Cash ©   (2006-02-07 14:35) [59]

Don Nikola   (07.02.06 13:00) [58]:
Время и энтропию сам посчитай, там все каноническое.
Дважды адаптивный Хаффман и LZW метод. (с моей реализацией)
Все над словарем (или окном) в 32 штуки (тысячи) элементов.
Сжимает и достает дольше чем RAR, но быстрее чем 7-Zip.
А если с InstallShield вместе, то игруха ваще нискока не весит
в сравнении с ее распакованным состоянием. Против 10 мегов
всевозможной лабуды (звуки, графика, три-четыре бинарника)
говорит один инсталлер размером всего в 2,5 мега.

Следует учесть, что рар сам с собой соперничеет, иногда из под него
вылезают архивы разных размеров, полученные от одних и тех же файлов.


 
Don Nikola   (2006-02-07 16:39) [60]

2Cash:
Ясно. Радует что кто-то сам что-то пишет, а не берет готовые решения.
Однако, такой пакер хорош для распространения инсталяхи, для real-time извлечения он не годиться. Для больших игр такой метод не очень подходит, а для шаравар или не критичных по времени программ вполне подойдет.


 
Bogdan1024 ©   (2006-02-07 19:09) [61]

К Cash: Так так и говори что здорово было бы своим методом архивировать, а то инсталщилд-инсталщилд...
К Don Nikola: скачал. А где документация? Непонятно ничего :) Блин, проще своё что-нить придумать чем в твоём копаться, тем более что там половина вообще на ассемблере (который я не шарю). Хоть бы коменты написал.


 
Don Nikola   (2006-02-07 20:46) [62]

2Borgad1024:
Вообще-то, там папочка была, Examples называлась.
Использование проще некуда.
Подготовка:
1) Кладешь все нужные файлы в папку Utils\Packer\Data
2) Запускаешь Utils\Packer\NPacker.exe
3) Полученый файл Data.dat, который можно переименовать, кладешь со своей программой

Использование:
1) Подключаешь юнит NArc.pas
2) Загружаешь заголовок архива функцией OpenArchive
3) Загружаешь нужные файлы из архива функцией LoadFile, которая возвращает указатель на область данных
4) Когда данные больше не нужны вызываешь FreeMem
5) Когда архив больше не нужен вызываешь CloseArchive

Если честно, то стоит пять минут почитать то что между interface и implementation, то практически все вопросы должны отпасть, а после чтения от implementation до end и все остальные тоже. Там все весьма просто.
А в ассемблер вообще нет смысла соваться, если ты его не знаешь, главное что оно работает. Это не наезд, а просто совет.


 
Bogdan1024 ©   (2006-02-07 21:30) [63]

Ту Don Nikola
Вообще-то, там папочка была, Examples называлась.
Я давно это заметил.
Использование проще некуда...
Вот так бы сразу. Неужели тяжело это вставить в коментах в примеры? Щас поюзаю...
Если честно, то стоит пять минут почитать то что между interface и implementation, то практически все вопросы должны отпасть, а после чтения от implementation до end и все остальные тоже. Там все весьма просто.

А если прочитать от начала до конца всё что написано в юнитах компонентов DelphiX, то все вопросы тоже должны отпасть :))) Но DelphiX на то и гуд что программисту не обязательно иметь ответы на все вопросы чтобы его юзать.
А в ассемблер вообще нет смысла соваться, если ты его не знаешь, главное что оно работает. Это не наезд, а просто совет.
А я дурак, не знал ассемблер, но всё равно сунулся :))) Как можно в него сунуться не зная его?
Я не понимаю почему ты так усердно защищаешь  свою точку зрения по которой у твоих компонентов не должно быть документации.


 
Don Nikola   (2006-02-08 00:09) [64]

2Bogdan1024:
NArc от DelphiX отличается также как MSDOS от XP.
Эта библиотека была написано под свои собственные нужды и изначально не планировалось выкладывать ее на всеобщее обозрение и уж тем более писать доки к ней. Она была выложена как пример библиотеки для хранения игровых ресурсов для одной из тем на gamedev.ru
Если бы я выложил ее как законченный продукт, то конечно добавил бы и доки и примеры.
Прощу прощения что несколько агрессивно сформулировал предложение про асм.


 
Don Nikola   (2006-02-08 00:10) [65]

2Bogdan1024:
NArc от DelphiX отличается также как MSDOS от XP.
Эта библиотека была написано под свои собственные нужды и изначально не планировалось выкладывать ее на всеобщее обозрение и уж тем более писать доки к ней. Она была выложена как пример библиотеки для хранения игровых ресурсов для одной из тем на gamedev.ru
Если бы я выложил ее как законченный продукт, то конечно добавил бы и доки и примеры.
Прощу прощения что несколько агрессивно сформулировал предложение про асм.


 
Don Nikola   (2006-02-08 00:12) [66]

Глючный форум...


 
-SEV- ©   (2006-02-08 01:22) [67]

Я что-то тоже не могу пропереть, нафиг экзешники жать. "Вот прога, написаная на Делфе, весит 500 б !!! Всё! Правда делать она ничего не умеет, да и вряд ли будет уметь, ибо проще перейти на ассемблер, чем работать в Делфе, ограниченной во всех своих фишках". Зачем вырезать из делфы ВСЁ ради того, чтобы экзешник весил 500 байт и ничего не умел? Какой извращенец будет писать проги в делфе, учитывая все капризы памяти и прочего оборудования, когда можно заплатить 20 кб (всл не трогать) и писать в более-менее терпимых условиях? Прошли времена ДОСек, когда за каждый занятый байт можно было вены порезать. По-моему на винтах по 100 гигов найдётся местечко и для 500 кб...


 
antonn ©   (2006-02-08 05:40) [68]

-SEV- ©   (08.02.06 1:22) [67]
Я что-то тоже не могу пропереть, нафиг экзешники жать. "

это фанатизм, что то вроде синдрома "пенисо-мера" :)


 
Cash ©   (2006-02-08 11:16) [69]

antonn ©   (08.02.06 05:40) [68]:
Не фанатизм, коллега, а экстримизм (в некоторых случаях
сопряженный с терроризмом)! :)))


 
XProger ©   (2006-02-08 11:54) [70]

-SEV-, "Какой извращенец будет писать проги в делфе, учитывая все капризы памяти и прочего оборудования" - Я! :)
Мне нравится понимать как оно работает и откуда берётся каждый байт, также мне нравится полностью контролировать свою программу и "самому" её писать.

antonn, я уже давно убедился в ущербности твоего мышления...


 
Don Nikola   (2006-02-08 12:40) [71]

Если попытки запихать delphi"евый екзешник в com это и в самом извращение, то написание небольших утилит, шаравар и прочего небольшого софта на WinApi это весьма разумная практика. А вот делать тетрис/калькулятор на монструозных VCL/DelphiX/etc это уже верх маразма.
И высказывания, что у всех сейчас винты по 250Gb и памяти по 1Gb я считаю некорректными. Если вы делаете что-то, что будет качаться через инет, особенно когда код занимает больше данных, то тут серьезно нужно думать о том как написана программа.


 
antonn ©   (2006-02-08 12:44) [72]

XProger ©   (08.02.06 11:54) [70]
antonn, я уже давно убедился в ущербности твоего мышления...

не обманывайся.


 
XProger ©   (2006-02-09 22:24) [73]

http://xproger.mirgames.ru/tmp/Form1.rar - очередная безделушка... ;)


 
rts111 ©   (2006-02-09 23:34) [74]

Вопрос к XProger-у , а как облегчить dll, может знаешь?
Спасибо зарание!


 
XProger ©   (2006-02-10 00:03) [75]

rts111, Аналогично, только не удалять _InitLib (но подчистить можно :)
unit SysInit;

interface

procedure _InitExe;
procedure _halt0;
procedure _InitLib(Context: PInitContext);

var
ModuleIsLib : Boolean;
TlsIndex    : integer = -1;
TlsLast     : Byte;

const
PtrToNil: pointer = nil;

implementation

procedure _InitLib(Context: PInitContext);
asm
LEAVE
RET 12
end;

procedure _InitExe;
asm
end;

procedure _halt0;
asm
end;

end.


unit System;

interface

procedure _HandleFinally;

type
TGUID = record
 D1: LongWord;
 D2: Word;
 D3: Word;
 D4: array [0..7] of Byte;
end;

PInitContext = ^TInitContext;
TInitContext = record
 OuterContext   : PInitContext;
 ExcFrame       : pointer;
 InitTable      : pointer;
 InitCount      : integer;
 Module         : pointer;
 DLLSaveEBP     : pointer;
 DLLSaveEBX     : pointer;
 DLLSaveESI     : pointer;
 DLLSaveEDI     : pointer;
 ExitProcessTLS : procedure;
 DLLInitState   : Byte;
end;

implementation

procedure _HandleFinally;
asm
end;

end.


 
Bogdan1024 ©   (2006-02-10 00:15) [76]

Don Nikola
Ну и не работает нифига %)
Кидай or не кидай в папку дата файлы => всё равно NPacker.exe вылетает с ошибкой. Если запускаешь в дебугере, то он говорит что-то про ошибку чтения 32, если хочешь кину скрин.


 
Don Nikola ©   (2006-02-10 12:38) [77]

2Bogdan1024:
Естественно, он не может открыть себя для чтения, так как ты запускаешь его из папки Packer\Sources, а нужно из Packer, положи его туда и запускай оттуда.
Еще раз повторяю все делалось под себя, если что-то не работает посмотри в коде, там все довольно ясно. Я могу сказать только одно - у меня все работало 100%.


 
rts111 ©   (2006-02-11 03:35) [78]

XProger, ты гуру!


 
rts111 ©   (2006-02-12 04:06) [79]

Смотрите мою маленькую программу, сжал upx-сом, получилось 15 Kb.

http://flora3d.narod.ru/archive/flora3dm.zip


 
XProger ©   (2006-02-12 12:09) [80]

rts111, есть шанс уменьшить размер раза в 2, если не использовать стандартный менеджер памяти, классы, динамические массивы и строки соответственно :)



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

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

Наверх




Память: 0.64 MB
Время: 0.046 c
4-1153997911
DmitrySukach
2006-07-27 14:58
2006.12.10
Access Violation при вызове CryptSignAndEncryptMessage


1-1162188144
Shopot
2006-10-30 09:02
2006.12.10
Печать.


2-1164131457
Фесс
2006-11-21 20:50
2006.12.10
Работа со списком


4-1154016016
Destroyer
2006-07-27 20:00
2006.12.10
Проблема с получением короткого пути


1-1162125303
Shadow_exe
2006-10-29 15:35
2006.12.10
Indy





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский