Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.03.2018, 00:47
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 21  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
Цитата:
какой объем ресурсов можно прогрузить при старте, чтобы было норм?
Что ты ожидаешь услышать? Что 10мб грузить норм, а 11 уже нельзя? Естественно все ограничено фактическим объемом свободной памяти.
Конечно, если данных там сильно меньше чем весит флэшка, можно и заэмбедить их.
Кстати, еще один плюс подгрузки ресурсов по мере надобности -их можно освободить как только надобность пропадет.

Старый 31.03.2018, 02:15
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 22  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
undefined но ведь есть средняя статистика по памяти, как на андройд так и на пк. Занимается ведь оперативная память, верно? И если например 300мб памяти занято чем-то, это ведь вполне нормально, сейчас на девайсах 1гб+, ну про пк ваще молчу.
Цитата:
Кстати, еще один плюс подгрузки ресурсов по мере надобности -их можно освободить как только надобность пропадет.
Ресурсы могут быть всегда нужны. В том плане, что даже если они используются раз в 2-5 минут, из-за этого мне кажется нет смысла очищать, а потом заново прогружать и делать те же операции, что и при старте загрузки. Ибо это займет время между каждым запросом и ставить таймеры придется на очищение памяти и еще куча ненужного ливака, что займет процессорное время. Про gpu память я еще могу согласиться, что ее желательно очищать, но ресурсы заново распаковывать и прогружать, увы в этом я смысла не вижу.

Старый 31.03.2018, 09:53
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 23  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
Цитата:
Ресурсы могут быть всегда нужны.
Потому я специально указал "когда надобность отпадет". Всегда значит не отпадет никогда. Кароче сильно не рекомендую делать так:
Цитата:
Получается нет смысла все ресурсы, атласы графики например c xml, паковать отдельно и подгружать, когда можно просто заэмбедить?
Не понимаю что неясного в идеи что если что-то не нужно, то грузить это не надо
Это общепринятая практика. Прикинь что бы было если бы старкрафт на старте грузил сразу все ассеты. И держал их всегда в памяти

Старый 31.03.2018, 20:34
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 24  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Что мешает поставить защиту?Не больше 2-3 файлов за раз.Либо прикидывать что реально юзеру может понадобится в данный момент.
Ты это серьезно?
Godwarlock, я не встречал еще ни одной игры, где ассеты были бы хорошо защищены. Как-то попадалась игра, в которой ассеты были зашифрованы, а меня попросили их вытащить. Я даже не стал заморачиваться с поиском ключа. Просто запустил эту игру, дождался когда она загрузится в браузере, и сделал дамп памяти для процесса плеера. Этот дамп потом просто декомпилировал и вытащил все, что было нужно.
Вообще, даже в эйр графику мало кто реально шифрует. В основном попадаются (да я и сам так делаю) файлы уже в формате Bitmap, сохраненные в файл через ужатый методом compress, алгоритмом lzma. И делается это потому, что они в таком виде весят меньше png.
Бывает встречаются файлы зашифрованные XOR'ом. Там просто байты местами поменены. Расшифровывается за несколько минут даже не очень продвинутым хакером.
Подобные темы поднимаются здесь с завидной регулярностью. Шифровать что-то или нет, дело твое. Скорее всего твоя графика нафиг никому не нужна, и ты просто потеряешь время на все эти шифрования.
Но самое главное, для расшифровки требуется много процессорных ресурсов. Дело даже не в памяти. Твоя игра просто подвиснет, на время расшифровки, потому что флеш - однопоточный.
__________________
Ко мне можно и нужно обращаться на ты)

Старый 31.03.2018, 21:03
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 25  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
caseyryan
Цитата:
я не встречал еще ни одной игры, где ассеты были бы хорошо защищены
Суть дела даже не шифровке, а чтобы просто файлы графики не лежали в исходном виде да и всё. Имеет смысл шифровать только пользовательский конфиг, да и то если даже его вскроют, ничего такого в этом не будет, ну и соответственно его дешифровка займет не так много времени.
Цитата:
Но самое главное, для расшифровки требуется много процессорных ресурсов. Дело даже не в памяти. Твоя игра просто подвиснет, на время расшифровки, потому что флеш - однопоточный.
В этом я уже убедился. 11мб дешифруется около 6 секунд, на андройде чуть подольше. А это только 20% всей графики)
Цитата:
В основном попадаются (да я и сам так делаю) файлы уже в формате Bitmap, сохраненные в файл через ужатый методом compress, алгоритмом lzma
Вот этот момент стоит рассмотрения. То есть файлы просто bytearray и лежат в папке не в png, а в любом другом указанном формате. Мне примерно такое и надо. Как например есть atf, простым просмотром изображений в нем ничего не увидишь. Вот это мне и надо. Тогда просто в байтарай всё и фиг с ним. Кстати качество сильно страдает из-за сжатия измой?
Цитата:
алгоритмом lzma. И делается это потому, что они в таком виде весят меньше png.
У меня на сотню байт больше весить стали)


Последний раз редактировалось Godwarlock; 31.03.2018 в 23:41.
Старый 31.03.2018, 21:57
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 26  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,281
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Ты это серьезно?
Да.Только не надо приводить пустой аргумент что 100% защиты не существует, это и так всем известно.Речь о том,как усложнить жизнь таким деятелям,при хранении данных на сервере возможностей это сделать много больше.

Старый 01.04.2018, 14:27
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 27  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Да.Только не надо приводить пустой аргумент что 100% защиты не существует, это и так всем известно.Речь о том,как усложнить жизнь таким деятелям,при хранении данных на сервере возможностей это сделать много больше.
Ты этим только пользователям жизнь усложнишь. Толку от этой защиты вообще ноль. От кого ты её собрался защитить? Или ты серьезно думаешь, что кто-то серьезный твою графику будет брать? Максимум какие-то школьники, чисто побаловаться. И что ты от этого потеряешь?
п.с. На счет пустого аргумента. 100% защита существует) Не выкладывай файлы никуда, и никто у тебя их не сопрет)
Цитата:
То есть файлы просто bytearray и лежат в папке не в png, а в любом другом указанном формате. Мне примерно такое и надо. Как например есть atf, простым просмотром изображений в нем ничего не увидишь. Вот это мне и надо. Тогда просто в байтарай всё и фиг с ним.
Не в каком-то формате, а именно в Bitmap (точнее в BitmapData). Ну, то есть, по сути растр ужатый алгоритмом LZMA (если не ошибаюсь, он же используется при сжатии 7z)
Вот набор методов, позволяющих это сделать (использую на андроиде. Позволяет сэкономить до 30 - 40% объема файла, в сравнении с png). Вместе с распаковкой, по времени получается примерно так же, как загрузка простых PNG и декодирование их в Bitmap. Так что выигрыша или проигрыша во времени работы нет. Есть только выигрыш по памяти устройства
Код AS3:
public function saveBitmapData(bitmapData:BitmapData, path:String):void {
	var byteArray:ByteArray = new ByteArray();
	byteArray.writeUnsignedInt(bitmapData.width);
	byteArray.writeUnsignedInt(bitmapData.height);
	byteArray.writeBytes(bitmapData.getPixels(bitmapData.rect));
	byteArray.compress(CompressionAlgorithm.LZMA);
	saveByteArray(byteArray, path);
}
 
public function loadBitmapData(imagePath:String):BitmapData {
	var byteArray:ByteArray = null;
	var bitmapData:BitmapData = null;
	var width:uint = 0;
	var height:uint = 0;
	byteArray = loadByteArray(imagePath);
	byteArray.uncompress(CompressionAlgorithm.LZMA);
	width = uint(byteArray.readUnsignedInt());
	height = uint(byteArray.readUnsignedInt());
	bitmapData = new BitmapData(width, height);
	bitmapData.setPixels(bitmapData.rect, byteArray);
	byteArray.clear();
	return bitmapData;
}
 
public function saveByteArray(bytes:ByteArray, path:String):void {
	//var file:File = File.applicationStorageDirectory.resolvePath(path);
	var file:File = new File(path);
	var fileStream:FileStream = new FileStream();
	fileStream.open(file, FileMode.WRITE);
	fileStream.writeBytes(bytes);
	fileStream.close();
	bytes.clear();
}
 
public function loadByteArray(path:String):ByteArray {
	//imagePath 					= File.applicationDirectory.resolvePath(imagePath).url;
	path 						= File.applicationDirectory.resolvePath(path).nativePath;
	var file:		File 		= new File(path);
	var fileStream:	FileStream 	= new FileStream();
	var byteArray:	ByteArray 	= new ByteArray();
	fileStream.open(file, FileMode.READ);
	fileStream.readBytes(byteArray);
	fileStream.close();
	return byteArray;
}
Для флеш плеера это, конечно же, не прокатит. Придется File заменять чем-то другим, чтобы байт массив получить
__________________
Ко мне можно и нужно обращаться на ты)

Старый 02.04.2018, 19:37
Godwarlock вне форума Посмотреть профиль Отправить личное сообщение для Godwarlock Найти все сообщения от Godwarlock
  № 28  
Ответить с цитированием
Godwarlock

Регистрация: Jan 2012
Сообщений: 836
caseyryan спасибо) На днях попробую твой метод

Старый 03.04.2018, 10:06
Appleman вне форума Посмотреть профиль Отправить личное сообщение для Appleman Найти все сообщения от Appleman
  № 29  
Ответить с цитированием
Appleman
 
Аватар для Appleman

Регистрация: Dec 2014
Адрес: Санкт-Петербург
Сообщений: 479
caseyryan, очень круто. Прямо то что доктор прописал Сохранить бы это добро куда-нибудь, чтобы потом не забыть. У меня единственный вопрос. Выходит, что для использования твоих решений нужно сначала свои ассеты загружать в программу, а затем уже из BitmapData сохранять на диск в виде сжатых ByteArray-ев, правильно? Или специальную сервисную прогу написать, которая это будет делать?
__________________
Не сломано - не чини!

Старый 03.04.2018, 15:47
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 30  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от Appleman Посмотреть сообщение
caseyryan, очень круто. Прямо то что доктор прописал Сохранить бы это добро куда-нибудь, чтобы потом не забыть. У меня единственный вопрос. Выходит, что для использования твоих решений нужно сначала свои ассеты загружать в программу, а затем уже из BitmapData сохранять на диск в виде сжатых ByteArray-ев, правильно? Или специальную сервисную прогу написать, которая это будет делать?
Да, именно так У меня этот механизм просто вшит сразу в редактор уровней для игры, поэтому все на автомате делается
__________________
Ко мне можно и нужно обращаться на ты)

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:52.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:52.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.