• 게임 제작 관련
  • 랜덤 던전 생성 알고리즘 (Random Dungeon generator)

랜덤 던전 생성 알고리즘

[ 소스코드 보기 ]
  • #Unity#RandomDungeonGenerator#아이작#던전#맵만들기#알고리즘#
  • [INFORMATION]
  • 아이작(게임)에서 구성되는 랜덤 던전 맵의 형태로 구성.
  • 방의 구성은 1칸 ~ 4칸까지 하나의 방으로 구성되며, 현재 캐릭터가 있는 방을 제외한 나머지 방들은 보이지 않는다.
  • 미니맵의 경우 현재 캐릭터가 있는 방은 가장 밝은 색으로 표현하며 주변에 위치한 한번 이상 방문한 방들은 옅은 회색으로 표현하며, 방문하지 않은 방은 짙은 회색으로 표현한다.
  • 자세한 소스코드는 깃허브를 통해 참고
  • [Logic]
    • 1) 2차원 배열을 이용하여 미리 방의 전체적인 구조를 생성.
    • 2) 구조화 된 방을 생성하고 부모-자식 관계를 고려하여 방을 병합.
    • 3) 상 / 하 / 좌 / 우를 고려하여 방이 있는 경우 문과 벽을 생성, 없다면 벽을 생성
    • 4) 위에 생성된 방을 기준으로 미니맵도 동일 하게 생성
    • 5) 생성된 미니맵은 전체 비활성화 후 현재 방을 기준으로 주변 미니맵들을 활성화
  • [Structure]
    • 1) RoomController.cs : 방의 모든 것들을 관리하는 Manager
    • 2) DungeonCrawlerController.cs : 방의 데이터를 구성하는 스크립트.

          * 2차원 배열을 기준으로 을 확률적으로 계산하여 생성

          * 방의 타입(Boss, Hidden, Item, Normal)

            방의 크기(Single(1칸), Double(2칸), Triple(3칸), Quad(4칸)) 확률적으로 계산

    • 3) Room.cs : 하나의 방으로서 벽, 문, 오브젝트 들을 직접적으로 관리.

          * 개별의 Single 방들을 Double, Triple, Quad로 구성하고 관리하는 스크립트

    • 4) SubRoom.cs : 방의 개별적 인 요소들에 대한 관리

          * 방으로서가 아닌 의 각각에 대한 구성

            ex) Triple Room애 대해서 (1 Room : 3 SubRoom)으로 구성

  • ★ 개발언어/엔진

  • Unity (2019. 4.22f) / C#
  • ★ 개발인원

  • 1명
  • ★ 개발내용
    • • 랜덤 던전 생성 알고리즘 개발
    • TEL : 010-2083-6851 / FAX : 054-673-6851
    • E-mail : kon9383@naver.com / kon9383@daum.net
    • Blog : https://blog.naver.com/kon9383/
    • Copyright ⓒ 2021. KwonDeockHo-made. All right reserved.