물량기반게임을 만드려고합니다.

게임의 인공지능에 관한 포럼입니다.

Moderator: 류광

Locked
비회원

물량기반게임을 만드려고합니다.

Post by 비회원 »

제가 레프트 포 데드 같은 물량게임을 제작하려합니다.

하지만 혹시나 많은물량(동시에 300마리 이상이 그려질가능성이있음)이 동시에 나온다면
프레임안정화를 시키는것도 문제입니다.

레포데같은경우에는 AI도 뛰어나지만 수없이 많은적이 온들 렉현상은 거의없는데요

전 2D 횡이동방식을 사용중에있는데

300마리를 한번에 프레임에 그리려면 60fps 정도가 나오므로

1초에 300x60 즉 18000 번 연산을 한다는건데

이렇게되면 상당한 딜레이가 발생할것같네요



보통 일반적으로 몹의 이동이나 AI 처리등은 어떻게 구현하나요?

제가 추측해보건데 쓰레드를 여러개정도로 나누어서 처리를 하거나
몹하나당 쓰레드를 부여해준다거나
비슷한 몹끼리 쓰레드를 나누어 부여하거나
(이는 별액션을 하지않는 멍청한 몹은 아무리 많아도 렉이걸리지않다
보스몹이 등장하면 렉이걸리는 느낌에서 따옴)


이러한 "쓰레드"를 위주로한 방법을 생각했는데

여러분은 어떤가요?



혹시몰라 적어봅니다.------------------------------------------------------------------------------------------------

몹의 패턴은 아래와같습니다.


"중앙의 목표지점을 향해이동" -> [이동]상태로 돌입하고 이동좌표를 클레스 내부에 기억시킴
"방해물이 나올경우 방해물을 파괴" -> [파괴]상태로 돌입하고 타겟ID로 타겟의 오브젝트 포인터를 지정
케릭터가 발사한 총알과 충돌처리 "몸에 맞을경우" -> [충격]상태로 돌입하고 데미지계산/ 넉백을 실행
"머리에 맞을경우" -> [좀비]상태로 돌입하고 일정시간동안 진행중인 방향으로 이동

->[주인공 보조액터]<-

"가장 가까운 몹을 타겟으로 지정하고 용병의 능력에따라 사격범위를 설정함" -> [사격]상태로 돌입함
(보조액터의 이동은 없음)


대충 보조액터 최대 15마리
타워 최대 3기
적 300기 이상
케릭터 까지 연산을한다면 연산량이 평균 350대가 뜰꺼같은데 어찌해야할까요

:총알처리:
동적할당으로 총알을 배정함, 총알은 링크드리스트에 저장됨(STL사용)
링크드리스트에서 차례대로 총알을 갱신해줌 << 쓰레드 활용
총알이 에너미에게 닿았을때 "해당에너미의 상태를 [충격]으로 변경"
총알의 "사라짐"처리


>> 보통 이렇게 총알처리를 "객체기준"으로 하나요?
친구가 객체가아니라 "직선의 방정식"을 활용해서 하는거라던데요

저렇게하면 성능에 큰영향이있을까요?
-----------------------------------------------------------------------------------------------------------------------
Locked