Страница 1 из 1

Доработка для ускоренной загрузки

Добавлено: 13 май 2019, 13:05
Chan_Roumen
Хочу предложить вам вариант ускоренной загрузки картинок на сервере, у вас картинки просто скачиваются, но лучше их создавать уже на самом сервере + игрок этого никак не заметит, крч проще переводить картинку из BASE64 в файл, и грузить его, могу скинуть функцию перевода из base64 в картинку

Re: Доработка для ускоренной загрузки

Добавлено: 13 май 2019, 16:40
Alex_Correa
Ваш вариант может замедлить создание текстур, или забивать память клиента. В первом варианте это отсылать с сервера на клиент картинку (далее буду называть текстура) при каждом открытии игроком какого то меню. Во втором варианте это отсылать на клиент все уже закодированные текстуры при подключении на сервер и держать их в памяти клиента даже если игрок может ни разу не воспользоваться какой то текстурой, это мусор в памяти. Теперь представим сколько подключений может быть в один момент на сервер. Сейчас мы стараемся отойти по возможности от текстур и используем меню на DX. Всёетекстуры качаютьс при первом заходе на сервер и в дальнейшем лежат на диске клиента и ждут своей участи. После того как они уже не нужны, выгружаються из памяти. На скорость влияет расширение файла, размер файла, формат текстуры, тип сжатия текстуры (DXT...). Можно заметить как загружается инвентарь и допустим личные данные персонажа, есть разница по скорости и количество текстур

Re: Доработка для ускоренной загрузки

Добавлено: 13 май 2019, 18:21
Chan_Roumen
Пользователю не обязательно качать или создавать данный файл постоянно, а также сервер вообще не напрягается т.к вся логика находится у клиента, сам клиент принимает BASE64 и обрабатывает его, далее можно делать проверку (if file.Exis......), т.е пользователю хватает одного захода на сервер чтобы картинка подгрузилась...

Пример кода чутка из другой игры но язык один (LUA)
P.S Это код на стороне клиента

Код: Выделить всё

	function util.Base64Decode( data )
		local b='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
		if !data then return end
		data = string.gsub(data, '[^'..b..'=]', '')
		return (data:gsub('.', function(x)
			if (x == '=') then return '' end
			local r,f='',(b:find(x)-1)
			for i=6,1,-1 do r=r..(f%2^i-f%2^(i-1)>0 && '1' || '0') end
			return r;
		end):gsub('%d%d%d?%d?%d?%d?%d?%d?', function(x)
			if (#x ~= 8) then return '' end
			local c=0
			for i=1,8 do c=c+(x:sub(i,i)=='1' && 2^(8-i) || 0) end
			return string.char(c)
		end))
	end

	if not file.Exists("rgplay","DATA") then
		file.CreateDir("rgplay")
	end
	if not file.Exists("moneyik.png","DATA") then
			file.Write("moneyik.png",util.Base64Decode("iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHaSURBVDhPvVRJL0NRGH38Av4GfoJhSfqqr21CwpqQWElsCKkxrSE2IiK2Yte+GlYiESSGaFqxsDCsUG2aUiGlND733F7DfYNhwWlO0r57vnPf9517q/wrfD5fsRr0VKi65gDrF+vL8Uws/xzqilrqDLlHnbp25dTdJFOLY03TtRIh/xqOsKtaDblTZiOZ7I2TjFWizBps5xomyhmL/XtjnMbn0Nqaok3saizqXO+iSCLKObgzIq2BqEGtsPlAYWayuGW1jXL5J8q/5Cn7nCVg+mBG0nCG3AFhUwCSswpg9nCOm4zsBqhhuYkyj7d0ljmTNCCb+aWUPo6GUQROxaa54URkkv/u2eqjgZ1hkw6Eh7BjhrpWayVqXG6mi7tLemGfjfNNal/rMGneCA9hZ28IotXgsc5mmePz7N8estTJhjYtoz20ie+tq+10/3RPpzfmGYK4RcLuPZS4UXR8fcKCyJB3qZFcYS+lsik+AqMOoSikFAm7AhC9UTi+P8nnl35IczNg/mhB0oCsXb+w+YDdwe7e6qVoMkax5IFlwqixvddssYrxV1ePdVYpyq0hTE1vaiSbW+JbszeghcJVNAeFANiG/h//fX0G0sdxcAQ9daAr7Cozpfm3UJRXP+NY8oeq66YAAAAASUVORK5CYII="))
	end

	if not file.Exists("rgplay/1.png","DATA") then
			file.Write("rgplay/1.png",util.Base64Decode("iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAB+gAAAfoBF4pEbwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABzSURBVFiF7dPLCYAwEIThWbEMG7GQNKn2oX1oH5OLgqiLL8Je5r9mAx8kCyhVIJI9nY6zVQRQAAH21W8vkGwAtM7xaGbLP9I9IHkrRjKtM1pDAR532oLtI100m9lUHACgc2YHAB7uc+FPIIAAAggQDlAqAyd+YYp7TUkXAAAAAElFTkSuQmCC"))
	end
	if not file.Exists("rgplay/2.png","DATA") then
			file.Write("rgplay/2.png",util.Base64Decode("iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAB+gAAAfoBF4pEbwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACDSURBVFiF7dOxDYMwFIThe4QxWAQpG6T2JGzBKEDPACmSPWAOHw1FBLYgsiw397ecpU9CD1AqQyRHRjpuqxJAAQT4rf73AckGQBv5/DGzNY10DXCxEyPp9o3OUIDbna6gf79caPgwv3TP+ZsdYOAQGnpWE4AgLqXiv0AAAQQQoDhAqQ0m1WWJgDNfAgAAAABJRU5ErkJggg=="))
	end
	if not file.Exists("rgplay/3.png","DATA") then
			file.Write("rgplay/3.png",util.Base64Decode("iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAB+gAAAfoBF4pEbwAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACNSURBVFiFY2AYBaOABuD///+r/+MA6GqZBsKBow4YdQAyYCFVQ+d+TxlGFiZLbHL///w7Xu64/QlNHcDIwmTJyPB/FXbTmMIYGBhWk2LegEfBqAMG3AEYibDrsHcoNoXMjP8eF9tsP0FzB+BK4f/+M61hYGDA6jhKwIBHwagDRh0w6oBRBwy4A0bBKAAAI68xYkTF4n8AAAAASUVORK5CYII="))
	end

Re: Доработка для ускоренной загрузки

Добавлено: 13 май 2019, 18:40
Alex_Correa
Я думал мы говорим про создание текстур во время игры, понял. Если Вам интересно то в МТА реализованы функции base64Encode/Decode
Про загрузку, если опять же вам интересно, то в конфиге сервера есть можно устанавливать URL от куда будет производится скачивание ресурсов, если оно не установлено то загрузка происходит с сервера на прямую, с сервера скачивает медленнее на много

Код: Выделить всё

httpdownloadurl
. Скоро мы изменим "источник" для скачивания, так же идут работы по сокращению размера кеша сервера, и еще есть пару вещей над которым ведутся работы сейчас, но пока рано их анонсировать. Уверяю что скачивание ресурсов в скором времени станет быстрее

Re: Доработка для ускоренной загрузки

Добавлено: 13 май 2019, 18:43
Chan_Roumen
Alex_Correa писал(а):
13 май 2019, 18:40
Я думал мы говорим про создание текстур во время игры, понял. Если Вам интересно то в МТА реализованы функции base64Encode/Decode Про загрузку, если опять же вам интересно, то в конфиге сервера есть можно устанавливать URL от куда будет производится скачивание ресурсов, если оно не установлено то загрузка происходит с сервера на прямую, с сервера скачивает медленнее на много

Код: Выделить всё

httpdownloadurl
. Скоро мы изменим "источник" для скачивания, так же идут работы по сокращению размера кеша сервера, и еще есть пару вещей над которым ведутся работы сейчас, но пока рано их анонсировать. Уверяю что скачивание ресурсов в скором времени станет быстрее
Скачка в любом случае упадёт после онлайна

Re: Доработка для ускоренной загрузки

Добавлено: 13 май 2019, 19:04
Alex_Correa
Chan_Roumen писал(а):
13 май 2019, 18:43

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

Доработка для ускоренной загрузки

Добавлено: 07 авг 2019, 15:56
KrasnowekK
Олеся83, мой комп лечили на днях,сказали,что вирусы-неизбежны,можно избежать,если не ходить по разным сайтам и ничего не качать.А я и думвю,зачем тогда интернет нужен???????:dp::dp::cx: