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

Вниз

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

 
Bogdan1024 ©   (2006-01-31 07:58) [0]

Есть игра, которая уже полностью написанная на Дэлфи7+ДэлфиХ. Как можно её облегчить? Я имею ввиду именно сам эхэ-шник.


 
П7   (2006-01-31 08:26) [1]

Облегчить? UPX? RAR?


 
cyborg ©   (2006-01-31 09:33) [2]

Экзешник облегчать не нужно. Нужно ресурсы игры облегчать, если это имеет смысл. Изначально у меня Чебуратор 50 с лишним мегабайт весил, но потом всего 20 стал :).


 
Mortem ©   (2006-01-31 10:46) [3]

Я полагаю, что все ресурсы запиханы в DelphiX-контейнеры. Типа ImageList...


 
XProger ©   (2006-01-31 11:16) [4]

Bogdan1024, очень просто - забываем про существование формы, про DelphiXб Classes, SysUtils, Graphics и т.п.
Оставляешь только Windows, mmSystem, WinSock и заголовочные файлы графического (звукового, физического) API.
Также забываем про существование class"ов :)

Если и этого мало - лезем за чисткой системных модулей
http://xproger.mirgames.ru/?id=1&doc=delphi_min
Если приложение достаточно мелкое - все свои модули подключаешь к основному dpr через директиву {$INCLUDE ...} это даст несколько килобайт за модуль :)

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


 
П7   (2006-01-31 11:57) [5]


> XProger ©   (31.01.06 11:16) [4]

Полож классы туда, где взял! Они слишком хороши для тебя. (:


 
Sphinx ©   (2006-01-31 13:28) [6]

использование классов (с умом) - это прирост примерно на 5 кб

Свавнивал сам, простенькая прожка с object, а потом с class - разница в 5 кб.

Так что отказ от ООП - это уже экстремизм =)


 
Mortem ©   (2006-01-31 15:03) [7]

Думаю автора топика 5 килобайт не спасут! (:


 
XProger ©   (2006-01-31 16:06) [8]

П7, есть object или record на крайняк... ООП - не всегда гут :)
Sphinx, создай 2 класса... 3 класса потом добавь наследование как тебе размерчик? Как на дрожжах да? ;) Владимир Кладков это понимал, когда KOL писал ;)


 
Кефир87 ©   (2006-01-31 20:29) [9]

Да... и вызовы методов через эти таблицы куда медленней чем прямые вызовы процедур и функций...


 
аноним   (2006-01-31 21:13) [10]

извращенцы. ей богу.


 
Кефир87 ©   (2006-01-31 21:29) [11]

Я? Нее... От ООП не отрекался пока... Это вон XProger мелкий извращенец 8) Проги по 500 байт на делфи пишет 8)


 
Galiaf ©   (2006-02-02 20:52) [12]

>Это вон XProger мелкий извращенец 8) Проги по 500 байт на делфи пишет 8)
Тоже хочуууу!
Здаровый видно, раз так крепко сжимает :).


 
XProger ©   (2006-02-03 05:16) [13]

Galiaf, ничего сверх-естественного http://xproger.mirgames.ru/?id=1&doc=delphi_min


 
Bogdan1024 ©   (2006-02-03 21:48) [14]

Почитал статью твою, XProger, поковырял свой код... вот зло, получается, что уменьшить размер эхэ-шника уже нельзя никак :) Ну вот разве что UPX-ом, только как-то применять его нет великого смысла потому что у меня сжатый UPX-ом и раром файл весит всего лишь на 15КБ легче чем просто сжатый раром (изначально эхешник весил 626 КБ).
...Ещё предложения :)?


 
grouzd[E]v ©   (2006-02-03 22:05) [15]

15кб это очень много, просто твои 626 можно значительно урезать только выбросив vcl

---
... we are walking on a thin line and you better avoid the risk ...


 
XProger ©   (2006-02-03 22:15) [16]

Bogdan1024, перечитать статью ;)


 
Домовенок ©   (2006-02-03 23:59) [17]

Если игра хорошая, то размер не важен. Пользователям (игрокам) же до размера вашей программы (игры) как до лампочки, им же главное процесс (результат). А все эти: "у меня меньше игра; неет, у меня меньше..." - это называется "мерится пиписьками".. :)


 
Cash ©   (2006-02-04 09:31) [18]

grouzd[E]v ©   (03.02.06 22:05) [15]:
ЗЫ: Убрать VCL и отавить DelphiX.
(у парня же на нем игра, и вопрос по облегчению именно ее)
И ваще, Домовенок © отчасти прав!


 
TWINc ©   (2006-02-04 09:47) [19]

вот уменьшить размер игры с 4 ТБ я понимаю... а гнаться за кб имхо не благодарное занятие... вы же не вирус пишите


 
Cash ©   (2006-02-04 09:49) [20]

TWINc ©   (04.02.06 09:47) [19]:
А кто их знает! :)))
Давно психологи уже говорят про вирус игровой зависимости! :)))


 
XProger ©   (2006-02-04 12:39) [21]

ДЫк, фокус то в другом! Это одна из задач ставящихся программистом перед самим собой, это вызов самому себе! + чем ниже уровень программирования - тем лучше понимание сути многих вещенй...


 
Bogdan1024 ©   (2006-02-04 13:46) [22]

Ну, как бы маленький размер способствует скачиваемости.
>чем ниже уровень программирования - тем лучше понимание сути многих вещенй...
Что-то не вижу связи между уровнем программиста и его пониманием.Наверно, я крутой программист :)


 
Кефир87 ©   (2006-02-04 14:18) [23]


> Что-то не вижу связи между уровнем программиста и его пониманием.

Уровень программироваяния это не уровень программиста 8)


 
Cash ©   (2006-02-04 14:28) [24]

Bogdan1024 ©   (04.02.06 13:46) [22]:
Уровень не программиста, а программирования! Понимаешь?
Спускайся с высокого Эвереста Delphi к бескрайней низменности Assembler-а!
:)))
Тогда типа толк будет.

XProger ©:
А слабо тебе извращенцу такому без UPX и всяких там фигулек в нормальном
PE формате сделать работоспособную вещь, которая хыть бы с DirectX
дружила, инициализировала, выводила примитивы и считала FPS, и !!!
при всем этом весила меньше 20kB??? (Это мне так... поржать! {из КВН})


 
XProger ©   (2006-02-04 18:34) [25]

Bogdan1024, а ты понимаешь, что и как делает SetLength что адреса элементов массива меняются? ;)

Cash, ой мать... ещё один пятушок... был тут уже "спор" с cyborg"ом (поищи по форуму), и как ты думаешь, кто выйграл? ;)
http://xproger.mirgames.ru/files/bin/X4k.rar - вот тебе 6144 байт (обычный PE без UPX) сжатый COM - 2603 байта...

Зачем же до асма? Достаточно до API спуститься...


 
Darthman ©   (2006-02-04 19:48) [26]

Cash вполне возможно.. ржать не надо. У меня есть похожие, но в меру навороченности (они не только инициализируют) они немного больше. 27Кб тебя устроит? Полноценная игра.


 
Домовенок ©   (2006-02-04 22:55) [27]

> XProger ©   (04.02.06 12:39) [21]
> ДЫк, фокус то в другом! Это одна из задач ставящихся программистом
> перед самим собой, это вызов самому себе! + чем ниже уровень
> программирования - тем лучше понимание сути многих вещенй...


Спору нет.
Но одно дело ставить перед собой второстепенные задачи для разминки... Например, как предложил Cash... Другое дело, когда программист, разрабатывая игру в одиночку, посвящает все свои силы, тому чтобы игра получилась маленькой по своим размерам, в место того чтобы она была интересной.

> Bogdan1024 ©   (04.02.06 13:46) [22]
> Ну, как бы маленький размер способствует скачиваемости.


Согласен, возможно, больше человек скачает маленькую игру... Но фишка то в том, что не важно, сколько человек скачает игру и посмотрит, важно, как надолго эта крохотулька задержится на его винте, как долго он будет играть в очень маленькую по размерам, но не очень интересную игру!? :) То есть лично для меня как для игродела важно не то какая по размеру игра получилась, а насколько она затянула игрока, как долго он в нее будет играть и пройдет ли всю... Думаю, суть ясна. Лично я считаю что настоящий игрок, не пожалеет считанные килобайты или даже мегабайты если игра будет достойной.

А пиписьками мерится можно сколько угодно :)


 
Cash ©   (2006-02-05 07:18) [28]

XProger ©   (04.02.06 18:34) [25]:
Ну я ж выразился по КВН-овски, "так по ржать", то есть мне нафиг не надо
спорить, потаму, что я твою изващенскую личность знаю. Знаю что ты с
модулями DirectX сделаешь, поэтому проблема спора отпала. Так же знаю,
что в стандартной ситуации, с нормальными и полными модулями такое
сделать невозможно. Сколько весит Direct3D8.dcu? А подключить не только
его одного иногда надо. А твои проделки с системными модулями больше
походят на "рукоподобный c++ прекомпилятор" (я бы еще, в шутку, сказал:
"рукоблудный" :)))).

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


 
antonn ©   (2006-02-05 07:25) [29]

XProger ©   (04.02.06 18:34) [25]
http://xproger.mirgames.ru/files/bin/X4k.rar - вот тебе 6144 байт (обычный PE без UPX)

скажем так, для того, чтобы скомпилить на таком размере, нужно подправить некоторые модули... Скомпилированый на D7, без всяких правок, программа весит 18 432 байт.
И к слову - то, что я скомпилировал программой я не назову, никакого функционала она не несет.
с такм же успехом можно и
program X4k;
begin
end.

скомпилить...

ксати, после думов/фар_краев/феаров, я уже не воспринимаю игры как "отличные", если они в дистрибутиве весят меньше 1CD (я про полные версии, не про демки игр). Обычно мое восприятие меня не обманывает.
По поводу размера exe"шников - у меня винт большой, мне как то пофиг, занимает exe игры 10Кб или 2Мб. Думаю не у одного меня такое же мнение, не вижу осмысленной экономии места... Почему то размер в оперативной памяти никто не смотрит... и сравнить, сколько игра там займет после упаковки upx"ом (камень в тех, кто предлагает все и вся зажать упаковщиками).


 
XProger ©   (2006-02-05 10:47) [30]

antonn, научись пользоваться Delphi, а в частности, подключать модули... ;)


 
Sapersky   (2006-02-05 12:25) [31]

Сколько весит Direct3D8.dcu?

72862 байта :)
Но это не означает, что дельфийский линковщик все эти байты прицепит к exe. Он довольно умный на самом деле - прицепляет только то, что реально используется. Не говоря уже о том, что заголовки DX - это просто описание функций (интерфейсов), а вся функциональность находится в D3D8[9].dll.
Так что впихнуть в 20 кб вывод одного треугольника вполне реально (к заголовкам Clootie прилагается именно такой пример). С другой стороны, мало кому нужен один треугольник...


 
Cash ©   (2006-02-05 12:48) [32]

XProger ©   (05.02.06 10:47) [30]:
ЗЫ: а я знаю как правильно подключать модули!
Надо брать и выдирать из них нужные участки кода и ставить их в свой
модуль. :)))

Sapersky, а я из вредности промолчал про линкер, тем более, что у него
всетаки немного кособокие мозги и иногда он чипляет ваще не нужные
штуки.


 
XProger ©   (2006-02-05 13:15) [33]

Cash, да тут человек не в состоянии System и SysInit прописать, какой ему там до "выдирания" частей... ;)


 
antonn ©   (2006-02-05 14:02) [34]

XProger ©   (05.02.06 10:47) [30]
я к тому, что если даешь ссылку на проект и его выходной размер - надо бы и позабоиться о том, чтобы в комплекте было все для компиляции под этот размер. А то мне еще указывают, что то нужно выпотрошить сначала, но "программу сделал он"... Я просто скомпилил пример по ссылке, ничего не трогая, в итоге не получил указаный размер. Могу так же сказать - "научись сначала программить, а потом выкладывай" :)
насчет того, что это не "программа" - в силе:)


 
XProger ©   (2006-02-05 14:21) [35]

antonn, промолчал - за умного сошёл бы... ;)
http://xproger.mirgames.ru/?id=1&doc=delphi_min
И что такое программа? ;)


 
Cash ©   (2006-02-05 17:33) [36]

Товарищи, товарищи... ну что вы собачитесь?...
лучше сразу стреляйтесь!!!... (с) {из мною ненавистного шоу "К барьеру"}

XProger ©   (05.02.06 14:21) [35]:
Из учебника мною великоуважаемого Виктора Гавриловича Хорошевского
"Архитектура вычислительных систем" делаю вывод, что:
"Программа - суть алгоритм работы вычислительного средства,
направленный на решение осмысленной и представленной задачи, будь то
логическая или математическая формула или их комплекс."
Хм-м-м-м-м... программой всетаки я твои проделки назвать не могу!

Но вот результат минимизации собственного кода, приводящий к
уменьшению избыточных участков повторений или неиспользуемого кода -
да, это и будет оптимизированная программа!

"Экстремизм в жизни уместен, но его пропоганда - нарушение морально-
этических устоев общества!" (и какой буржуйский призидент это сказал?)

Ну, как? трактат пишеварению доступен? :)))


 
XProger ©   (2006-02-05 18:03) [37]

Cash,
промолчал - за умного сошёл бы... ;)
"осмысленная задача" - написать 4k intro посредством визуализации некоторых математических функций...
Математики в её решении достаточно, так что перечитай своего многоуважаемого ;)
Кстати, вот http://www.pouet.net/prod.php?which=17447&howmanycomments=25&page=0 - нарочно увеличенная до 4096 байт версия программы ;)


 
antonn ©   (2006-02-05 18:17) [38]

XProger ©   (05.02.06 14:21) [35]
http://xproger.mirgames.ru/?id=1&doc=delphi_min

скачал оттуда delphi_min, компильнул, получил хз что в 14,5Кб (всякими upx"ами прошу мне зубы не заговаривать:)). Если честно, так и не понял, нафига этот архив вообще нужен, и те модули измененные, в которых и нет нифига. Толку от них никакого.

> И что такое программа? ;)

я специально в кавычках писал:)
"Программа - суть алгоритм работы вычислительного средства,
направленный на решение осмысленной и представленной задачи, будь то
логическая или математическая формула или их комплекс."

Те демосцены, что были в X4k.dpr, кроме как за скинсейвер не пойдут, и то, даже до него еще далековато, так что не имеют практического применения. "Просто попантовацца" :) Ну не пойму, где тут гордость, если этим нельзя пользоваться для решения каких то задач, даже есть оно недобльшое по размеру:)
кстати, в оперативке эта "гордость" скушала 15Мб, у меня reget менее требовательный, а уж функционал у него куда шире (я бы даже сказал - офуительно гигантский:))

XProger ©   (05.02.06 18:03) [37]
"осмысленная задача" - написать 4k intro посредством визуализации некоторых математических функций...

о да-а-а, задача сверх нужная ):


 
XProger ©   (2006-02-05 18:22) [39]

antonn, я вижу, ты в очередной раз гордишься своим незнанием Delphi? :) Постыдился бы...


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

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

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



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

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

Наверх





Память: 0.57 MB
Время: 0.048 c
2-1164121784
kirillrepin
2006-11-21 18:09
2006.12.10
как во внутрь процедуры вставить задержку


8-1146034876
Devider
2006-04-26 11:01
2006.12.10
Изменение размера изображения при видеозахвате.


15-1163956742
vasIzmax
2006-11-19 20:19
2006.12.10
Не нарушая пункт 6. Please!


2-1164360390
susergey
2006-11-24 12:26
2006.12.10
запуск программы


6-1153729806
KyRo
2006-07-24 12:30
2006.12.10
Возникает ошибка при коннекте





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