forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=28)
-   -   DLL в каких случяях...? (http://forum.boolean.name/showthread.php?t=4765)

ЛысыЙ_Чук-Иванчук 15.10.2007 07:41

DLL в каких случяях...?
 
У меня возник вопрос что вы выносите в ДДЛ(не надо говорить физику, ашадоу=), фастИмейдж- это понятно;) ) меня интересует вот на данном этапе какие игровые процессы переносятся вами в длл, ну или что вы бы отправили в длл. Например ИИ(что именно от ии?)
:@

H@NON 15.10.2007 09:06

Re: DLL в каких случяях...?
 
Я бы упаковал в длл нахождение пути ботов, всякие расчеты типо -acos(10 mod 1.5)/143.33 . Что-то типо этого. На большее фантазии пока не хватает:(.

dimanche13 15.10.2007 12:00

Re: DLL в каких случяях...?
 
почему то я не встречал длл для алгоритма Астар. Возможно ли это? При статической карте и стандартном поиске без костов. Какова будет скорость?

H@NON 15.10.2007 12:19

Re: DLL в каких случяях...?
 
ВОзможно!
http://boolean.name/showthread.php?t=3919
http://boolean.name/showthread.php?t=964

нужно всего лишь иметь руки правильной кривизны.

dimanche13 15.10.2007 12:42

Re: DLL в каких случяях...?
 
H@NON-ыч спасибо! осталось прикрутить это все к БМаксу ;)

johnk 15.10.2007 13:44

Re: DLL в каких случяях...?
 
В сэмплах Бмакса тоже А* есть :)

ЛысыЙ_Чук-Иванчук 15.10.2007 13:52

Re: DLL в каких случяях...?
 
по мимо интелекта чтобы еще можно было выщитывать там?

dimanche13 15.10.2007 13:55

Re: DLL в каких случяях...?
 
JohnK, да я знаю что есть. Просто хотелось бы узнать есть ли выигрыш в скорости. При сравнении внешего длл-модуля и внутрипрограммным кодом.

impersonalis 16.10.2007 04:24

Re: DLL в каких случяях...?
 
http://ru.wikipedia.org/wiki/DLL
Цитата:

Первоначально предполагалось, что введение DLL позволит эффективно организовать память и дисковое пространство, используя только одну инстанцию библиотечных модулей для многих приложений. Это было особенно важно для ранних версий Microsoft Windows с жёсткими ограничениями по памяти.

Далее, предполагалось улучшить эффективность разработок и использования системных средств за счёт модульности. Замена DLL-программ с одной версии на другую должна была позволить независимо наращивать систему, не затрагивая приложений. Кроме того, библиотеки DLL могли использоваться разнотипными приложениями — например, Microsoft Office, Microsoft Visual Studio и т. п.

В дальнейшем идея модульности выросла в концепцию COM.

Фактически, полных преимуществ от внедрения DLL получить не удалось по причине явления, называемого DLL Hell («ад DLL»). DLL Hell возникает, когда несколько приложений требуют одновременно различные, не полностью совместимые, версий DLL-библиотек, что приводит к сбоям в этих приложениях. Когда система выросла до определённых размеров, количество DLL стало превышать многие тысячи, не все из них обладали полной надёжностью и совместимостью, и конфликты типа DLL Hell стали возникать очень часто, резко понижая общую надёжность системы. Поздние версии Microsoft Windows стали разрешать параллельное использование разных версий DLL, что свело на нет преимущества изначального принципа модульности.

Damp 19.10.2007 11:16

Re: DLL в каких случяях...?
 
Длл нужны наверно в основном чтобы получить доступ к тому, что недоступно в блице.
Выйгрышь в скорости математики конечно получить можно, используя допустим word вместо integer и т.п. но... тож невсегда, ведь всеравно математика сводится в операциям над регистрами.
Ну а вот по логике тут блиц малость медленнее будет, т.к. не использует тип boolean (имею ввиду операции где сравниваются биты регистра), на сколько понял блиц только как бы иммитирует их (True/False на самом деле определяется не значением бита, а целиком всего байта или даж интегера).

jimon 19.10.2007 15:09

Re: DLL в каких случяях...?
 
переумножение кучи матриц я бы вынес в dll
а так, скорость логики что в блице что в C++ примерно равна
если руки прямые

impersonalis 19.10.2007 21:19

Re: DLL в каких случяях...?
 
Цитата:

Ну а вот по логике тут блиц малость медленнее будет, т.к. не использует тип boolean (имею ввиду операции где сравниваются биты регистра), на сколько понял блиц только как бы иммитирует их (True/False на самом деле определяется не значением бита, а целиком всего байта или даж интегера).
Гм. А на С\С++ минимальная дискрета - тоже байт. Как и константы true\false (TRUE\FALSE- вообще 4 байта).
Или длл планируется на АСМ-е?

ЛысыЙ_Чук-Иванчук 21.10.2007 18:54

Re: DLL в каких случяях...?
 
Неее, на пурике:)

Damp 24.10.2007 13:51

Re: DLL в каких случяях...?
 
А на паскале (по крайней мере Turbo7) там тру и фалс - биты...
Но всеравно, в блице ведь минимум=интегер (4 байта если не ошибаюсь), скорей всего и булевые эти тоже = интегер.
---
Если прога знает байты, зачем ей тру\фалс делать 4 байта...?

alcoSHoLiK 24.10.2007 13:57

Re: DLL в каких случяях...?
 
Минимальная адресуемая единица памяти - 1 байт. Может компилятор Турбо Паскаль кое-что оптимизирует, но тамтоже переменные минимум 1 байт занимать будут. В С++ тип bool можно и не юзать (в С его вообще не было), т.к. он все равно конвертится в int при сравнении.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot