Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.04.2012, 14:54   #1
murzilka6002
Пользователь
 
Регистрация: 11.11.2011
Сообщений: 20
По умолчанию Принцип загрузки игровых уровней

ВОпрос, как правильно сделать загрузку игровых уровней, какие основные способы используют для этого.
Я реализовывал это через цыкл который проверял указанную папку с файлами игровых уровней, которые имели одинаковое название, но свой порядковый номер. В результате переход на высший или низший уровень производился загрузкой файла с следующим или предудущим порядковым номером.
Это я так делал, всё работает норм. Но хотелось узнать как правильно это делаеться, сама логика.
murzilka6002 вне форума Ответить с цитированием
Старый 23.04.2012, 15:04   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Не понял вопроса. Логика такая: грузим необходимые данные с диска. А как организовать хранение этих данных - это уже ваше дело. Желательно так, чтобы загрузка проходила как можно быстрее.
Arigato вне форума Ответить с цитированием
Старый 23.04.2012, 16:27   #3
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от murzilka6002 Посмотреть сообщение
ВОпрос, как правильно сделать загрузку игровых уровней, какие основные способы используют для этого.
Я реализовывал это через цикл который проверял указанную папку с файлами игровых уровней, которые имели одинаковое название, но свой порядковый номер. В результате переход на высший или низший уровень производился загрузкой файла с следующим или предыдущим порядковым номером.
Это я так делал, всё работает норм. Но хотелось узнать как правильно это делается, сама логика.
Ответ в вопросе, так и будет правильно. Основная проблема с загрузкой ресурсов, они должны быть динамически подгружаемыми, но и выгружать их без причин не следует.

Вот была у вас карта некоего уровня. Случается переход на следующий, подобный. Производится загрузка скелета карты с файла. Это происходит моментом, а далее нужна обработка скелета, анализ уже загруженных ресурсов, т.е. что уже есть, чего нет, и что лишнее. То, что есть и нужно и в том уровне, индексируется, чего нет - подгружается, а то, что лишнее - выгружается, дабы экономить память.

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

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

А - Основной уровень
А1 - Подуровень первого порядка в уровне А
А2 - Подуровень первого порядка в уровне А
А11 - Подуровень второго порядка в подуровне А1
А21 - Подуровень второго порядка в подуровне А2
А111 - Подуровень третьего порядка в подуровне А11
А112 - Подуровень третьего порядка в подуровне А11
А211 - Подуровень третьего порядка в подуровне А21
А212 - Подуровень третьего порядка в подуровне А21

...это дерево уровней, причем движок игры без проблем сам сможет соединить номерки в имя файла и загрузить его.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 27.04.2012, 14:56   #4
murzilka6002
Пользователь
 
Регистрация: 11.11.2011
Сообщений: 20
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчет уровней в бинарном дереве holi10 Общие вопросы C/C++ 0 01.06.2011 18:22
Принцип работы менеджеров загрузки ОС. S_Yevgeniy Операционные системы общие вопросы 2 02.09.2010 11:03
Задать свойства уровней Polotenchik Microsoft Office Word 2 25.05.2010 14:44
Принцип загрузки локаций в ОЗУ anyx Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 22.09.2009 21:08