Постепенная загрузка ресурсов - Форум Game Maker. Разработка игр.
Здравствуй Гость | Перейти на сайт

Главная | Форум | Регистрация | Войти
gmaker.net ;) [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Simple Mode) » Проблема - решение. GML и прочее. » Постепенная загрузка ресурсов
Постепенная загрузка ресурсов
vitaly5000 Дата: Четверг, 16.02.2012, 23:44 | Сообщение # 1
Разговорчивый
Группа: Пользователь
Сообщений: 146
Статус: Offline
Хочу попробовать сделать игру без полноценной загрузки в начале, с маленькими подгруздками во время игры. Идея такая: Жанр игры РТС, строим базу скажем барак и во время строительства, подгружаем потихоньку звуки и спрайты солдат которые в дальнейшем будут закупаться в этом бараке.
Ну в начале загрузку всё равно придется сделать, музыку, текстуры. Но просто у меня планируется тьма тьмущая спрайтов, и кадров я не жалею
Может уже пробовал кто-то нечто подобное?
 
Ang3L Дата: Пятница, 17.02.2012, 08:15 | Сообщение # 2
Каждый 5й пост мой
Группа: Админы
Сообщений: 2741
Статус: Offline
Тема интересная, но боюсь, мало актуальная для ГМ и его маленьких проектов.

Тут есть 2 проблемы.
1) Когда нужно подгружать? Ведь мы не можем подгружать ресурсы когда событие (например, начало строительства) уже началось. Нужно предугадывать события, что довольно нетривиальная задача. Возможно, загружать по номиналу. Т.е. основное здание и те что активны изначально, загружать в начале уровня, а остальные по минимально возможному времени или подгрузка насильно, если используется чит (для дебага или для веселья). Так же нужно определиться со всеми остальными событиями.
2) Насколько быстро подгружать. Допустим, так совпало что загружаются сразу несколько ресурсов, критическое для того чтобы повесить игру на пару секунд. Тут придется параллелить загрузку, что тоже не просто. В таком случае мы просто увидим подгрузку ресурсов. На форуме была такая дллка, но вряд ли кто её использовал так плотно.

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


Blogpost
 
Qvant Дата: Пятница, 17.02.2012, 10:24 | Сообщение # 3
Разговорчивый
Группа: Пользователь
Сообщений: 114
Статус: Offline
лучше делать так уровень , что в нём будет встречаться только часть графики и её надо подгружать вначале уровня.
Если подгружать во время игры стандартными средствами то будут тормоза в самой игре ...

Dll для паралельной подгрузки видел в проекте "доминанты" , сам не пробовал, да и наверняка на сайте YoYo там её можно поискать.
 
SaintHeiser Дата: Пятница, 17.02.2012, 11:12 | Сообщение # 4
Болтун
Группа: Проверенные
Сообщений: 190
Статус: Offline
Quote
Хочу попробовать сделать игру без полноценной загрузки в начале, с маленькими подгруздками во время игры. Идея такая: Жанр игры РТС, строим базу скажем барак и во время строительства, подгружаем потихоньку звуки и спрайты солдат которые в дальнейшем будут закупаться в этом бараке.

Это утопическая идея. Тем более на ГМ.
Ты сперва сделай нормальную игру, небольшую где всё сразу грузится.
Если ты не можешь сделать маленькую игру, с чего это ты взял, что сможешь сделать сложную? Ты максимум сделаешь такой барак, где строятся солдаты и подгружается музыка, а потом забьёшь.
Quote
Но просто у меня планируется тьма тьмущая спрайтов, и кадров я не жалею

ёпт. нахрена? Ты пробовал отрисовать граф оформление небольшой игры?
Можешь смеяться сколько хочешь, но даже в моей с виду простой игре Danger! Energy из полугода:
месяц примерно на программирование
полтора - на уровни
а остальное на графику, причём я особо не анимировал.
Хотя чего там казалось бы такого особенного: пара спрайтов башенок, стен, пара бэкграундов, интерфейс да катсцены. Но даже здесь - это дохрена.

Выбрось из головы чепуху про ММО, реалтайм стратегии и т.д. Будь проще. Иначе ты только зря потратишь своё время. Я имею в виду, что ты мог бы потратить его с гораздо большей пользой нежели делать то, что всё равно не сделаешь. У тебя просто нет шансов. Ни одного.


все формы неприязни ко мне просьба выражать в суицидальной форме
 
Qvant Дата: Пятница, 17.02.2012, 11:57 | Сообщение # 5
Разговорчивый
Группа: Пользователь
Сообщений: 114
Статус: Offline
Quote (SaintHeiser)
Ты сперва сделай нормальную игру, небольшую где всё сразу грузится.

а вот у меня собрано 100Mб графики для игры , в экзешник и грузить всё сразу не вариант , если используется одновременно только маленькая часть.
Если в обычном exe подгружать легко если извесно что будит использоваться на уровне , то в ШТМЛ надо ещё поломать голову как сделать лучше.

Quote (SaintHeiser)
У тебя просто нет шансов. Ни одного.

Вот я за 7 лет незакончил ни одного проекта , мне тоже всё равно не закончить простую или не закончить сложную игру - если результам один и тот же biggrin
 
SaintHeiser Дата: Пятница, 17.02.2012, 12:38 | Сообщение # 6
Болтун
Группа: Проверенные
Сообщений: 190
Статус: Offline
Quote
а вот у меня собрано 100Mб графики для игры

Как же это так вышло? Сам делал? jpeg, png?
И скорее всего из этих 100 мегабайт половина просто нафиг не нужно.
А если и так, то легко распараллелить работу при помощи менеджера ресурсов. Который при старте уровня подгружает часть из файлов, а при завершении уровня выгружает эту же часть из памяти.
Ну и игра со 100мб графики, очевидно, слишком сложна для html5. Я вообще не понимаю нафиг этот html5 вам сдался. Нужен html5 - берите инструменты для этого заточенные. Либо делайте игры, которые позволяет создавать используемый инструмент. 100 метров графики - много для html5 в принципе. Либо её просто много, либо она просто не сжата. В последнем случае - позор.

Quote
Вот я за 7 лет незакончил ни одного проекта

Плохо. Собственно что ещё раз говорит а нужны ли тебе те 100мб графики? Если ты за семь лет нихрена не сделал - нах ты такой нужен ваще в гэймдеве?

Quote
не закончить простую или не закончить сложную игру - если результам один и тот же biggrin

Ах вот оно что. Если для тебя результатом является не закончить игру, то бишь "завалить проект", то поздравляю! Ты достиг больших успехов за 7 лет! Из всех проектов ты завалил все. Но спешу так же и огорчить - таких как ты миллионы, поэтому ты не сделал ничего выдающегося. Ты заваливаешь их не потому, что их невозможно это сделать, а потому что ты ставишь себе заведомо ложную цель. Если поставить себе цель и ей следовать - можно очень крутые вещи делать. Либо не делать ничего, как в твоём случае.

Поэтому советовал бы я тебе не портить дальше уже запорченый русский игрострой своими "умными" советами. А то знаешь ли, такие настроения демотивируют. Демотивации и без этого с лихвой хватает.


все формы неприязни ко мне просьба выражать в суицидальной форме
 
Qvant Дата: Пятница, 17.02.2012, 13:16 | Сообщение # 7
Разговорчивый
Группа: Пользователь
Сообщений: 114
Статус: Offline
Quote (SaintHeiser)
Как же это так вышло? Сам делал? jpeg, png? И скорее всего из этих 100 мегабайт половина просто нафиг не нужно.

Да я сам знаю что много и придётся потом половину викинуть ... пусть лучше будит лишнее чем нехватит потом biggrin
С спрайты с прозрачностью - png32 (они и занимает основное место) , без прозрачностью конечно jpeg с компрессией 60... всего около 1000 спрайтов
Например 100 тайлов 512*512 - 10Мб , 400 зданий - ещё 10Мб ... в сумме и выходит по 100


Quote (SaintHeiser)
Если ты за семь лет нихрена не сделал - нах ты такой нужен ваще в гэймдеве?

в гэймдеве года 2 из которых год потратил на собирание графики для проекта а год на изучение ГМ... до этого делал проект не относящийся к геймдеву 5 лет (я его 5 раз начинал сначала и бросил когда понял что кроме меня он никому ненужен)

Quote (SaintHeiser)
Ах вот оно что. Если для тебя результатом является не закончить игру, то бишь "завалить проект", то поздравляю!

я реалист - для законченой игры даже самой простой надо иметь талант , время , и знания и умения в различных областях от рисования до программирования и 3D моделирования - если чегото одного нет то будит УГ а не законченый проект ...

Quote (SaintHeiser)
ты ставишь себе заведомо ложную цель.

Нет! для меня главное не результат а сам процесс , лепить убогие казуалки за $ для дебилов или делать ММOPПГ это не для меня ...
Я xочу сделать хоть не большую но похожую на "нормальную" игру

Добавлено (17.02.2012, 13:16)
---------------------------------------------
Quote (SaintHeiser)
Ну и игра со 100мб графики, очевидно, слишком сложна для html5

одновременно загружается маленькая часть графики и он нормально это "съедает" для этого как раз и тоже нужен загрузчик как раз по этой теме , чтоб не грузить всё 100M перед каждым запуском

Quote (SaintHeiser)
вообще не понимаю нафиг этот html5 вам сдался.

Он уже довольно хороший инструмент для создания игр в браузере .
Единственное , там многое надо делать не стандартными способами - тогда он нормально держит до 1000-500 спрайтов одновременно с ФПС 30
Прикрепления: 4071199.jpg(55Kb)


Сообщение отредактировал Qvant - Пятница, 17.02.2012, 13:18
 
SaintHeiser Дата: Пятница, 17.02.2012, 17:32 | Сообщение # 8
Болтун
Группа: Проверенные
Сообщений: 190
Статус: Offline
Quote
в гэймдеве года 2 из которых год потратил на собирание графики для проекта а год на изучение ГМ... до этого делал проект не относящийся к геймдеву 5 лет (я его 5 раз начинал сначала и бросил когда понял что кроме меня он никому ненужен)

Чтобы твои проекты были кому-то нужны - тебе нужно хотя бы несколько сделать. Опять же - будь проще.

Quote
я реалист - для законченой игры даже самой простой надо иметь талант , время , и знания и умения в различных областях от рисования до программирования и 3D моделирования - если чегото одного нет то будит УГ а не законченый проект ...

Что мешает тебе заняться разными областями? Не говори только мне что у тебя нет природного таланта, что тебе это не дано. У меня слуха музыкального никогда не было. Я его сам развил. Konjak, Derek Yu - хреновые программисты, но это не помешало им изучить программирование хотя бы на базовом уровне и сделать игры известные на весь мир. Если не хочешь чтобы ты и окружающие считали тебя убожеством - нужно развиваться. Талант у всех есть. Не каждый хочет им воспользоваться.

Quote
Нет! для меня главное не результат а сам процесс , лепить убогие казуалки за $ для дебилов или делать ММOPПГ это не для меня ...
Я xочу сделать хоть не большую но похожую на "нормальную" игру

Похвально, конечно что тебя не интересуют казуалки за $ и мморпг. Но что значит нормальная игра? Это понятие чисто субъективное.
Пока ты не представишь что есть нормальная игра - об успехе не идёт речь.
Если ты не видишь очевидных вещей... процесс - это не цель. Цель - то что можно описать, какое-то состояние, результат, к которому нужно прийти. Причём можно однозначно сказать когда цель достигнута а когда - нет. Пока ты будешь ставить себе ложные псевдоцели - успеха не будет. От процесса, да испытываешь много удовольствия. Но поверь, от релиза удовольствия испытываешь ещё больше. Гораздо больше. Даже от небольшого. Поэтому вот эти вот слова "мне важен процесс а не результат" можешь засунуть себе в задницу, если ты собрался делать игры, а не как ты выразился УГ. При этом кроме ММО и казулаок за баксы есть множество вариантов разработки игры. Как вариант авторские инди-игры.

Quote
одновременно загружается маленькая часть графики и он нормально это "съедает" для этого как раз и тоже нужен загрузчик как раз по этой теме , чтоб не грузить всё 100M перед каждым запуском

Я из темы понял что речь о том, как сделать чтобы звуки и спрайты подгружались пока чувачки строятся, а не к началу каждой миссии. Я не понимаю чего вы добиваетесь этим. Уровни удобно делить именно на уровни. Не только для разработчика но и для игрока. Так проще будет ориентироваться в вашем замысле. А делать динамическую загрузку ресурсов потоком в ГМ - всё равно что стрелять из пушки по воробьям.

Quote
Он уже довольно хороший инструмент для создания игр в браузере .

Я вот не понял чего ты хочешь. Нахрена тебе этот html5 сдался, если ты не хочешь делать казуалки за баксы? Что значит нормальная игра? В браузерках перимущественно игры для быдла. Всё что интересно, и всё то что я бы назвал нормальной игрой - выходят на ПК без всяких браузеров и других ОС. Ты же хочешь сделать нормальную игру. Зачем тебе головняки с производиельностью на html5, android, iOS?Тебе что нужно то от разработки игр вообще? Если ты хочешь, чтобы твои игры были популярными, ты всё равно БУДЕШЬ рано или поздно делать казуальную мелочь за баксы. Если хочешь сделать интересную авторскую игру - тогда и не задуряйся на платформах.


все формы неприязни ко мне просьба выражать в суицидальной форме
 
Qvant Дата: Пятница, 17.02.2012, 22:51 | Сообщение # 9
Разговорчивый
Группа: Пользователь
Сообщений: 114
Статус: Offline
что то от темы совсем отдалились ...вобщем моё мнение такое lдля загрузки ресурсов:
Quote (Qvant)
лучше делать так уровень , что в нём будет встречаться только часть графики и её надо подгружать вначале уровня.
 
vitaly5000 Дата: Пятница, 17.02.2012, 23:44 | Сообщение # 10
Разговорчивый
Группа: Пользователь
Сообщений: 146
Статус: Offline
Quote (SaintHeiser)
Если ты не можешь сделать маленькую игру, с чего это ты взял, что сможешь сделать сложную?

А с чего ты взял что я не могу? у меня есть законченные проекты, штук 5 ! Если их нет на этом форуме не значит что их нет!!!

Quote (SaintHeiser)
Ты максимум сделаешь такой барак, где строятся солдаты и подгружается музыка, а потом забьёшь.

Ты пишешь как будто ты меня знаешь! Не нужно чесать всех под одну гребенку, все люди разные!!! Я к твоему сведению уже сделал ГОРАААЗДО больше того максимума что ты мне определил...
Уже сделаны почти полностью 2 расы в общем более 20 юнитов, базы, пушки, короче всё. Я сейчас на стадии написания ИИ. Ну и на по следок осталось самое вкусненькое Рисование спрайтов

Quote (SaintHeiser)

Quote (vitaly5000)
Но просто у меня планируется тьма тьмущая спрайтов, и кадров я не жалею

ёпт. нахрена?

Нахрена? ответ прост МНЕ ТАК ЗАХОТЕЛОСЬ!!! Если я по этому поводу захочу услышать чье то мнение я создам тему и назову её примерно так:

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

Quote (SaintHeiser)
Выбрось из головы чепуху про ММО, реалтайм стратегии и т.д. Будь проще. Иначе ты только зря потратишь своё время. Я имею в виду, что ты мог бы потратить его с гораздо большей пользой нежели делать то, что всё равно не сделаешь. У тебя просто нет шансов. Ни одного.


Поверь если захочу сделать ММО, то я сделаю!!! но я не захочу.
Вот моё начало разработки игры, уже давно лежит в песочнице. Это так к сведенью http://forum.gmaker.su/forum/11-4881-1

Quote (Qvant)
Я из темы понял что речь о том, как сделать чтобы звуки и спрайты подгружались пока чувачки строятся, а не к началу каждой миссии. Я не понимаю чего вы добиваетесь этим. Уровни удобно делить именно на уровни. Не только для разработчика но и для игрока. Так проще будет ориентироваться в вашем замысле. А делать динамическую загрузку ресурсов потоком в ГМ - всё равно что стрелять из пушки по воробьям.

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

Quote (Qvant)
лучше делать так уровень , что в нём будет встречаться только часть графики и её надо подгружать вначале уровня.

Это стратегия, а значит если в бою участвуют сразу обе расы, то нужно загружать ВСЮ графику и ВСЕ звуки.
Этим способом который я описал в теме мы ограничиваем загрузку тех ресурсов которые игрок не использует. Скажем если я прошел уровень и не делал самолёты то они не будут загружены.
Но как я сказал выше я дилетант в этой теме может это того и не стоит...
 
DanielC Дата: Суббота, 18.02.2012, 04:15 | Сообщение # 11
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
Я бы задумался о подобном, если бы игра начала выходить за пределы +256мб. оперативы после запуска. Если бы нужно было реализовать подобное, я бы загружал ресурсы по мере создания в "Create Event" в глобальные переменные или массивы вроде "gloval.spr_aircraft[1]", а выгрузку наверное засунул в "Room end Event". Кстати с выгрузкой звуков у гамака есть проблемы, в оперативе оседает примерно 1/3 размера звука или музыки, не смотря на различные dll-ки.


Музыка
 
SaintHeiser Дата: Суббота, 18.02.2012, 06:01 | Сообщение # 12
Болтун
Группа: Проверенные
Сообщений: 190
Статус: Offline
Quote
Уже сделаны почти полностью 2 расы в общем более 20 юнитов, базы, пушки, короче всё. Я сейчас на стадии написания ИИ. Ну и на по следок осталось самое вкусненькое Рисование спрайтов

Ты запорешься на уровнях и баллансе. Помимо звуков, графики и программирования есть дохрена работы, которой кажется что на первый взгляд - нет. Уровни - самая сложная часть и на этом валится 90% проектов.
ИИ в стратегиях - отдельная тема. Чтобы ИИ не был похож на кусок говна нужно изучить много алгоритмов.

Quote
Нахрена? ответ прост МНЕ ТАК ЗАХОТЕЛОСЬ!!! Если я по этому поводу захочу услышать чье то мнение я создам тему и назову её примерно так:

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

Да пожалуйста. Просто у меня то был опыт и я знаю что на анимацию не нужно так много кадров. Иначе всё выглядит как слоупок. И ресурсов зря потратишь. Просто если ты не в курсе, то каждый кадр анимации - картинка, а ГМ в оперативке всё равно хранит картинки несжатые, то бишь бмп. Поэтому вместо 50кб ПНГ на диске, у тебя в оперативке будет мегабайт или даже 2. Вот и делай выводы сам. У тебя есть отличный шанс сэкономить память на кадрах, а ты пытаешься изобрести метод динамической загрузки.

Quote (vitaly5000)
Вот моё начало разработки игры, уже давно лежит в песочнице. Это так к сведенью http://forum.gmaker.su/forum/11-4881-1

Пока что этому до готовой игры далеко. А ты говоришь так, как будто уже сделал почти всё и тебе осталось вот совсем чуть-чуть.

Quote
Это стратегия, а значит если в бою участвуют сразу обе расы, то нужно загружать ВСЮ графику и ВСЕ звуки.
Этим способом который я описал в теме мы ограничиваем загрузку тех ресурсов которые игрок не использует. Скажем если я прошел уровень и не делал самолёты то они не будут загружены.

Нет, динамическая потоковая загрузка ресурсов не стоит того. Рассуждать следует так. У тебя в любой миссии есть максимум ресурсов, которые могут быть загружены. Следует загружать этот максимум сразу. Мы же пытаемся сэкономить память? А в итоге всё равно в памяти оно будет в каком-то колличестве. Более того, динамическая подгрузка требует дополнительные проверки на загрузку ресурсов и выгрузку. То есть это повлияет на производительность и непонятно будет ли выигрыш. Потоковую загрузку имеет смысл делать только в масштабных играх с единым миром. Но и то это решение часто не используется. Насколько я помню в МорроуВинд даже были разграничения на зоны, в которых при переходах ресурсы загружались.
Максимум что можно сделать - оптимизировать. Не знаю как планируется у тебя, но обычно в стратегиях нельзя стоить всё сразу. В этом случае из ограничений можно понять, что никогда не будет построено в этой миссии и соответственно это не загружать.


все формы неприязни ко мне просьба выражать в суицидальной форме
 
SRes Дата: Суббота, 18.02.2012, 12:15 | Сообщение # 13
Каждый 5й пост мой
Группа: Страж
Сообщений: 2526
Статус: Offline
Может хватит разводить срач?

Постепенная загрузка ресурсов встречается не так уж часто в даже больших проектах, игра не стоит свеч, единственная "постепенная" загрузка, которую я могу припомнить - Borderlands, там текстуры вначале загружаются в ужасном качестве, потом подгружаются в обычном, но это бестолково, потому-что кроме этого ничего "постепенного" там нет.
Сама по себе идея не подходит для простых проектов. Тут надо делать, как уже упоминалось в топике, "менеджер ресурсов", штуку, которая будет загружать необходимые ресурсы, и выгружать (если есть надобность) после их использования.


Velociped Inc.
 
vitaly5000 Дата: Суббота, 18.02.2012, 16:11 | Сообщение # 14
Разговорчивый
Группа: Пользователь
Сообщений: 146
Статус: Offline
ясно. значит будет обычная загрузка
 
SaintHeiser Дата: Суббота, 18.02.2012, 18:49 | Сообщение # 15
Болтун
Группа: Проверенные
Сообщений: 190
Статус: Offline
Quote
Постепенная загрузка ресурсов встречается не так уж часто в даже больших проектах, игра не стоит свеч, единственная "постепенная" загрузка, которую я могу припомнить - Borderlands, там текстуры вначале загружаются в ужасном качестве, потом подгружаются в обычном

в UT3 так же. Это возможность движка unreal такая.

Я не уверен, но возможно в fable, morrowwind, oblivion эта динамческая загрузка используется, т.к. там довольно большой мир.


все формы неприязни ко мне просьба выражать в суицидальной форме
 
DanielC Дата: Суббота, 18.02.2012, 20:08 | Сообщение # 16
Хрен заткнешь
Группа: Пользователь
Сообщений: 291
Статус: Offline
Динамичная загрузка существует ещё со времен GTA3 (кстати первые её изобретатели из RockStar, помню статью в каком-то игро-журнале, о новой технологии подгрузки карт на лету) и используется повсеместно, великий и ужастный Skyrim яркий тому пример, там даже в настройках есть так называемая "дальность вида" пока объект не входит в зону видимости существует только его маркер.


Музыка
 
Ang3L Дата: Суббота, 18.02.2012, 21:11 | Сообщение # 17
Каждый 5й пост мой
Группа: Админы
Сообщений: 2741
Статус: Offline
Quote (DanielC)
там даже в настройках есть так называемая "дальность вида" пока объект не входит в зону видимости существует только его маркер.

Не путай божий дар с яйчницей. Загрузить ресурсы извне или создать новый объект в игре это несколько разные вещи. Первое можно загрузить с диска в память, но в игре мы не увидим, а второе можно создать из первого и вставить/уничтожить в любой момент.

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

Попрошу оставить холивары на тему - насколько это нужно. Лучше сделать такую систему и показать её здесь (идея, куски кода), а автор уже сам решит - надо или нет. Попробую потом что-нибудь сообразить, т.к. сам хотел нечто похожее.


Blogpost
 
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Simple Mode) » Проблема - решение. GML и прочее. » Постепенная загрузка ресурсов
Страница 1 из 11
Поиск:



Сообщество Gmaker.SU 2005-2012
Используются технологии uCoz
Простой вход