Оптимизация игры
|
|
Eshford | Дата: Воскресенье, 30 Января 2011, 16:26 | Сообщение # 1 |
Богиня Гамака ♥
Сейчас нет на сайте
| И снова здравствуйте. Создаю одну забавную игрушку. Сделал 4 комнаты с предысторией и 5 уровней. Весь исходник в коде. Очень редко встречаются действия с кнопками. И игра весит 12 мб. в EXE и 10 мб. в GMK. А я ещё собираюсь сделать с десяток уровней. Что мне делать и как "облегчить" вес игры. И ещё... Дабы не создавать отдельную тему объясните пожалуйста некоторые параметры в глобальных настройках игры. А именно: Интерполяция цветов между пикселями Мараторий игры, когда форма теряет фокус Использовать синхронизацию для избежания рывков Приоритет процесса игры (Норма - Высокий - Очень высокий) Идентификатор (Число) Обращаться с неицилизированными переменными как с 0
|
|
| |
Riketta | Дата: Воскресенье, 30 Января 2011, 16:40 | Сообщение # 2 |
Strategist
Сейчас нет на сайте
| Вынеси игровые ресурсы наружу.
Fougerite - Rust Server OpenSource API TerraDev - Terraria OpenSource Hack
|
|
| |
stalkerya | Дата: Воскресенье, 30 Января 2011, 16:49 | Сообщение # 3 |
Пользователь Blender 2.5
Сейчас нет на сайте
| Naruto-63, Если у тебя игра использует фоны, то убери галочку с Draw background color. Также используй как можно меньше анимированных спрайтов, ибо они занимают много памяти. Большие звуки тоже занимают много памяти, гамак их плохо сжимает, используй лучше *.midi . И еще не используй много кодов в событии шага (step) и рисования(draw). Если игра долго загружается, то закинь все ресурсы в отдельную папку и загружай оттуда. Добавлено (30.01.2011, 16:49) --------------------------------------------- P.S Не используй большие изображения.
Бросила девушка после того, как узнала, что я перешел с гм на Construct.
Сообщение отредактировал stalkerya - Воскресенье, 30 Января 2011, 16:44 |
|
| |
Eshford | Дата: Воскресенье, 30 Января 2011, 16:53 | Сообщение # 4 |
Богиня Гамака ♥
Сейчас нет на сайте
| Quote (stalkerya) P.S Не используй большие изображения. Наверно в этом проблемма, так как мои бэкграунды уровней 2000х600 или 4000х600
|
|
| |
Made_In_USSR | Дата: Воскресенье, 30 Января 2011, 17:03 | Сообщение # 5 |
заслуженный участник
Сейчас нет на сайте
| Quote (Naruto-63) Интерполяция цветов между пикселями Это особый метод сглаживания пикселей. При масштабировании изображения можно увидеть "пикселизацию", тоесть отдельные пиксели становятся либо отчетливо видны, либо пропадают вовсе. Чтобы избежать таких вещей программа использует алгоритм склаживания через смешивание цветов соседних пикселей. Если у тебя два соседних пикселя скажем черного и белого цвета, то интерполированный пиксель будет суммой цветов черного и белого. Для примера при увеличении картинки 1х2 пикселя на 50% получится картинка 1х3 пикселя, в которой третий (средний) пиксель будет серым. То же самое только в более сложном варианте применяется для сглаживания массивов пикселей. Quote (Naruto-63) Мараторий игры, когда форма теряет фокус Точно не скажу, но помоему это значит что когда окно игры не активно, все процессы в ней останавливаются до момента, когда окно снова станет активным. Quote (Naruto-63) Использовать синхронизацию для избежания рывков Тоже не уверен, но помоему это что-то вроде z-буффера. Quote (Naruto-63) Приоритет процесса игры (Норма - Высокий - Очень высокий) Приоритет процесса это понятие которое определяет, как часто данный процесс, по сравнению с другими процессами, стоящими в очереди на выполнение процессора, будет исполняться процессором. Quote (Naruto-63) Идентификатор (Число) Да черт его знает Quote (Naruto-63) Обращаться с неицилизированными переменными как с 0 Ты можешь обьявить переменную скажем var a, b, с и т.д, но как ты понимаешь значения такая переменная не имеет и считается неинициализированной. Если установить флажок, то программа автоматически присваивает таким переменным значение 0
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
Сообщение отредактировал Made_In_USSR - Воскресенье, 30 Января 2011, 17:23 |
|
| |
Eshford | Дата: Воскресенье, 30 Января 2011, 17:05 | Сообщение # 6 |
Богиня Гамака ♥
Сейчас нет на сайте
| Made_In_USSR, Спасибо. только что такое z-буффер?
|
|
| |
Made_In_USSR | Дата: Воскресенье, 30 Января 2011, 17:16 | Сообщение # 7 |
заслуженный участник
Сейчас нет на сайте
| Пардон, промашка вышла. Не z-буффер а графический буффер. Это буффер в который отсылается отренедренный кадр перед выводом на экран.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
Eshford | Дата: Воскресенье, 30 Января 2011, 17:22 | Сообщение # 8 |
Богиня Гамака ♥
Сейчас нет на сайте
| Quote (Made_In_USSR) Это буффер в который отсылается отренедренный кадр перед выводом на экран.
|
|
| |
Made_In_USSR | Дата: Воскресенье, 30 Января 2011, 17:28 | Сообщение # 9 |
заслуженный участник
Сейчас нет на сайте
| Ну скажем твой движок может построить 34 кадра в секунду, а частота графического адаптера 60 герц (60 кадров выстраиваются построчно в секунду). Получается чтобы вывести 34 кадра нужно 2 с лишним секунды а значит некоторые кадры будут либо пропадать, либо в теории должны выводиться смежно с другими в один момент времени(в теории потому что на самом деле лишние кадры опускаются). Поетому эти 4 кадра держатся в графическом буффере до момента когда их можно будет вывести полностью. Ну как то так. Я сам не очень хорошо осведомлен в этом вопросе.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
NeZnayu | Дата: Воскресенье, 30 Января 2011, 17:33 | Сообщение # 10 |
__танцуй!__
Сейчас нет на сайте
| 1) Переконвертируй все фоны в формат jpeg. 2) Вынеси их за пределы игры и загружай только тогда когда нужно Quote (Naruto-63) Интерполяция цветов между пикселями Значит соседние пикселы, содержащие разную информацию о цвете - будут смешаны. С включенной интерполяцией картинка выглядит более гладкой, однако это может съедать системные ресурсы (вроде не сильно) Quote (Naruto-63) Мараторий игры, когда форма теряет фокус Блин, кто это переводил? Какой нафиг мараторий?)) Этот пункт определяет ставить ли игру "на паузу", если пользователь переключился на другое окно. Quote (Naruto-63) Использовать синхронизацию для избежания рывков Вертикальная синхронизация изображения - опять же влияет на приятность глазу и жрет ресурсы. Quote (Naruto-63) Приоритет процесса игры (Норма - Высокий - Очень высокий) Насколько игра приоритетна в памяти винды (т.е. чем выше приоритет - тем больше памяти будет выделено игре и тем меньше остальным программам) - настоятеьно советую не менять этот параметр! Quote (Naruto-63) Идентификатор (Число) ID игры - у каждой игры свой. Quote (Naruto-63) Обращаться с неицилизированными переменными как с 0 Если отмечена эта галочка - гм перестанет показывать ошибку, если переменная не объявлена, вместо этого он объявит ее сам и сделает равной нулю.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
GECK | Дата: Воскресенье, 30 Января 2011, 17:37 | Сообщение # 11 |
заслуженный участник
Сейчас нет на сайте
| Quote (Naruto-63) Приоритет процесса игры (Норма - Высокий - Очень высокий) Ну это просто - количество процессорного времени, уделяемого игре. Выше приоритет - выше производительность. Quote (Naruto-63) Обращаться с неицилизированными переменными как с 0 При объявлении переменной присваивать ей ноль. Не?Добавлено (30.01.2011, 17:37) --------------------------------------------- Опять не успел)
Всё гениальное просто. И хреново работает.
|
|
| |
Eshford | Дата: Воскресенье, 30 Января 2011, 17:43 | Сообщение # 12 |
Богиня Гамака ♥
Сейчас нет на сайте
| Made_In_USSR, GECK, спасибо NeZnayu, Quote (NeZnayu) Переконвертируй все фоны в формат jpeg. Сделал, но вес не изменился. Quote (NeZnayu) Вынеси их за пределы игры и загружай только тогда когда нужно Слегка не понял... Типа загружать ресурсы из папки с игрой?
|
|
| |
|
Made_In_USSR | Дата: Воскресенье, 30 Января 2011, 17:48 | Сообщение # 14 |
заслуженный участник
Сейчас нет на сайте
| Quote (Naruto-63) Сделал, но вес не изменился. Можно сделать как говорит салат, плюс использовать ресурсы из архивов. Для этого помнится есть специальные библиотеки.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
Eshford | Дата: Воскресенье, 30 Января 2011, 17:53 | Сообщение # 15 |
Богиня Гамака ♥
Сейчас нет на сайте
| Made_In_USSR, NeZnayu, Вобщем понятно. А что за INI файл и можно ли в нём хранить ресурсы? Просто нехочеться чтобы ктото вытащил мои бэки...
|
|
| |
GameMix | Дата: Воскресенье, 30 Января 2011, 17:55 | Сообщение # 16 |
старожил
Сейчас нет на сайте
| Quote (Naruto-63) Идентификатор (Число) Эта функция очень полезна, когда создаешь новую версию мультиплеерной игры и хочешь, чтобы новая игра не замечала в сети сеансы старой версии. Для этого достаточно поставить разные идентификаторы этим версиям.Добавлено (30.01.2011, 17:55) --------------------------------------------- Naruto-63, Нет. INI предназначен для сохранения настроек игры, чтобы они сохранялись при выходе из игры.
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Made_In_USSR | Дата: Воскресенье, 30 Января 2011, 17:57 | Сообщение # 17 |
заслуженный участник
Сейчас нет на сайте
| Quote (Naruto-63) А что за INI файл и можно ли в нём хранить ресурсы? Просто нехочеться чтобы ктото вытащил мои бэки... У ини файлов своя структура и они предназначены для хранения числовой и строковой информации. В основном они используются как файлы настройки. Это не архивы, в них нельзя положить ресурсы.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
Eshford | Дата: Воскресенье, 30 Января 2011, 17:59 | Сообщение # 18 |
Богиня Гамака ♥
Сейчас нет на сайте
| Quote (аТнОтХоАн) Нет. INI предназначен для сохранения настроек игры, чтобы они сохранялись при выходе из игры. Жаль а подскажите код для внедрение бэкграундов из сторонней папки и куда его лучше ставить? В код комнаты или создавать отдельный объект?Добавлено (30.01.2011, 17:59) --------------------------------------------- Made_In_USSR,
|
|
| |
Made_In_USSR | Дата: Воскресенье, 30 Января 2011, 18:01 | Сообщение # 19 |
заслуженный участник
Сейчас нет на сайте
| апдейтед: Коммерческие игры и те не могут бороться с потрошением своих ресурс паков а ты хочешь этого от гамака? Нет, разве что ты запихнешь их в экзешник. Но я уверен и в этом случае их можно будет извлечь Добавлено (30.01.2011, 18:01) --------------------------------------------- Я умудряюсь писать и работать одновременно. Как видишь получается не очень
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
NeZnayu | Дата: Воскресенье, 30 Января 2011, 18:03 | Сообщение # 20 |
__танцуй!__
Сейчас нет на сайте
| background_replace() background_add() Про защиту ресурсов я уже создавал 2 темы, если надо - могу дать ссылки.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |