TLDR: Откуда из файлов игры лучше загружать большое количество картинок?
Доброе утро, коллеги!
Я собираюсь приступить к написанию спрайтовой игры (в основном под Windows, в перспективе возможна сильно урезанная версия для Android)
Соответственно, подбираю три вещи:
1. Как хранить спрайты в файлах игры
2. Как хранить спрайты в памяти
3. Как их отображать
В прошлых игрушках файлики лежали кучей в поддиректориях, и оттуда подбирались TImage.Bitmap.LoadFromFile
Спасибо Fire Monkey даже такое "топорное" решение выдавало честные 20 fps. Cейчас хочется сделать "как полагается"
Спрайт имеет размеры в пределах 800х600 (разный у разных персонажей), фоны от 960х540 до около 4000х540 (для платформерных мини-игр)
Спрайтов у каждого персонажа 7200, персонажей 9 - с фонами и иконками под 100 000 картинок
Спрайты персонажа разбиты по смыслу на анимации (7200 = 30 анимаций * 8 направлений * 30 кадров), то есть когда показывает анимацию то нужно только её тридцать кадров
Одновременно на экране могут быть от одного персонажа (масштаб 1-2), до тридцати (масштаб 0,05-0,25)
Если использовать объект TImageList - то скажется ли на производительности если использовать не один объект а дюжину - по одному на персонажа?
Также интересует производительность TGlyph при быстрой смене ссылки на отображаемый спрайт (нужно минимум 10 fps)
И - какие есть варианты откуда загружать эту графику?
Желательно без создания временных файлов во время загрузки (отпадает TZipFile)
Например, удастся ли мне сохранить и при следующем запуске загрузить объект TImageList со всем содержимым?
Дело для меня новое, раньше писал только маленькие игрушки для друзей, сейчас хочется сделать по уму что-то похожее на нормальную игру (хотя и с открытым кодом)
Вопрос
sulion
TLDR: Откуда из файлов игры лучше загружать большое количество картинок?
Доброе утро, коллеги!
Я собираюсь приступить к написанию спрайтовой игры (в основном под Windows, в перспективе возможна сильно урезанная версия для Android)
Соответственно, подбираю три вещи:
1. Как хранить спрайты в файлах игры
2. Как хранить спрайты в памяти
3. Как их отображать
В прошлых игрушках файлики лежали кучей в поддиректориях, и оттуда подбирались TImage.Bitmap.LoadFromFile
Спасибо Fire Monkey даже такое "топорное" решение выдавало честные 20 fps. Cейчас хочется сделать "как полагается"
Спрайт имеет размеры в пределах 800х600 (разный у разных персонажей), фоны от 960х540 до около 4000х540 (для платформерных мини-игр)
Спрайтов у каждого персонажа 7200, персонажей 9 - с фонами и иконками под 100 000 картинок
Спрайты персонажа разбиты по смыслу на анимации (7200 = 30 анимаций * 8 направлений * 30 кадров), то есть когда показывает анимацию то нужно только её тридцать кадров
Одновременно на экране могут быть от одного персонажа (масштаб 1-2), до тридцати (масштаб 0,05-0,25)
Спасибо за обстоятельные материалы по TImageList - как понял, лучше много картинок хранить в нём.
Если использовать объект TImageList - то скажется ли на производительности если использовать не один объект а дюжину - по одному на персонажа?
Также интересует производительность TGlyph при быстрой смене ссылки на отображаемый спрайт (нужно минимум 10 fps)
И - какие есть варианты откуда загружать эту графику?
Желательно без создания временных файлов во время загрузки (отпадает TZipFile)
Например, удастся ли мне сохранить и при следующем запуске загрузить объект TImageList со всем содержимым?
Дело для меня новое, раньше писал только маленькие игрушки для друзей, сейчас хочется сделать по уму что-то похожее на нормальную игру (хотя и с открытым кодом)
Заранее спасибо за советы!
Изменено пользователем sulionСсылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.