큰 마을에 들어갈때 순간렉을 없애려면?

2D, 3D, 다각형, 픽셀 등 게임의 그래픽 프로그래밍에 관한 포럼입니다.

Moderator: 류광

Locked
dalphin
Posts: 91
Joined: 2005-06-10 17:23

큰 마을에 들어갈때 순간렉을 없애려면?

Post by dalphin »

와우나 리니지2를 보면 빌딩이 여러개 있는 마을에 들어가도 렉이나 마을 진입 할때, 다른 게임보다
로딩에 의한 렉이나 마을에 들어가더라도 프레임이 저하가 별로 없는것 같습니다.

마을이나 성안에서는 BSP나 포탈 같은 내부 컬링 알고리즘을 적용시키는건지 궁금하네요.
성에 진입할때, 순간적으로 버벅거리는것도 없는것 같습니다.

제가 생각 할수 있는것은 다음과 같습니다.

1. 미리 로딩한다
2. 쓰레드에 의해 로딩?
같 쓰레드를 사용했는데, 와우나 리니지2를 제외한 대부분의 게임은 순간적으로 느리죠?
3. 성이나 큰 오브젝트들을 특정한 단위로 잘라서 로딩한다.
4. 인도어존처럼 BSP나 포탈 알고리즘을 외부지형과 잘 혼용한다.
5. 위에 4가지 방법을 모두 짬봉 시킨다.

어떤 방법이 가장 효율적인 방법인지 모르겠네요.
아니면 또다른 방법이 있을까요?
쉽게 , 즐겁게....
비회원

Re: 큰 마을에 들어갈때 순간렉을 없애려면?

Post by 비회원 »

dalphin wrote:와우나 리니지2를 보면 빌딩이 여러개 있는 마을에 들어가도 렉이나 마을 진입 할때, 다른 게임보다
로딩에 의한 렉이나 마을에 들어가더라도 프레임이 저하가 별로 없는것 같습니다.

마을이나 성안에서는 BSP나 포탈 같은 내부 컬링 알고리즘을 적용시키는건지 궁금하네요.
성에 진입할때, 순간적으로 버벅거리는것도 없는것 같습니다.

제가 생각 할수 있는것은 다음과 같습니다.

1. 미리 로딩한다
2. 쓰레드에 의해 로딩?
같 쓰레드를 사용했는데, 와우나 리니지2를 제외한 대부분의 게임은 순간적으로 느리죠?
3. 성이나 큰 오브젝트들을 특정한 단위로 잘라서 로딩한다.
4. 인도어존처럼 BSP나 포탈 알고리즘을 외부지형과 잘 혼용한다.
5. 위에 4가지 방법을 모두 짬봉 시킨다.

어떤 방법이 가장 효율적인 방법인지 모르겠네요.
아니면 또다른 방법이 있을까요?
wow 대도시랙 장난 아닌데요... -_-
최근들어 로딩 매커니즘을 좀 개선한듯 하더군요. 상용화 초기땐 사람 없는 서버에서도 스톰윈드 입구는 거의 죽음이었다는..

대도시랙은 대부분 로딩의 문제입니다. 순간적으로 시야 안에 많은 수의 오브젝트가 생성되면서 랙이 생기지요. 로딩 매커니즘을 얼마나 잘 만드느냐에 달린듯.
dalphin
Posts: 91
Joined: 2005-06-10 17:23

Post by dalphin »

로딩문제가 제일 심각할것 같네요.
모 엔진을 사용하는데, 이 엔진의 초기때는 백그라운드 로딩이 지원이 안되었기 때문에, 엔진을 수정해서 점진적 로딩을 사용했었고, 요즘은 백그라운드 (멀티 쓰레드)로딩을 사용한는데, 두 가지 다 초반 로딩의 렉이 심한것 같습니다.

오브젝트 공유가 많으면 미리 로딩하는것도 괜찮은것 같은데, 공유되는 오브젝트가 거의 없기 때문에,
미리 로딩하는 방식은 무리인것 같습니다.
여러가지 방법을 테스트 해서 좋은 결과를 유도 해내야 될것 같습니다.
쉽게 , 즐겁게....
seeper
Posts: 1483
Joined: 2003-06-06 23:19
Contact:

Post by seeper »

기획적으로 약간이나마 분산시키는 방법도 있을것 같습니다.
예를 들자면 경매 시스템 같은 경우 보면 굳이 죽치고 앉아 있을 필요 없으니까요.

wow 같은 경우는 입구에서 문을 가로 막아서 한번에 안보이게 했고..

리니지 같은 경우는 잘 기억이 안나지만 어떤 곳은 입구를 구불구불하게 길게하는 방법도 썼던것 같습니다.
seeper0 (a) gmail.com [email주소 무단수집거부]
imays
Posts: 1044
Joined: 2003-02-18 10:29
Contact:

페이드인은 어떨까요?

Post by imays »

랙 걸려봤자 어둠컴컴할테니까요. ^^
실제로 써보니까 쓸만하더라구요.
온라인 게임 서버 엔진 ProudNet
http://www.nettention.com
비회원

아하...

Post by 비회원 »

음.. 와우에서 오그리마 입구가
┏┛ 이렇게 꺾여있는게 그거였군요. :)
그리고 리니지2에서 다크엘프 도시 갈때 구불구불한 길을 지났었던 기억이 나네요.
정작 게임을 할 당시엔 몰랐다가, 한두 해 지나 오니 그 깊은 뜻을 알게 되는군요.
비회원

지나가다...

Post by 비회원 »

제상각으로는 일단 LOD알고리즘을 명확하게 구현하셔서 각 거리 레벨에 따라
오브젝트 디테일을 변경하셔서 최적화 하시는 것도 좋으실듯하시공...
아니면 다이나믹 로딩으로 버텍스보단 텍스쳐연산이 훨 많은 프로세스를 필요로하닌깐
현재 글픽 카드의 남은 텍스쳐 메모리와, 쓰인 메모리를 체크후
그에 따른 렌더 쳐리를 해주시면 좋을듯하네요.
비회원

loading 랙 줄이기

Post by 비회원 »

back-ground thread loading을 전제로 깔고 제가 생각해 본 우선순위입니다.

1. event scripts
2. geometry streams for collision mesh (이것에 따라 fog range를 dynamic하게 조정)
3. character & scene source geometry streams
4. textures (window message queue같은 resource priority 체계 필요)
5. sound resources

collision mesh가 로드되기 전에 character등 기본적인 physics가 필요한 개체(object)들이 먼저 로드되었다면, 렌더링을 무시합니다.
Locked