-
0. 구현 영상API 프로젝트/디아블로2 2021. 3. 29. 22:10
기본적으로 디아블로2에서는 A* 알고리즘이 필요하다.
designatedroom87.tistory.com/379?category=885556
1. 사용언어: C/C++(Win API)
2. 사용 툴 : Visual Studio 2008
3. 세부사항
3- (1). UI구성 : 게임 시작 화면, 인 게임 화면, 맵 에디터 화면으로 구성
3- (2). 자료구조 : 우선순위 큐, 스택, 연결리스트, FSM, Hash Table(크래프팅 시스템에 활용), STL map
3- (3). 디자인 패턴 : 싱글턴 패턴
3- (4). 직소 인벤토리
3- (5). 크래프트 시스템
3- (6). 맵 에디터 기능
4. 구현한 기능
4 - (1). 직소 인벤토리 시스템
아래의 그림은 인벤토리의 화면이다.
아래는 직소 인벤토리 시스템에 대한 영상이다.
4 - (2). 크래프팅 시스템
아래는 아이템을 조합 UI 화면으로 조합할 아이템을 넣고 조합 버튼을 클릭하면 크래프팅이 된다.
아래의 두 그림은 아이템 조합 전과 후의 그림입니다.
아래는 크래프팅 시스템에 대한 영상이다.
4 - (3). 맵 에디터 시스템
아래는 게임 시작 화면으로, 이 화면에서 각 에디터할 공간을 선택함에 따라 에디터 창이 열린다.
각 화면(Scene)들은 자료구조 STL의 map으로 관리를 한다.
아래의 그림은 각 에디터를 선택했을 시의 화면이다.
그리고 편집한 내용은 에디터 저장버튼이 클릭되면, 파일에 저장이 됩니다.
파일에 저장된 내용은 타일의 위치좌표와 타일의 종류와 배치된 캐릭터에 대한 정보들입니다..
아래의 그림은 파일에 쓰인 내용의 일부분입니다.
아래의 세 영상은 맵 에디터에 대한 영상입니다.
맨 마지막 영상은 각 에디터한 내용이 저장되었는지를 확인하는 영상입니다.
4 - (4). NPC와의 상호작용
아래의 그림은 NPC를 선택했을 시에 NPC와 상호작용할 목록입니다.
TRADE는 아이템을 사고 파는 기능, TALK는 대화하는 기능(미구현), QUIT는 대화종료입니다.
아래의 그림은 TRADE를 선택했을 때의 화면입니다.
아래의 영상은 NPC와의 상호작용 영상이다.
4 - (5). 에너미의 유한상태기계( FSM )
아래의 그림은 에너미의 정지상태(IDLE)입니다.
아래의 그림은 플레이어와의 거리에 따라 이동, 공격, 정지 상태가 된다.
4 - (5). 플레이어의 기능
아래의 두 영역은 플레이어가 사용할 수 있는 스킬공간으로, 영역을 클릭하면
플레이어가 사용할 수 있는 기술 목록이 나옵니다.
아래의 그림은 좌,우측의 기술목록이다.
아래의 3개의 영상은 플레이어의 능력에 관한 영상이다.