SA-MP Forums Archive
[Plugin] Dff_Andreas (Release Development) - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+----- Forum: Релизы/Releases (https://sampforum.blast.hk/forumdisplay.php?fid=66)
+----- Thread: [Plugin] Dff_Andreas (Release Development) (/showthread.php?tid=563320)

Pages: 1 2


Dff_Andreas (Release Development) - Mutha_X - 15.02.2015

Многие местные форумчане, наверно, знакомы с такими разработками, как MapAndreas и ColAndreas ( https://sampforum.blast.hk/showthread.php?tid=560218 ) и, если вы являетесь таковым, то вам и расписывать здесь особо ничего не нужно.

Как вы уже поняли из названия темы, в качестве объектов для проведения расчётов будут использоваться не модели коллизий (.col), а визуальные модели (.dff и без текстур).
Основная ставка в этом проекте была поставлена на мощную самооптимизационную способность, причём именно за счёт неё достигается высокая производительность и малое потребление оперативной памяти.

На данный момент (15.02.15) достигнуты следующие показатели:
* Потребление ОЗУ в штатном/базовом режиме: 65 МБт.
* Потребление ОЗУ в оптимизированном режиме: 20-70 и до 150 МБт (в зависимости от выбранных параметров).
* Производительность: 390 мс уходит на обсчёт 1000 рэйкастингов (против 300мс на 1000 у Поттуса(это на винде), однако, этот результат можно ещё улучшить, было бы время на это).
** [Данные получены при тестировании на винде поэтому результаты на линуксоидах также могут быть получше.]

Задание для себя
Превзойти colandreas по производительности (в рамках тестирований на лине)
Quote:
Originally Posted by Pottus
Quote:
Originally Posted by Mutha_X
...
I just wanted to ask you for a data for stresstest (or speedtest) like starting position of camera, it`s direction, number of iteration and time of computing (ray-casting) that all , ... to compare performance.
...
We tried to make a MapAndreas ultra 12000x12000 = 144,000,000 raycasts that took 15 minutes.
160,000 Raycasts per second.
Текущие native`ы:
PHP код:
native DA_ResetWorldData();
native DA_LoadWorldData();
native DA_UnloadAllModels();
native DA_SendCommand(cmdtxt[]);
DA_RaycastSimple(Float:StartXFloat:StartYFloat:StartZFloat:EndXFloat:EndYFloat:EndZ,&Float:distresult,&result,&Float:x,&Float:y, &Float:z);
DA_RaycastSimpleGetDist(Float:StartXFloat:StartYFloat:StartZFloat:EndXFloat:EndYFloat:EndZ,&Float:distresult,&result);
DA_RaycastADV(Float:StartXFloat:StartYFloat:StartZFloat:EndXFloat:EndYFloat:EndZ, &Float:distresult,&result,ignorematerialsmask,&ressurface,&itemid,&modelid,&Float:x,&Float:y, &Float:z);
DA_GetModelFramesNum(...);
DA_GetModelVerticlesNum(...);
DA_GetModelPolygonesNum(...);
DA_GetModelVerticlePos(...);
DA_GetObjVerticlePos(...);
DA_GetModelPolygoneInfo(...);
DA_GetMaxVerticles(...);
DA_GetMaxFrames(...);
DA_GetMaxPolygones(...);
DA_GetStaticObjectsNum(...);
DA_GetModelSurfaceType(...);
DA_GetObjNormalVector(...);
DA_RaycADV2(...);
DA_CheckModelExistence(...); 
Пока без исходников, как у коллеги по ColAndreas.

Используемые в DA_SendCommand(cmdtxt[]); команды (для работы в режиме консоли):
pawn Код:
helpswe //- список комманд плагина.
loadpack //- //загрузить все модели объектов из архива.
savepack //- сохранить все модели объектов в архив.
archall //- сохранить все загруженные файлы в объединённые по типу архивы.
ldffall //- произвести загрузку всех моделей объектов из оригинальных .dff файлов (не использовать)
unloadall //- отгрузить все загруженные модели объектов.
homecomp //- составление бинарного древа объектов.
rcmpobjs //- обработка моделей объектов на предмет чистки их избыточной информации.
mostusedmodels //- выводит количество использованных на карте повторяющихся объектов в файл SWE_files/most_used_models.txt.



Re: Dff_Andreas (Release Development) - Makar93 - 15.02.2015

Плагин проверки наличия коллизии между двумя точками?) Я просто не в курсе коландреаса.


Re: Dff_Andreas (Release Development) - White_116 - 15.02.2015

Quote:
Originally Posted by Makar93
Посмотреть сообщение
Плагин проверки наличия коллизии между двумя точками?) Я просто не в курсе коландреаса.
Да, так же можно получить расстояние до столкновения и ещё кучу всего.


Re: Dff_Andreas (Release Development) - n0minal - 15.02.2015

Sorry for speaking english here but do you will post it on english section? I would like to try this...

Ya lublu guys xD


Re: Dff_Andreas (Release Development) - stabker - 15.02.2015

Круто. Он будет учитывать динамические объекты мира (игроков, машин)?


Re: Dff_Andreas (Release Development) - Mutha_X - 15.02.2015

Игроков и машин - по желанию, но разрушаемые объекты (фонарные столбы, коробки) нет, хотя можно изменить - так как нет смысла в этом из-за рассинхрона.


Re: Dff_Andreas (Release Development) - The_Creator - 16.02.2015

Будет репозиторий на Github или что-то подобное?


Re: Dff_Andreas (Release Development) - lost13 - 18.02.2015

Для передвижения NPC'юх можно использовать вместо MapAndreas'a?


Re: Dff_Andreas (Release Development) - White_116 - 18.02.2015

Quote:
Originally Posted by lost13
Посмотреть сообщение
Для передвижения NPC'юх можно использовать вместо MapAndreas'a?
Конечно можно, она точнее мап андреас, так же для нпс можно сделать видимость врагов, обработка выстрелов, нахождение стен, вплоть до того, что нпс могу забираться на стены.


Re: Dff_Andreas (Release Development) - lost13 - 19.02.2015

Пример можно? Как узнать что под нпс есть пол? Или препядствие перед ним?


Re: Dff_Andreas (Release Development) - Mutha_X - 19.02.2015

Пол - "стреляешь" 1 вектором вниз от координаты нпс, препятствие - вектор по направлению facingangle от нпс, во всех случаях проверяешь расстояние до пересечения и факт пересечения (result=1), во втором ещё придётся брать нормаль поверхности и проверять что она почти или совсем параллельна горизонтальной плоскости мира (с нормалями попозже, в colandreas уже есть, поэтому во избежание путаницы функция будет похожей).
С гитхабом - не знаю(не обитал на проектах подобного типа). Сначала нужно добиться юзабельности и производительности, а времени не очень много.


Re: Dff_Andreas (Release Development) - lost13 - 19.02.2015

Спасибо, я понимаю что нужно "стрелять", я не понимаю как)


Re: Dff_Andreas (Release Development) - vampir9763 - 20.02.2015

Первый раз с такими плагинами сталкиваюсь, можно ли с помощью него определить расстояние от игрока до объекта, в той стороне, куда смотрит игрок?


Re: Dff_Andreas (Release Development) - Mutha_X - 20.02.2015

Quote:
Originally Posted by lost13
View Post
Спасибо, я понимаю что нужно "стрелять", я не понимаю как)
Quote:
Originally Posted by vampir9763
View Post
Первый раз с такими плагинами сталкиваюсь, можно ли с помощью него определить расстояние от игрока до объекта, в той стороне, куда смотрит игрок?
Code:
...
new string[64];
new Float:px, Float:py, Float:pz;// playerpos
new Float:cx, Float:cy, Float:cz;// camera dir
new Float:returndistance, iscollisionfound;
GetPlayerPosition(playerid,px,py,pz);
GetPlayerCameraFrontVector(playerid, cx, cy, cz);// End* - нормированный вектор направления

DA_RaycastSimpleGetDist(px, py, pz, cx, cy, cz, 10.0,returndistance,iscollisionfound); // в десяти метрах от игрока по направлению камеры ищет "стену"
if(iscollisionfound)// ==true -> 
{
    format(string,64,"Коллизия найдена на расстоянии %.1f метров.",returndistance);
    SendClientMessage(playerid, -1, string);
}
else
{
    SendClientMessage(playerid, -1, "Коллизия не найдена");
}
...



Re: Dff_Andreas (Release Development) - stabker - 04.03.2015

А будут ли вычисления достаточно быстрыми, чтоб без проблем обрабатывать стрельбу из оружия? И примерно когда релиз?


Re: Dff_Andreas (Release Development) - White_116 - 06.03.2015

Quote:
Originally Posted by stabker
View Post
А будут ли вычисления достаточно быстрыми, чтоб без проблем обрабатывать стрельбу из оружия? И примерно когда релиз?
Для небольшого ТДМ хватит, но в потоках было бы вообще шикарно.


Re: Dff_Andreas (Release Development) - Crayder - 07.03.2015

Quote:
Originally Posted by n0minal
Посмотреть сообщение
Sorry for speaking english here but do you will post it on english section? I would like to try this...

Ya lublu guys xD
Same here.

What is the point of this plugin?


Re: Dff_Andreas (Release Development) - lost13 - 23.03.2015

Так его уже скачать то можно или нет?


Re: Dff_Andreas (Release Development) - Mutha_X - 04.05.2015

Ну что же, поставленной цели в виде большей производительности в аналогичном тесте (смотрите видео из первого сообщения темы ColAndreas) добились:
Теперь 1000 итераций "рей-кастингов" выполняются за 430 тиков против 300~310.

Дабы уточнить (но всё же этого будет мало для полной картины дела) на чём у кого тестировалось по ЦПУ (из тех данных что доступны).
У Поттуса: i5 (Lynnfield) 2.4 ГГц
У меня: Core Duo E6120 2.14 ГГц

В связи с этим объявляю, что можно будет в скорое время будет поиграться с тестовой версией (напишите в ЛС). А также здесь или также в ЛС отпишитесь, если хотите видеть какой-либо дополнительный функционал и с прочими пожеланиями) (доступный скриптам очень сильно ограничен).

For outsiders(not rus lang):
The point of this plugin is the same point of ColAndreas, but it is uses dff-modelsdata for some reasons i need in future. The reason of location this plugin in this section is early development status.


Re: Dff_Andreas (Release Development) - OKStyle - 19.05.2015

А где плагин взять-то? Мне нужно движение по параболе с отскоками =)