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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2018, 10:03   #1
WarlikeLaux
Пользователь
 
Регистрация: 27.05.2018
Сообщений: 13
По умолчанию Оптимизация визуальной новеллы

Я делаю визуальную новеллу (интерактивная книга, картинка + текст внизу + музыка), у меня несколько вопросов
1) Я храню все (текстовый файл со сценарием, картинки и музыку) в ресурсах, правильно ли это? Или при большом количеством данных могут быть проблемы? Как лучше делать? Загружать все из ресурсов на время выполнения или хранить на винте?
2) Как можно ускорить выведение картинки в TImage, а то немного подлагивает, ну совсем, боюсь что дальше хуже будет.
3) Из-за скинов AlphaControls (нужен скин один на несколько компонентов + сами компоненты AlphaControls) и у меня приложения весит на 16 мб больше (еще тысяча файлов .dcu с исполняемым файлом создается, ну лан, не тыща, крч 10 штук где-то), не уверен, что все из них используются приложением, так вот, можно как-нибудь удалить ненужную хрень, которую я не использую из AlphaControls, а то я чет уверен что я использую максимум 1 процент, от того что присасывается к моей игре
WarlikeLaux вне форума Ответить с цитированием
Старый 27.05.2018, 12:01   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Зачем это на Дельфи делать? Возьмите любой игровой движок, не придется изобретать велосипеды, не будет никаких подлагиваний TImage и сможете например немного анимации добавить )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 27.05.2018, 12:14   #3
WarlikeLaux
Пользователь
 
Регистрация: 27.05.2018
Сообщений: 13
По умолчанию

Я хочу именно на Delphi, как практика в программировании (знаю, что велосипед, но все же), на движке толком не надо никаких знаний программирования.
WarlikeLaux вне форума Ответить с цитированием
Старый 27.05.2018, 13:04   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,689
По умолчанию

Абстрактные вопросы - абстрактные ответы.
1) Дело вкуса, хотя не лучшая идея. Хранить можно всё и в отдельных файлах.
2) Не успевают прочитаться данные или просто моргание при быстрой смене картинки?
3) Да, что-то убрать можно.Скорее всего вот ту штуку, и ещё пару штук левее от неё. А дцу не нужны конечной программе
eoln вне форума Ответить с цитированием
Старый 27.05.2018, 13:19   #5
WarlikeLaux
Пользователь
 
Регистрация: 27.05.2018
Сообщений: 13
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Абстрактные вопросы - абстрактные ответы.
1) Дело вкуса, хотя не лучшая идея. Хранить можно всё и в отдельных файлах.
2) Не успевают прочитаться данные или просто моргание при быстрой смене картинки?
3) Да, что-то убрать можно.Скорее всего вот ту штуку, и ещё пару штук левее от неё. А дцу не нужны конечной программе
Не успевают прочитаться данные, щас пробую выводить с помощью Graphics32, вроде должно быть быстрее. То, что дцу не нужны конечной программе это я знаю, а насчет ненужных штучек ну это я да, неправильно вопрос сформулировал, но может просто кто работал с AlphaControls и сталкивался с таким.
WarlikeLaux вне форума Ответить с цитированием
Старый 27.05.2018, 13:32   #6
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,689
По умолчанию

Цитата:
Не успевают прочитаться
Цитата:
пробую выводить
Есть проблема, и есть решение... или нет
Кэшировать надо, если чтение не успевает. Если, конечно, причина установлена правильно.
Тут прям как с болезнью, каждый сам выбирает лечение. Если болит спина, то выхода два. Либо к терапевту - он назначит лекарства, либо к хирургу - он позвоночник вырежет
eoln вне форума Ответить с цитированием
Старый 27.05.2018, 18:08   #7
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Есть проблема, и есть решение... или нет
Кэшировать надо, если чтение не успевает. Если, конечно, причина установлена правильно.
Тут прям как с болезнью, каждый сам выбирает лечение. Если болит спина, то выхода два. Либо к терапевту - он назначит лекарства, либо к хирургу - он позвоночник вырежет
Буферы всему голова. Не успевает подгружать - увеличь размер. Несколько килобайт в современных нескольких гигабайтах, как капля в море.

Цитата:
Сообщение от WarlikeLaux Посмотреть сообщение
Не успевают прочитаться данные, щас пробую выводить с помощью Graphics32, вроде должно быть быстрее. То, что дцу не нужны конечной программе это я знаю, а насчет ненужных штучек ну это я да, неправильно вопрос сформулировал, но может просто кто работал с AlphaControls и сталкивался с таким.
Сколько себя помню, из сторонних библиотек конечной программе (.exe файлу) нужно только dll - библиотеки и динамически загружаемые ресурсы - часто форматы .dat, .package и т.п. Их прям в коде видно - не упустишь. Единственное, что .dcu файлы понадобятся при компиляции, если их нет в папке библиотек Delphi(Documents/Dephi/Lib, если правильно помню), так как в них содержится данные Unit-модуля компонента. Но их обычно, как устанавливаешь сразу туда копируешь.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 27.05.2018, 20:07   #8
WarlikeLaux
Пользователь
 
Регистрация: 27.05.2018
Сообщений: 13
По умолчанию

Цитата:
Сообщение от eoln Посмотреть сообщение
Есть проблема, и есть решение... или нет
Кэшировать надо, если чтение не успевает. Если, конечно, причина установлена правильно.
Тут прям как с болезнью, каждый сам выбирает лечение. Если болит спина, то выхода два. Либо к терапевту - он назначит лекарства, либо к хирургу - он позвоночник вырежет
А как кэшировать? Сохранять в MemoryStream? Или через MappedMemoryStream?
WarlikeLaux вне форума Ответить с цитированием
Старый 27.05.2018, 20:08   #9
WarlikeLaux
Пользователь
 
Регистрация: 27.05.2018
Сообщений: 13
По умолчанию

Цитата:
Сообщение от саша40 Посмотреть сообщение
Буферы всему голова. Не успевает подгружать - увеличь размер. Несколько килобайт в современных нескольких гигабайтах, как капля в море.
А как лучше кэшировать? Вопрос выше.
WarlikeLaux вне форума Ответить с цитированием
Старый 28.05.2018, 10:01   #10
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от WarlikeLaux Посмотреть сообщение
А как лучше кэшировать? Вопрос выше.
Функции GetMem, Zeromemory, а так же динамический массив байтов, который в народе и используется как буфер данных. Кэширование - это промежуточная запись часто используемых данных в быструю память(Оперативную или видеопамять). При подгрузке вы считываете данные в эту память, а уже из неё используете. Например, ближайшие объекты(сцены, персонажи, объекты) кэшируем в видеопамять, из неё они используются для создания следующего кадра, по вверх их можно накинуть шейдеры(например, погодные эффекты или физические шейдеры отвечающие за эффекты освещения), уже последующие одновременно загружаются из оперативной памяти, а третьи и вовсе с диска. При этом после использования буферы очищаются и используются заново.
Итог получаем: Минимум 2 буфера видеопамяти(для объектов графики), 2 буфера быстрой памяти и 4 потока динамической подгрузки.
На счёт видеопамяти в создание фреймов(TFrame или как-то так) я не слишком уверен, но на счёт данных в быстрой памяти точно. Так же можно незадолго до использования загрузить в буфер музыку и звуки, а уже при использование воспроизводить их из памяти.
Конечно, организация всех подгрузок строиться по сценарию игры и это практически всегда скрипт. Отсюда в во всех более больших играх и добавляли значок загрузки во время игрового процесса, как информатор для пользователя, что в данный момент игра подгружает объекты и FPS немного упадёт.
На счёт кода - в сети очень часто всплывало использование буферов. И на этом форуме тоже.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка интерактивной визуальной среды ЮляБелка Помощь студентам 16 02.06.2016 04:11
Массив в визуальной среде Eleonor Visual C++ 2 27.04.2013 09:08
шифрование визуальной информации dimassdimass Visual C++ 2 31.01.2013 10:53
Блок схема визуальной программы mkv94 Помощь студентам 1 09.02.2012 04:35
Основы визуальной алгоритмизации Gae4kkka Помощь студентам 3 29.11.2009 14:45