4. 개별 플레이어의 가시성 맵
▶각 플레이어에게 고유하게 적용되는 가시성 맵.
▶2차원배열(바이트형)으로 표현.
■ 가시성맵의 갱신
- 유닛의 생성 및 이동으로 인해 유닛의 LOS안에 타일이 들어오면
카운트증가.
- 유닛의 파괴 및 이동으로 인해 유닛의 LOS범위 밖으로 이동시 카운
트 감소.
- count < 0 이면 탐험되지 않은 타일
- count == 0 이면 탐험되었으나 플레이어의 시선범위밖(FOW적용)
- count > 0 이면 플레이어의 시선범위 안
5. LOS판형
LOS판형 : 유닛의 LOS형태를 기록한 판형.
LOS범위별 테이블.
· 캐릭터를 중심으로 상대위치값 갱신
· 수평형태의 띠의 묶음(배열)
· 캐릭터기준으로 수직위치, 수평 시작·끝 위치
LOS의 이동
· 타일의 LOS범위 모두에 대한 카운트 감소, 증가는 비효율적.
· 실제로 이동시 겹치는 부분이 더 많음.
· 겹치지 않는 부분만 갱신하자!!
6. 결합된 가시성 맵
- 플레이어단위의 가시성 맵 통합하기.
- 32비트 DWORD형 2차원 배열 사용.
■ 통합된 가시성 맵
- 길 찾기 등 많은 곳에서 자주 사용되므로 전역변수사용.
- 2비트단위. 1비트는 타일의 탐험여부, 1비트는 LOS범위 여부.
- 2*16=32 16명의 플레이어 지원.
7. 검색의 향상
▶결합된 가시성 맵의 이용
- 타일의 비트 연산만으로 타일정보 확인가능.
- 현재 유닛의 타일이 적의 시야에 있는지 여부 확인가능.
- 타일의 정보가 변할경우만 갱신함으로써 성능향상.
- 유닛의 LOS가 아닌 결합된 가시성맵을 이용하게 됨으로써 플레이
어의 유닛이 정보를 공유한다는 효과.
▶ 유닛 목록의 세부화
- 동맹군 유닛, 적유닛, 건물등을 세부화 함으로써 속도 향상.(공격)