티스토리 뷰

포트폴리오용 1인 게임 개발 프로젝트를 시작했습니다.

학원에서의 마지막 작업일 듯합니다.

작업 기한은 ~2024.10.04 입니다.

주제는 창작 카드게임입니다.

4명이서 플레이할 수 있도록 네트워크 통신까지 추가할 계획입니다.

 

그런데 카드 게임이란게 비주얼적인 부분이 빈약해서 다른 게임에 비해 초라하다고 생각하고 있습니다...

그에 비해 다른 학생들은 애니메이션이나 쉐이더의 재미에 쏙 빠진것 같아 보이는데,

과연 로직이라도 훌륭하게 완성하여 내실이라도 튼튼한 프로젝트가 될지 걱정입니다...

 


기능정의서

  1. Unity의 Mirror 라이브러리를 사용하여 4인 멀티 카드 게임을 제작합니다.
    • 4명의 플레이어가 모일 때까지 대기합니다. 필요한 인원이 모이면 게임을 시작할 수 있습니다.
    • NetworkRoomManager를 활용하여 로비를 구현합니다.
    • 각 카드는 모든 클라이언트에서 동기화 됩니다.
    • 감정표현 효과로 서로 소통할 수 있습니다.
  2. Cinemachine Camera를 사용하여 화면을 조작합니다.
    • 공통 덱과 각 네 명의 플레이어의 필드를 바라보는 다섯 가지의 화면를 선택하여 볼 수 있습니다.
    • 각 플레이어의 차례가 되면 다른 플레이어들은 해당 플레이어의 화면으로 이동합니다.
    • 카드를 나눠받는 차례에선 모든 플레이어가 덱을 바라보는 화면으로 이동합니다.
    • 상황에 맞춰 알맞은 흔들림 효과를 줄 수 있습니다.
  3. 카드, 덱, 필드, 패를 관리하는 class를 만듭니다.
    • 카드
      • 카드는 고유의 ID를 가지고 있습니다.
      • 네트워크 동기화를 위해 카드는 int형 매개변수로 주고 받습니다.
      • 앞면인 카드에 마우스를 올리면 상세 정보를 볼 수 있는 UI가 나타납니다.
      • 주목하고 있는 카드에는 아웃라인이 활성화되며 서로의 화면에서 확인할 수 있습니다.
      • 카드에는 이름고유 효과, 그리고 네 가지의 소켓 아이콘이 있습니다.
      • 게임에 사용하는 모든 카드를 관리합니다.
      • Dictionary를 사용하여 카드 오브젝트를 ID 값으로 저장합니다.
      • Dictionary[ID]를 사용하여 원하는 카드를 호출합니다.
      • 카드 ID를 저장한 SyncList<int>를 덱으로 사용합니다. 
      • 덱에서 꺼내진 카드의 ID는 SyncList<int>에서 제거합니다.
      • SyncList<int>의 마지막 요소를 덱 맨 위의 카드로 사용합니다.
      • 자신의 차례를 시작할 때 덱에서 카드를 한 장 드로우합니다.
      • 모든 플레이어가 한 번씩 차례를 진행하면 덱에서 플레이어의 수 만큼 카드를 뽑아 공개하고 순서대로 나눠 가집니다.
    • 필드
      • 플레이어마다 자신의 필드를 가지고 있습니다.
      • 필드는 총 13개의 타일로 이루어져있습니다.
      • 인접한 5개의 타일에 카드를 배치하면 타일을 비우고 재사용할 수 있습니다.
      • 필드에 내는 카드는 인접한 카드와 같은 소켓 아이콘을 가지고 있어야 합니다.
      • 자신의 차례를 마칠 때 패가 7장 이상이라면 탈락합니다.
      • 자신의 패에 있는 카드는 다른 플레이어에게 보이지 않습니다.
      • 드래그 앤 드랍으로 패의 카드를 필드에 낼 수 있습니다.
      • 패의 수에 따라 카드가 정렬되는 모양이 달라집니다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함