forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   помогите новичку с b3d (http://forum.boolean.name/showthread.php?t=6116)

falcon 14.07.2008 23:09

помогите новичку с b3d
 
вот минут 15 назад занялся изучением blitz3d
доэтого все копил софт\хелпы и т.п
теперь пытаюсь практиковаться.

очень прошу научить втыкать анимации б3д в игры.
тоесть у меня есть несколько моделей. 1 статична в формате 3дс
второя бежит.б3д

втыкаю спомощью
Код:

**=loadanimmesh ("..../статична.3ds")
loadanimseq "*******/бежит.б3д"

потом в цикле
как написать что приусловии нажатия на стрелку врубается анимация бег и модель смещается.? если не нажата то анимация статична

так?

if keydown(200) then animate (**,1,1,1,10) end positionentity **,0,0,1
else enimate (**,1,1,0,10)

??
или нельзя 1 модель в разных форматах втыкать?у меня эти коды не пашут... (

поясните пож )


так вот. нашел код только не весь его понял но суть такова что переделал на

Код:

Graphics3D 640,480,32
SetBuffer BackBuffer()
light=CreateLight()
cam=CreateCamera()
PositionEntity cam, 0, 40, -40
robot=LoadMesh("D:\gamecreating\blitz New\media\running.b3d")
LoadAnimSeq robot, "D:\gamecreating\blitz New\media\stanting.3ds"
MESH=FindChild(robot,"MESH") ; вот эт вычитал с одной статейки.
;но и имя воспроизводимой анимации должно быть меш, не пашет никак
; ни что


rx# = 10
rz# = 0
ang = 90

Repeat

 
 PositionEntity robot, rx#, -8, rz#
 RotateEntity robot, 0, ang + 90, 0
 PointEntity cam, robot
 If KeyDown(200) 


 If AnimSeq(robot) = 0 Then Animate robot, 1, 0.5, 0, 10
  rx# = rx# + Cos(ang) * 0.5
  rz# = rz# + Sin(ang) * 0.5 
 Else 


  If AnimSeq(robot)=1 Then Animate robot, 2, 1, 1, 10
 End If
 If KeyDown(203) Then ang = ang + 5
 If KeyDown (205) Then ang = ang - 5








UpdateWorld
RenderWorld

Flip
Until KeyHit(1)
End


очень хочу научиться кодить в блице...
попытайтесь пож понять что тут написано... точнее пока что задать вопросы не могу изза нехватки знаний.:wallbash:

dimanche13 14.07.2008 23:20

Ответ: помогите новичку с b3d
 
уважаемый, вам надо сначала постичь суть слова "алгоритм".

falcon 15.07.2008 00:04

Ответ: помогите новичку с b3d
 
ничего не понятно дя? (
я неумею вопросы задовать вот и получается белеберда..

moka 15.07.2008 11:56

Ответ: помогите новичку с b3d
 
Можно иметь дома стилажи книженций по С++ и иметь в закладках сотни форумов по С++, но при этом его так и не постигнуть.
Чтобы научится выбрось всё кроме блица, открой его примеры и читай, просто читай их, как сказку, как триллер, или комедию Донцовой, а затем представь, что в этой книжке события можно менять, но руководствуясь жёсткими правилами которые на самом деле придают организованности и функционал, просто постигай что значит те строки и меняй их, наблюдая за изменениями.
Так ты постигнешь Блиц и разбудешь в себе хорошего кодера.
А статейки, хм, ну что сказать, мне жаль если как и обычно "появился новенький", со статейками протянул месяца 2, поняв что "это не моё", бросил это дело, а ведь парниша толковый, только вот его не направили и доверится он не желал, и получилось что думал что не его, при этом не понимая что статьи не учат, они дают лишь какую-то информацию которая будет сопровождатся лишней брехнёй, которая вообще не нужна, и забивать голову читателю, обрекая его на прочтение ещё и ещё одной статьи, он думает он учится, а сидит на одной плоскости, в илюзии, что учится.
Жаль..

Если что простите за мою очередную эпипею, но учитывая возрасты и "серьёзность" инструмента которому посвящён форум, приходится заводить именно такую речь..

Те кому нужны уже знают, те кто желают поймут, а те кто не поняли и не желают, ну что сделаешь, "очередной одноразовик", попрыгает и уйдёт..

nuclear-90 15.07.2008 13:30

Ответ: помогите новичку с b3d
 
Полностью поддерживаю MoK'у

falcon 15.07.2008 13:36

Ответ: помогите новичку с b3d
 
MoKa
благодарю - чудесный ответ...
я когда то так же учил eathena вские скрипты... чесно говоря было куда проще и понятнее чем сейчас пытался учиться по статьям)
но времени отнимало в разы больше.

впринципе мне от блица надо... эм... незнаю много это или мало но думаю немало -точно ^_^

я хотел переделать star warss jedy academy
модели от туда есть, но я понял что создавать полноценную игру очень долго и трудно, пускай даже и интересно, для новичка наверно слишком нереализуемо. почитал пример кастлс и много что усвоил, но есть одна проблема. я посути все термины понимаю, все легко усвоил. кроме одного. я не понимаю что есть - типы. ну масив бы тож не помешало бы освоить просто я его редко встречаю ) все остальное далось легко. читал кучи статей про эти типы, массивы. пытался в коде понять но все равно не имею представления зачем они и что они)))
а,так сказать, более абстрактно обьяснить никто не может. все статьи сразу начинают обиснять как их , типы, создавать. а это я знаю.

теперь планка про JA снизилась до создания квадратной комнаты в которой можно запрыгивать на выступы, ящики героем а герой бегает и махает мечем..
тут вот тоже вопрос как это делается? все действия персонажа надо зарание анимировать и дальше ставить ту или иную анимацию при том или ином условии? или можно заставлять например двигать персонажа мечем так как было бы неплохо в именно этот момент?
да и вот я так и не понял как воспроизводить костную анимацию. по другому я анимировать в максе не умею...
точнее видил код который как раз хорошо воспроизводит но там есть непонятная мне команда findchild ("тут вроде бы название переменной в которую загрузили анимацию", " а тут название модели")
это то что я понял. как бы я не пытался её использовать - в моем коде она, костная анимация, не пашет.
ну вот хотя б с такими вот вещами помогите. точнее обьясните или подтолкните)))
кастл - замечательный пример но там есть типы которые используются. а они пока мне не понятны...
кажется что с одной стороны я понимаю что делают типы. а с другой абсолютно не понимаю зачем это надо...

moka 15.07.2008 14:03

Ответ: помогите новичку с b3d
 
Типы.. :)
Да все когда-то их постигали. Расскажу образно:
К примеру, один тип - это помещение.
Что-либо в помещении - эллемент.
Эллементов может быть неограничено, и каждый эллемент содержит данные, которые объявлены в комнате.
К примеру есть данное - указатель на объект. Объект к примеру кубик или какая нибудь загруженная моделька.
Комнатка преобретает такой вид:
Type TK
Field Entity%
End Type

Каждый эллемент в комнате, имеет своё значение, к примеру в комнате 2 эллемента, у одного в переменной Entity будет указатель на кубик а у друго-го на какуюнибудь модельку.
Т.к. у объекта есть данные позиции, то это уже добовляет понятия где находится эллемент, как повёрнут и т.п.
К примеру эллемент должен падать, а что такое падение, это просто уменьшение глобальной координаты Y, до каких-то пор. Это делается простым перебором всех эллементов в комнатке, и если координата Y объектов (Field Entity), выше нуля, то уменьшаем Y.
Но усложним задачу, и добавим что если Y ниже нуля, то отражаем его, получится эффект подпрыгивания :)
Но, ведь у каждого эллемента своя координата Y и один может уже отпрыгнуть а другой нет. Значит нужно завести координату скорости по Y:
Type TK
Field Entity%
Field nY#
End Type

Теперь каждый эллемент содержит данное с какой скоростью ему двигатся по глобальной оси Y.
Итак, теперь пробегаемся по всем эллементам комнатки и изменяем nY, просто применяя гравитацию и ускорение падения, но затем делаем проверку, если Y координата объекта ниже нуля, то инвентируем nY (nY=nY*-1), таким образом будет уже не падение а взлёт, и затем прибовляем к координате Y объекта это данное, на которое по прежнему действует гравитация.
Таким образом мы можем накидать множество эллементов и каждое будет прыгать независимо. :)
Класс (правдо в б3д классом это не назовёшь), можно применять как угодно и эллементы могут нести любые данные какие только будут необходимы. Главный моммент это лёгкость содержания больших мас эллементов с собственными данными, и их просто обновлять перебирая все.

Массив, ну так тут совсем просто (все мы так говорим ;) )
Представь у тебя есть книжка, а в ней есть страницы, на каждой странице информация.
Представь такую ситуацию, у тебя книжка состоит из 128 страниц (предположим), и не забывай что существует и нулевая ;). Так вот, на каждой странице к примеру строчка (Dim Stranica$(128)), и ты можешь просто получить значение переменной обратившись по номеру. К примеру нужна строчка с 20 страницы, вот она: Stranica(20). Это просто переменные но пронумерованные.

falcon 15.07.2008 14:17

Ответ: помогите новичку с b3d
 
почитал про тип...эм... так пойду покурю обдумаю... все равно туго входит но я не отступлюсь...)
а мог бы так же обьяснить про JA?))))
просто знать хочеться браться за это или нет...
казуалки делать очень не хочется(хотя все мне твердят что блицы, 3дгейм студии, все это для них впервую очередь. труднее сделать можно только в компании человек 8 )
но если есть модели и анимация так сказать не составит труда....
не ужели код написать будет очень тяжело? *(
тем более что я тут прочитал чтото типо хелпа про конвертер из макса в b3d там есть полезная фишка типа импорт в б3д только скелета. и подгрузка на него уже самой модели что упрощает частоиспользуемые анимации, бега, прыжков и т.п.
тоесть получается что не придется для каждого героя делать свою анимацию. достаточно сохранить стандартный набор скелетов и натягивать на них героев)

так это все к тому что если в плане графики все не выглядет сложно.
реально МНЕ сделать комнату ja ?
для начала даж без ИИ... просто сделать реакцию противника на удар по нему мечем (умирает) всякие там толчки притягивания...
или "сила" это трудно? (
тогда хотя бы просто реакцию на удар мечем)
просто изначально я за блиц взялся изза желания сделать рпг в стиле диабло только в современной эпохе.
мне сказали - забудь...)
решил сделать комнату. неужели вердикт будет тот же?

falcon 15.07.2008 14:29

Ответ: помогите новичку с b3d
 
мок если не трудн зайди в асю ))

moka 15.07.2008 14:31

Ответ: помогите новичку с b3d
 
Я тебе скажу что и ММО написать - это реально и реализуемо. Но это лишь с технической стороны. А на практике тут более скептичная ситуация.
Дело в том что не в сложности всё упирается, ты можешь сидеть и делать, и что-то будет двигаться, быстрее или медленее, но будет двигатся. Другой вопрос в Воле.. Я могу написать убийцу Кримсонлэнда, я могу написать убийцу контры 1.6, даже CSS могу написать, по способностям я знаю как устроено тот или иной прикол, и это всё реализуемо, в голове всё просто, на практике просто парится время, а на деле это ничего - у меня нет ажиотажа, я не вижу цели, нет воли заставить себя.
Если ты можешь потянуть волей - то ты сделаешь. Ты скажешь да, но ты не знаешь что будет завтра..

HolyDel 15.07.2008 14:55

Ответ: помогите новичку с b3d
 
Цитата:

не ужели код написать будет очень тяжело?
Что ты, конечно нет!

Цитата:

я могу написать убийцу контры 1.6
это же просто отлично! позволь поинтересоваться, как бы ты сделал автопостроение ботского путенаха для примера?

falcon я еще не видел ни одного хорошего блицера который бы начал изучение сего инструмента с написания рпг-шки. все мы начинали с тетрисов, арканоидов и прочей прелести. По крайней мере согласись, что
Код:

Type Ball
field img,x#,y#,dx#,dy#
End Type

разобрать намного проще чем:
Код:

Type Jedi
field ent,csphere
field weapon[10]
field ammo.TAmmo[10]
field en#,dx#,dy#,dz#
field forces#[10]
field keyframe,oldkeyframe,nextkeyframe
field aseq
field omcnx#,omncy#,omncz#
//тут еще пара десятков всяких полей
field shield#,energy#,eat#,sleeping_time#
End Type

Цитата:

реально МНЕ сделать комнату ja ?
конечно! с копипастами - можно сделать за день. чтобы все понять - нужно чуть больше времени. как мне кажется, самая соль в логике - если логка четкая - то и проблем быть не должно никаких ;)

falcon 15.07.2008 15:03

Ответ: помогите новичку с b3d
 
Цитата:

с копипастами
обижаешь
я этой шнягай не занимаюсь...

а с типами я разберусь так или иначе в независимости какие примеры придется читать.
будь то
Код:

Type Ball
field img,x#,y#,dx#,dy#
End Type

или
Код:

Type Jedi
field ent,csphere
field weapon[10]
field ammo.TAmmo[10]
field en#,dx#,dy#,dz#
field forces#[10]
field keyframe,oldkeyframe,nextkeyframe
field aseq
field omcnx#,omncy#,omncz#
//тут еще пара десятков всяких полей
field shield#,energy#,eat#,sleeping_time#
End Typ

и как ты мог заметить меня интересует не только насколько это сложно а ещё и

Цитата:

как это делается? все действия персонажа надо зарание анимировать и дальше ставить ту или иную анимацию при том или ином условии? или можно заставлять например двигать персонажа мечем так как было бы неплохо в именно этот момент?
да и вот я так и не понял как воспроизводить костную анимацию. по другому я анимировать в максе не умею...
точнее видил код который как раз хорошо воспроизводит но там есть непонятная мне команда findchild ("тут вроде бы название переменной в которую загрузили анимацию", " а тут название модели")
я сделаю то что задумал внезависимости сколько уйдет на это времени.
меня интересует всего лиш сколько его понадобится.
вопросы просты: возможно? если да то по каким принципам.

ABTOMAT 15.07.2008 15:39

Ответ: помогите новичку с b3d
 
Цитата:

ни одного хорошего блицера который бы начал изучение сего инструмента с написания рпг-шки.
Я начинал :-D Правда её не написал но научился порядочно много чему.

Но афтору советую всё-таки начать с комнаты...

О скелетной анимации.
Это моя любимая анимация, по верному пути идёшь, товаришч. :-)
Самое простое - пока в максе экспортни модельку с костной анимацией (только Skin, Physique не держится:()в b3d (никаких 3ds - он костей не понимает!). В экспортёре ставишь галку Анимэйшн и Бонез (Боне Мешез НЕ надо) и экспортишь.
Запоминаешь как у тебя в максе была названа непосредственно модель персонажа (тот объект, к которому ты применял модюфегатор Skin)
Предположим он назывался "chelovek" (можно кстати и русские буквы юзать) Кроме того обрати внимание это дело чувствительно к регистру! "chelovek"<>"Сhelovek")
Грузишь в Блитзе.

model = LoadAnimMesh("путь к модельке")
Далее анимируеш ИМЕННО тот объект который у тебя заSikn'ен ("chelovek" как мы запомнили выше)
Для этого нужно использовать команду файнд чайлд.
С её помощью ты можешь манипулировать не всей моделькой а отдельными её частями зная их названия в Максе.
Получим указатель на объект "chelovek" :
chel = FindChild(model, "chelovek")
Здесь model - хендл модельки в Блитзе, "chelovek" - имя объекта который мы хотим заполучить.
Итак, анимируем!
Animate chel
Всьо!
Незабудь перед RenderWorld поставить UpdateWorld чтоб анимация работала.
В справке читай описания ф-й которые тебе непонятны.
Там ты узнаешь какие аргументы передавать и т.п.
Например, ты можешь менять скорость воспроизведения анимации в команде Animate (не скажу как, это специально чтобы ты сам полез в справку и посмотрел :-))

falcon 15.07.2008 15:49

Ответ: помогите новичку с b3d
 
ABTOMAT
человечище))))
справку юзал в ней конкретно финд чилд и не понял теперь все ясно)
про скорости типы анимаций знал)))
Цитата:

никаких 3ds - он костей не понимает
поэтому
Цитата:

по другому я анимировать в максе не умею
)
Код:

С её помощью ты можешь манипулировать не всей моделькой а отдельными её частями зная их названия в Максе
тоесть выходит я могу именно не воспроизводить анимацию а заставлять обьект "реагировать" на что либо?
и можно ли так же воздействовать не на модель(которая кожа) а на кости? модель тоже будет двигаться?

moka 15.07.2008 17:00

Ответ: помогите новичку с b3d
 
B3D онли ;)

Цитата:

автопостроение ботского путенаха
Что это? :@ по русски плз..

HolyDel 15.07.2008 17:43

Ответ: помогите новичку с b3d
 
Вложений: 3
ну... когда делаеш новую карту, боты САМИ себе ищут путь. я до сих пор даже представить себе не могу как они это сделали? там сначала что то обрабатывается (как я понял проставляются вейпойнты). А вот каким макаром хз ((

т.е. грубо говоря - дан меш (закрытый). и точки старта ботов. надо получить вейпойнты по которым могут ходить боты.
вот нарисовал пример:
красные точки, синие точки - боты, две команды
зеленые точки вейпойнты
темено зеленые линии - показывают как вейпойнты связаны.

исходные данные - только комната и позиции ботов. надо каким то макаром получить вейпойнты и их связь. при чем в контре, боты могут даже запрыгивать на ящики и пролазить по трубам О_о.

jimon 15.07.2008 17:53

Ответ: помогите новичку с b3d
 
HolyDel
тебе нужно как работает AAS ? :)
как я понимаю там ищутся все пространства в которых может физически оказатся бот
потом из них строятся коробки в которых бот бегает
AAS считается не в реалтайме, а в редакторе карт и в 2000 году просчет длился порядка 1-2 часов (как мне известно)

HolyDel 15.07.2008 17:58

Ответ: помогите новичку с b3d
 
Цитата:

AAS считается не в реалтайме, а в редакторе карт и в 2000 году просчет длился порядка 1-2 часов (как мне известно)
я о реалтайме и не заикался... хорошо, как найти все пространства в которых физически может оказаться бот?

moka 15.07.2008 18:04

Ответ: помогите новичку с b3d
 
Интерестная тема.
Начнём с того что в CSS юзается BSP. Таким образом анализ уровня и разбиения его на плоскости по которым возможно перемещение, естественно это и будет одним из важнейших алгоритмов. Этот алгоритм должен заключать в себе разбиение всего уровня на плоскости, информация о местах соединений плоскостей (обрывки, к примеру лестница, или вентиляционная шахта, при xz координатах они в притык, если их плоскости разны (y у шахты выше)), то устанавливается триггер с данным по необходимости прыжка при переходе. Плоскость также содержит инфу о том что можно там ходить или нужно ползать. Также плоскость может соединятся опастным отрезком - большая высота падения. Если высота второй плоскости слишком велика, то у первой просто блокирующий отрезок а у второй опастный (падение).

Далее, важно места переходов правильно соединить и создать систему поиска пути плоскостей, а затем по ним уже создавать поиск пути из одной точки в другую, основанной на отрезках.
Такой алгоритм я недавно разрабатывал, продивнулся долеко, но время всё нет довести оптимизацию найденного пути до нормального вида.
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 3000 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

Такой алгоритм ищет путь исходя из пересечений отрезков, если его реализовать на шустрой математике (непонмю как называется спец процессор, который с некоторыми мат функциями работает, его ещё физикс юзает, поэтому он не пашет на древних машинах), то скорость будет просто шустрейшей..
Это посути алгоритм динамичного расставление вейпоинтов не по заранее просчитанным позициям ищется путь, а сами вейпоинты расставляются. Задача Очень не простая и требует подхода. Думаю в CSS алгоритм в разы проще, но он мне в голову не приходит, т.к. я не работал с BSP и незнаю его принципов, знаю лишь что работ с пространствами и плоскостями в этой системе очень удобны и по сути просты.

Немножко интерестнее в CryEngine поиск пути, там всё в динамике и никакой не BSP.. ;)

jimon 15.07.2008 18:05

Ответ: помогите новичку с b3d
 
HolyDel
перебором, сам бот представляет собой паралелепипед заданых размеров
условия того что он может находится в етом месте :
1) строим все боксы которые лежат внутри карты
2) высота, длина,ширина больше размеров бота в стоячем или в сидячем положении
3) имеется бокс в который выше заданой точки
и связан с боксом в которой находится точка
или высота от нужной точки до нижней точки равняется высоте прыжка бота
4) исключаем лишние боксы
5) режем боксы чтобы не упирались в резкие края стен и прочее

в итоге получаем пространство в каждой точке которого
может находится бот (допрыгнуть,спрыгнуть или дойти)
таким макаром может работать поиск пути (аля полу AAS)
у нас есть тупо набор боксов и связей между ними
плюс хорошенький алгоритм для прохождения внутри боксов

есть книженция где разбираются боты quake3, там хоть и на английском,
но очень хорошо описаны все ети вещи
так же исходники quake3 открыты - можно изучать

falcon 15.07.2008 20:40

Ответ: помогите новичку с b3d
 
капать перекапать мои извилины!!!
не ну все конечно ясно (самое простое на понимание принципа- бот - бокс)
но епрересете неужто аи так трудно творится?! не.. ну я конечно понимаю что в обычной игре с заданными и не меняющимися картами можно спокойно расставить противников и указать куда им нужно ходить... но тем не менее что описано выше кажется неимоверно тяжким трудом......

jimon 15.07.2008 20:48

Ответ: помогите новичку с b3d
 
falcon
ну если не писать генератор всей это билеберды, а ручками где нибудь раставлять ети боксы то в принципе не очень сложно сами боты реализуются

falcon 15.07.2008 22:16

Ответ: помогите новичку с b3d
 
я сейчас изведусь прям весь с этим b3d !!!!!!
с кодом ну никаких проблем ! все получается (пока тесчу чо могу ))))

а вот как модель санимировать- ************** цензура....
то она кривится вся то ешё что нить!!!!!! мне уже прям глубоко поф как модель выглядит (ща уже пытаюсь палку палку агуречка нарисовать)

НУ СФИГАЛИ КОСТИ ПОМИМО РУКИ ЕШЁ И БАШКУ КРУТЯТ?!

оффтоп но блин я ничего делать не могу без моделей (

ABTOMAT 15.07.2008 23:20

Ответ: помогите новичку с b3d
 
Цитата:

НУ СФИГАЛИ КОСТИ ПОМИМО РУКИ ЕШЁ И БАШКУ КРУТЯТ?!
подробней давай

falcon 15.07.2008 23:39

Ответ: помогите новичку с b3d
 
хехе
подробней?

http://www.rapidshare.ru/731095

как из ЭТОГО сделать b3d анимацию...
хотя бы что бы руками махал неважно как )))
точнее анимация то ессссно получится вот только какого качества!!!!!!

moka 16.07.2008 11:52

Ответ: помогите новичку с b3d
 
Как с анимируешь, такого качества и будет, хоть как в AssAssInScreeN. :)

ABTOMAT 16.07.2008 12:45

Ответ: помогите новичку с b3d
 
Можно попробовать выдрать из AssAssInScreeN
Если повезёт и экспортёр сохранит нормально анимацию
То так и будет :lol:

FrankH 16.07.2008 23:32

Ответ: помогите новичку с b3d
 
Цитата:

Сообщение от HolyDel (Сообщение 82302)
это же просто отлично! позволь поинтересоваться, как бы ты сделал автопостроение ботского путенаха для примера?

Неужели в 1.6 боты искали путь сами? :) Во всяком случае в 1.5 такого небыло, сам перерисовывал пути для ботов на многих картах, т.к. родные были тяп-ляп сделаны. Еще попадались боты что сканировали пространство на 5-10м перед собой, они никуда не залазили и иногда застревали в узких местах, за то обладали эффектом неожиданности. Мне кажется и в 1.6 пути руками делались, потому как это проще, чем заставить машину высчитать всю тактическую ценность той или иной точки кемпинга, нужного поворота наперерез и удаления не актуальных вейпоинтов.

HolyDel 17.07.2008 00:43

Ответ: помогите новичку с b3d
 
в 1.6. искали сами. помню я еще минут по 7 ждал пока боты сами себе построят пути для перемещение. особенно меня восхитило то -что они даже дырками догадывались пользоваться.

moka 17.07.2008 13:55

Ответ: помогите новичку с b3d
 
HolyDel, это видимо не "стандартные" ПоДБоты?
Я говорил про CSS, где вайпоинтов вообще нету.

moka 18.07.2008 12:08

Ответ: помогите новичку с b3d
 
Олег, вот глянь что обещал:
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 500 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

falcon 18.07.2008 13:09

Ответ: помогите новичку с b3d
 
кащмар 3к сообшений ...

ABTOMAT 18.07.2008 13:20

Ответ: помогите новичку с b3d
 
MoKa, действительно, ставил бы хотя бы лимит 1000
Вдруг не одному ХолиДелу будет полезно
Там что, военная тайна?
А если так, то писал бы в приват или в асю а не на форум

moka 18.07.2008 13:35

Ответ: помогите новичку с b3d
 
ABTOMAT ;)

ABTOMAT 18.07.2008 14:15

Ответ: помогите новичку с b3d
 
MoKa, :super:

HolyDel 18.07.2008 14:16

Ответ: помогите новичку с b3d
 
интересно. на самом деле на пункте 3 можно было остановиться. нам не нужен кратчайший путь. нам нужны все пути. ибо враг может затаицца где угодно, и нужно оббегать всю карту.

спасибо.

moka 18.07.2008 17:19

Ответ: помогите новичку с b3d
 
HolyDel, здесь преведён реалтайм или хотябы переодический (~100ms), алгоритм.
На самом деле работает отменно..
Почему этот алгоритм можно сделать и переодическим с непостоянством. Т.к. к примеру противник увидел персонажа и побежит к нему, к примеру если от последней точки противник скрился за углом и бот уже не видет его, тогда он либо продолжит двигатся дальше либо переключится.
ИМХО, но этот алгоритм никак не подходит под статичные просчёты, его нужно переприщитывать в зависимости от позиции объекта и цели.
Кстати, возможен даже и частичная динамика статики на уровне, поясню, к примеру есть перемещающийся объект, предположим машина, его нужно оббегать, так вот т.к. он динамичен, при расчёте пути, точкам которые прилигают к этому динамичному объекту приваивается флаг, и запоминаются одна точка до начала этого отрезка, и после. Таким образом при изменениях позиции объекта и когда бот уже близко, пересчитываем путь на этом участке, заного помечая динамику. Также нужно проверять и статический путь, на то что может где-то внедрился динамичный объект..

У меня ещё была идея сделать симулятор поиска пути, когда бот изначально не знает уровня, и изучает его. Также сделать звук и проникновения его через объекты, и огиб его углами. К примеру он услышал стук, но это было за углом, таким образом по сути он его не услышит, отрезок между ним и источником звука пересекается с уровнем, но радиус звука будет достаточно велик. И если бот в радиусе но за стеной, то запускаем поиск пути, до тех пор, пока длина пути немножко уменьшеная в зависимости от колличества поворотов пути, или путь не достигнет бота. Если достиг и немножко сокращённая длина меньше радиуса, тогда бот услышал.
Также звук может дать мало, если бот не встречал этого сектора. Я хотел разбивать плоскость на участочки, но сделать это корректно и автономно пока идей не имею, но что-то назревает. Бот переходя в помещение, всё что видит в радиусе и не за стенкой, тот участок помечается как изученным, поэтому алгоритм поиска пути не будет блокироватся этим участком.
Также режим перемещения в режиме изучения, когда бот будет перемещатся по уровню с целью иследовать эти области.
В общем такие вот мысли, незнаю зачем, но такой ИИ в области перемещения весьма помоему хорош :)

HolyDel 18.07.2008 17:32

Ответ: помогите новичку с b3d
 
ну.. таким макаром довольно просто получить карту пути, которая нам и нужна. достаточно просто построить путь от каждой стартовой точки к каждой. и все.

moka 18.07.2008 17:45

Ответ: помогите новичку с b3d
 
А если есть в уровне закуток, предположим помещение, с одним входом. Игрок находится в нём и постреляет по бегущему боту. Затем спрячется за угол, бот за неимением путей в то помещение не сможет туда переместится..

HolyDel 18.07.2008 18:01

Ответ: помогите новичку с b3d
 
да... значит проводить к каждой вершине уровня :crazy:

jimon 18.07.2008 19:12

Ответ: помогите новичку с b3d
 
Вложений: 1
поиск возможно и быстрый, но реалтайм рейтресинг это убийство
и как он будет быстро искать вот на такой карте ? :/
и найдет ли вообще, а если в дырку не пролезет ?
притом алгоритм требует сумашедших затрат памяти на сложных картах и большого количества вызовов функции пересечения
ибо количество разделённых пересечений будет расти в геометрической прогрессии >_<

ps. сделай уменьшеную копию картинки и выложи уменьшеную с сылкой на увеличеную
а то у меня монитор максимум 1600*1200 :/

moka 28.07.2008 14:51

Ответ: помогите новичку с b3d
 
Да страницу потянуло ;)
Уже не могу редактить сообщение, видимо поставили срок на редактирование?

ЗЫ, это уже задача оптимизации. Из той картинки что ты выдал, найдёт, главное это научить работать с вершинами имеющими общие линии.

Я делал тест, с неоптимизированным алгоритмом, (никаких SSE, да и сам код был первым наброском), из 100 сложных линий (без вершин с отрезками больше 1 на вершину), насвозь проходит за 1-2 мс. При этом находя уже оптимизированный кротчайший путь. Правдо и есть баги, к примеру 2 отрезка пересечены - это раз, что нельзя делать. Второе это расстояние между отрезком и пдосторонней вершиной или отрезком слишком узкое - тоже нельзя. В общем тут много очень ограничений и минусов.

snikers 27.08.2008 00:38

Ответ: помогите новичку с b3d
 
falcon, не пойму что в типах сложного.. Главное понять что такое даные и как они могут подаватся, я в первый день учил не синтаксис, а какие типы даных могут быть(целые, дробные, строки) и как они могут подаватся(структуры, типы, масивы, списки). Потом учил как управлять етими даными(циклы, условия), дальше читал пол дня геймдев.ру и вникал в принципы 3д графики, там узнал об ООП, перешел на БлицМакс, понял что такое наследование, и инкапсуляция(спс. ХолиДелу:)), на четвертый день(я каждый день проводил за компом по ~15часов) после того как я впервые запустил блиц, я сделал первую игру :) В геймдеве около 12 дней, сперва нашел 3дс макс и начал искать приминение моделям, так решил создать игру. Еще поспорил с другом что создам игру, он мне проспорил но не верит что то я создал и говорит, что то какашка и сталкер лучше :( сравнил камень с землей

а вот указатели осилить не могу... я понимаю ето как вроде адрес памяти по которому хранятся даные, но как етот адрес назад превратить в даные %), боюсь жесткий диск испортить.. мож кто обяснит, в википедии((http://ru.wikipedia.org/wiki/Умный_указатель) - кстати офигезный сайт никакой енциклопедии не надо :)) что написано не доходит до меня

avel 05.09.2008 02:01

Ответ: помогите новичку с b3d
 
мля, ну почему я такой экспериментатор?.. щас нажал случайно ктрл+В и поставил тем самым тег жирного шрифта. потом решил проверить, не прокатит ли также поставить на автомате цитаты... в результате пишу сей пост второй раз... я злобный нах... >:-(

терь собсно по теме...
Цитата:

помогите новичку
о, блин, еще один... вы, господа новички, хоть бы названия для тем новые придумывали... а то уже чувствуешь себя пророком-предсказателем...
Цитата:

ничего не понятно дя?
в том-то и ужас происходящего, что все предельно понятно и предсказуемо...
Цитата:

Чтобы научится выбрось всё кроме блица, открой его примеры и читай... и т. д.
эх, хорошо написал... я бы даже сказал талантливо... и охото же тебе время тратить... =))))
Цитата:

Я тебе скажу что и ММО написать
написать можно все и на всем! было бы желание, и как уже заметили выше воля... но вот с последним обычно, проблемы...
Цитата:

все мы начинали с тетрисов, арканоидов и прочей прелести
вот и не все. я начнал с ФПС. а еще параллельно делал РПГшку, которую собсно делаю до сих пор... =))) за это время ее код только полностью, с нуля переписывался уже наверное раз сто... а уш про изменения я вообще молчу... =)))
2MoKa
Цитата:

Цитата:

автопостроение ботского путенаха
Что это? по русски плз..
как, ты не знаешь про ботский путенах?... это же основы геймдева... стыдно, Макс, стыдно! =))))))
2HolyDel
Цитата:

надо получить вейпойнты
сам же и ответил... а уш путей получения оных достаточно много... заюзай один из плоскостных алгоритмов, типа А-стара, например, и добавь Z координату. т. е. будет как бы несколько таких плоскостей... или же разбить все пространство на кубы равные размерам бота, а дальше уже понятно. впрочем, об этом уже написал jimon...
Цитата:

Скрытый текст требуется (3000 сообщение(ий)
Макс, ты енто для кого написал?... 0_0
Цитата:

MoKa, действительно, ставил бы хотя бы лимит 1000
не жмоться и ставь 300 ;) =))
а вообще не пужайте новичков своими заморочками... а то вон уже:
Цитата:

капать перекапать мои извилины!!!
неправильно, кстати, говоришь... надо говорить: копать-колотить. вротмненоги. =))
а вообще, примерно такой реакции и ожидал... )))))
далее.
2falcon
Цитата:

оффтоп но блин я ничего делать не могу без моделей (
вот это неправильная позиция! к нашему проггерскому делу модели никакого отношения не имеют... а конкретно в твоем случае траблы с весом вершин... у тебя одни и теже вершины пренадлежат нескольким костям... с зонами действия костей разберись...
а насчет типов и массивов - там все просто. этож основы логики... с типами я, правда, в свое время, тоже не сразу врубился... ибо именно в блице их в первый раз и увидел. но как их юзать понял сразу. сначала юзал по шаблону, а потом и совсем разобрался. там ничего сложного нет. а массивы - вообще проще париной репы... если есть желание, стучи в асю, погоняю тебя по типам и массивам... растолкую че как. только чур не жаловаться потом на то, какой я злобный и недружелюбный... ^_^ =)) все равно ж не исправлюсь... =))
плюс юзай раздел FAQ там давно все написано и про анимацию, и про типы с массивами, и про все прочее.

а вообще, господа форумцы, я сделал глубокомысленный вывод... форум - зло! как бы парадоксально это не звучало... НО с поправкой: зло для новичков... ибо они теряются во флуде, отвлеченной болтовне, которая вроде как и интересна, но не по теме, ждут готовых решений, и т. д. короче, он(форум) их только отвлекает... ИМХО конечно... посещать форум надо ИМХО тогда, когда уже во многом разобрался. тогда это полезно. можно найти новые решения, узнать что-то чего не знал, просто пообщаться с себеподобными, и т. д. но это все потом, а не когда ты только учишься проггерству...

HolyDel 05.09.2008 10:01

Ответ: помогите новичку с b3d
 
Цитата:

сам же и ответил... а уш путей получения оных достаточно много... заюзай один из плоскостных алгоритмов, типа А-стара, например, и добавь Z координату. т. е. будет как бы несколько таких плоскостей... или же разбить все пространство на кубы равные размерам бота, а дальше уже понятно. впрочем, об этом уже написал jimon...
хм. размер бота 1м на 1м на 1м. размер команты 2000м на 400м на 2000м итого 2000*2000*400 ячеек. даже если 1 байт на ячейку - ето уже 1,5 ГБ памяти, и, получасовой рассчет пути из одного угла комнаты в другой.

SBJoker 05.09.2008 10:18

Ответ: помогите новичку с b3d
 
Насамом деле везде юзают вэйпоинты, посто они как рельсы, имеют пересечения и обозначают все возможные пути движения. Причём у бота есть свобода некоторого смещения относительно вейпоинта для обхода других ботов игроков и манёвров.

HolyDel 05.09.2008 12:06

Ответ: помогите новичку с b3d
 
SBJoker, угу.
вопрос стоял "как найти ети самые вейпонты по мешу комнаты" ))

SBJoker 05.09.2008 12:27

Ответ: помогите новичку с b3d
 
а зачем искать вейпоинты по мешу комнаты? Наша задача поставить бота на вейпоинт, а он дальше как по рельсам волен выбирать к какому смежному вейпоинту бежать. Смежность определяется связями, в идеале каждый вейпоинт должен иметь массив ссылок на ближайшие соединенные с ним вейпоинты. А в какой комнате находится бот это безразницы, они всёравно невидят мир, это привелегия игрока.

HolyDel 05.09.2008 12:30

Ответ: помогите новичку с b3d
 
Цитата:

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

IGR 05.09.2008 13:50

Ответ: помогите новичку с b3d
 
перед тем как их искать, их все равно нужно зделать !!

так что дизайнеру все равно работать нада !!

HolyDel 05.09.2008 13:52

Ответ: помогите новичку с b3d
 
блин, я чо, так непонятно свои мысли излагаю?
смысл в том - чтобы автоматизировать нахождение вейпойнтов. чтобы мэпмейкеру ненадо было их ставить вручную. например в cs 1.6 их не надо ставить. А боты тем ни менее путь находят. даже через трубы.

IGR 05.09.2008 14:00

Ответ: помогите новичку с b3d
 
автоматизировать создание вейпоинтов !! ;)
да это уже совсем другое и намного сложнее !!

Цитата:

например в cs 1.6 их не надо ставить.
незнаеш где читнуть по этому можно ??

jimon 05.09.2008 18:32

Ответ: помогите новичку с b3d
 
HolyDel
читай в этой теме 17 сообщение, вейпоинты в данном понимании - какие-то централизованые точки в под-пространствах, важное замечание при создании такой схемы может быть одностороная связь и двухстороная

falcon 08.09.2008 23:15

Ответ: помогите новичку с b3d
 
сейчас уже много чего понимаю и даже пытаюсь делать игру Космический Придурок 3д!
летаеш на кораблике,садишся на планеты, сбиваеш другие кораблики....

тока не получается... вечно с построением кода проблемы... вроде кажется правильно - анннет.... неработает)))
опыту мало наверно!

HolyDel 08.09.2008 23:26

Ответ: помогите новичку с b3d
 
falcon, опыта уже достаточно пмсм, если бы было мало ты бы говорил "тока не получается... вечно етот блитц тупит"

falcon 08.09.2008 23:46

Ответ: помогите новичку с b3d
 
ну ...
просто как правило изза нехватки опыта в кодировании я незнаю как писать ПРАВИЛЬНО. веть нюансов которых я незнаю море. вот и пишу как топором по чурбаку.
а потом заколябываю,как потом оказывается, просторешаемыми вопросами. но человек которого спрашиваю напрягается. мне становится не удобно но решить проблему самому не удается... сегодня полчаса тупил почему у меня черный экран... тупил тупил тупил.. спросил в асе и пока копипастил код в АСЮ заметил что тупо не прописал перед циклом фукцию создания светов,камер,пивотов и т.п мелочи....
было обидно до нельзя

avel 09.09.2008 00:00

Ответ: помогите новичку с b3d
 
2falcon, насчет "писать правильно" чти мое сообщение выше, если не читал еще... а опыт - он со временем приходит, а не откуда-то...

falcon 09.09.2008 00:02

Ответ: помогите новичку с b3d
 
авел тебе в асю достучаться не могу... боту что ли не правильно ответил?
короч не автризируюсь :)

ABTOMAT 09.09.2008 00:06

Ответ: помогите новичку с b3d
 
Цитата:

Сообщение от falcon (Сообщение 86030)
авел тебе в асю достучаться не могу... боту что ли не правильно ответил?
короч не автризируюсь :)

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

avel 09.09.2008 03:31

Ответ: помогите новичку с b3d
 
хм. сранно господа, сранно.. всмысле странно. хотя нет. все же срано. =)) бота проверю. на крайняк пишите в личку свои аськи сам вас добавлю.

ABTOMAT 09.09.2008 16:33

Ответ: помогите новичку с b3d
 
ок как понадобится что нить то буду писать и туда и туда :)


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

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