본문 바로가기
Development/Unity BootCamp

멋쟁이사자처럼부트캠프 Unity 게임 개발 3기 71일차

by Mobics 2025. 3. 11.

 

목차


    ※ 랜덤으로 조편성이 되었고, 팀 프로젝트로 오목 게임을 만들게 됐다.

    : 프로젝트 관리 툴인 Jira와 소스 관리 툴인 Github를 내가 만들어서 팀원들을 초대했다.


    오목 게임 만들기

    25.03.11

    게임 설계 및 프로젝트 계획

    : 게임 설계 과정에서 어떤 기능을 어떻게 만들 것인지 팀원들과 소통합니다. 이 과정을 통해 목표하는 결과물에 대해 팀에서 결정합니다.

    --> 프로젝트 계획을 문서화 합니다. 프로젝트 계획에는 게임 설계 및 각 팀원의 담당 파트에 대해 작성하며, 디자인이나 사운드 등 개발 외 작업에 대해서도 작업을 계획합니다.

     

    >> 개요

    : 게임은 멀티플레이와 AI 플레이가 합쳐진 형태의 오목 게임입니다.
    --> 기본적으로 멀티플레이가 구현되면 좋겠지만, 멀티플레이 구현이 어렵다고 판단되면 AI 기반의 싱글 플레이로 구현

    • 프로젝트 관리 툴 : Jira
    • 소스 관리 툴 : Github
    • 프로젝트 템플릿 : 2D (Built-In Render Pipeline)
    • 게임 플랫폼 : 모바일 --> 테스트 환경은 PC
    • 프로젝트 기간 : 2025.03.11 ~ 2025.03.31

     

    주요 시스템

    >> 게임 플레이

    : 게임은 일반 렌주룰을 따라 진행됩니다.

    --> 렌주룰은 흑이 유리한 입장을 보완하기 위해 3x3, 혹은 4x4가 불가능하고 장목이 불가능하게 하는 것입니다.

    • 게임은 한 턴에 30초의 시간이 주어지며, 30초를 초과하면 패하게 됩니다.
    • 기물을 배치하기 위해서는 터치 후 "착수" 버튼을 클릭해야 합니다.
    • 렌주룰에 의해 착수할 수없는 곳은 "X" 마크가 표시 되어야 합니다.
    • 게임 중에는 누구의 턴인지를 UI를 통해 표시합니다.
    • 직전에 둔 돌이 어떤 돌인지 알 수 있게끔 표시 되어야 합니다.

     

    >> 급수 시스템

    : 급수는 18급에서 1급까지 총 18단계로 나누어 집니다. 플레이어는 현재 급수에서 연속으로 3번을 이기면 급수가 올라가고, 연승 중 패를 하면 승급 포인트가 1회 차감됩니다.

    --> 즉, 처음에는 승급 포인트가 0이었다가 1번 승리하면 승급 포인트가 1, 2번 연속 승리하면 승급 포인트가 2 그리고 또 한 번 승리하면 승급 포인트가 3이되어 다음 급수로 승급합니다. 연승 횟수는 -1, -2로도 떨어질 수 있는데, -3까지 떨어지면 한 단계 낮은 급수로 강등됩니다.

    패배   승리
    강등 -3 -2 -1 0 1 2 3 승급

    ※ 1급이 되었을 땐 더 이상 승급이 되지 않습니다.

    ※ 승급 포인트는 급수에 따라 달라집니다.

    • 10급 ~ 18급 : 3점
    • 5급 ~ 9급: 5점
    • 1급 ~ 4급: 10점

     

    >> 랭킹 시스템

    : 랭킹은 급수를 기반으로 표시합니다. --> 동일한 급수끼리는 승률을 바탕으로 랭킹을 표시합니다.

     

    └ 논의 후 결정사항

    : 자신 계정의 랭킹이 가장 상단에 나타나도록 구현

    --> 멀티 플레이 구현 전에는 다른 랭킹들은 더미 데이터로 채우고, 멀티 플레이를 구현한 후에는 자신의 랭킹 다음으로 높은 급수부터 차례대로 나오도록 구현

     

    >> 기보 시스템

    : 자신이 플레이한 기록을 다시 돌려볼 수 있는 기능을 제공합니다.

    --> 한 턴 씩 게임을 재생할 수 있습니다.

     

    >> AI 플레이

    : AI 플레이는 난이도를 구분하여 쉬운 AI부터 어려운 AI까지 나뉩니다.

    --> 낮은 급수를 가진 플레이어와 매칭되는 AI는 쉬운 난이도의 AI이고 높은 급수를 가진 플레이어와 매칭되는 AI는 어려운 난이도의 AI입니다.

     

    └ 논의 후 결정사항

    : AI의 난이도 설정

    • 10급 ~ 18급 : 쉬움
    • 5급 ~ 9급 : 보통
    • 1급 ~ 4급 : 어려움

     

    >> 멀티 플레이

    : 게임을 시작하면 랜덤 매칭으로 상대방과 매칭되는데 이 때 상대방과는 비슷한 급수를 가져야 합니다.

    • 매칭이 될 수 있는 급수는 플레이어의 급수 기준으로 -1에서 +1까지 매칭이 가능합니다.
    • 매칭하는 중에는 안내 팝업이 표시됩니다.
    • 매칭될 유저가 없을 때는 AI와 매칭이 됩니다.
    • AI와 매칭될 땐 AI의 난이도가 급수에 맞게 비슷한 수준으로 매칭됩니다.
    • 회원가입, 로그인이 구현되어야 합니다.
    • 유저의 ID는 이메일로 등록합니다.
    • 유저의 닉네임을 입력할 수 있어야 합니다.

     

    ※ 멀티플레이를 구현하지 않을 때도 회원가입 및 로그인 기능은 구현 되어야 하며 정보는 PlayerPrefs를 이용해 저장합니다.

     

    └ 논의 후 결정사항

    : 서버에 저장될 유저 데이터

    • 아이디 (이메일)
    • 비밀번호
    • 닉네임
    • 프로필 이미지
    • 급수 (레벨)
    • 승급 포인트
    • 코인
    • 경기 전적 (승률)

     

    >> 유저 관리

    : 멀티플레이와 싱글플레이 모두 최초 게임 진입 시 회원가입 화면을 통해 유저 정보를 입력해야 합니다.

    --> 이 때 입력하는 정보는 다음과 같습니다

    • 아이디 : 아이디는 이메일 주소를 사용하고, 중복된 사용자 생성은 막습니다.
    • 비밀번호 : 비밀번호는 암호화 되어 저장되어야 합니다.
    • 닉네임
    • 프로필 이미지 : 프로필 이미지는 제공되는 이미지 중 하나를 선택하는 방식으로 등록합니다.

     

    >> 코인 시스템

    : 오목 게임에서는 코인이라는 재화가 사용되며, 게임을 플레이하기 위해서는 100 코인이 필요합니다.

    --> 상대방과 플레이 후 상대방이 재대국을 신청하면 신청한 유저는 코인이 차감되지만 자신의 코인은 차감되지 않습니다.

     

    코인을 충전하기 위해서는 상점에서 코인을 구매해야 합니다.

     

    └ 논의 후 결정사항

    • 처음 시작하면 지원금 지급
    • 출석 이벤트로 코인 지급 --> 일주일 출석 보너스도 존재

     

    >> 상점

    : 상점에는 코인을 구매할 수 있는 항목이 존재합니다.

    --> 이 중 광고 시청 후 500 코인을 획득할 수 있는 항목이 존재합니다.

     

    게임 개발 시, 주의 사항

    >> 게임 개발

    : 게임을 개발하며 프로젝트 관리 도구에 지속적으로 소스를 commit 합니다.

    --> 기능별로 Branch를 만들어서 작업을 진행하고 Main에 Merge 합니다. (Branch의 commit이 남아있게 merge 합니다. Squash and Merge, Rebase And Merge 사용 안 함)

     

    >> 테스트 및 빌드

    : 완성된 게임을 테스트 후 이상이 없으면 빌드를 합니다. --> 모든 프로젝트는 Windows 기반으로 빌드합니다.

     

    └ 산출물

    • 최종 실행 파일
    • 최종 플레이 영상

     

    대략적으로 작성해본 구상

    https://www.figma.com/board/m2ASmj65UHh7knswyCW1Ck/Omok-Masters?node-id=0-1&p=f&t=QtTVtM95sKM48tEk-0

     

    Figma

    Created with FigJam

    www.figma.com

     

    그 외 정보

    : 오목 금수 알고리즘 관련 블로그

    https://velog.io/@cldhfleks2/java%EC%98%A4%EB%AA%A9-%EA%B8%88%EC%88%98-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

     

    [java]오목 금수 알고리즘

    알고리즘의 핵심 : 쌍삼의경우는 열린 3을, 사사의 경우는 조건없는 4를 생각해본다.놓은돌을 기준으로 그림과같이 8가지 방향이 생긴다. 여기서 같은 색의경우 같은 메소드안에서 풀었다.(ex. fin

    velog.io