본문 바로가기

Game_Dev

(5)
프로젝트 MC #04 - 프로젝트 마무리 개요22년도에 프로그래밍 공부 겸, 간단한 게임을 만들어보고자 시작했던 프로젝트가 2년이 지난 24년도에 끝을 맺게 됐네요.조금 지난 지금, 깃 커밋 내역을 되돌아보면서 정리하면서 글을 적어봅니다. 📝이번 글에서는 UI, 다루지 않았던 사소한 내용들, 마지막으로는 프로젝트를 마무리하면서 느꼈던 점들을 정리해보려 합니다.  프로젝트의 첫 아이디어는 '체스 말을 원하는 수량을, 자유롭게 배치할 수 있게 한 체스 게임은 어떨까?' 였습니다. '샷건 킹' 이라는 로그라이크 액션 게임을 보고 아이디어가 생각났던 것 같아요.따라서, 핵심 시스템인 체스말 구성으로 덱을 빌딩하는 시스템과, 실제로 체스처럼 말이 움직이고 전투하는 시스템 두 가지를 구현하는 것을 프로토타이핑에 반영하는 것을 목표로 했습니다.처음에는 데..
프로젝트 MC #03 - 덱 빌딩 및 데이터 저장 개요대학교에 복학하게 되면서, 수업 과제 겸 프로젝트를 예토전생 시켜 개발을 이어가게 되었습니다. 현재는 프로토타입 개발을 완료한 상황으로, 개발 과정을 복기하면서 글을 적어보고 있습니다.지난 차례의 글에서 이동 및 차례 처리와 같은 플레이에 필요한 로직들을 대부분 구현했으니, 이제 프로젝트의 핵심 컨셉인 체스 말의 수량을 자유롭게 편집해 덱을 만드는 시스템을 만들 차례입니다. 너무 프로젝트의 볼륨이 커지면 벅찰 것 같다는 생각도 있었고, 프로토타입의 재미 검증이 더 우선이었기 때문에 멀티플레이 구현 없이 (처음엔 데디케이트 서버를 생각만 했었습니다...) 싱글로 오프라인 상에서 게임 플레이를 진행하려 했습니다. 따라서 덱 빌딩 또한 한 화면에서 백이 덱을 구성한 뒤, 흑이 이어서 덱을 구성하는 식으로만..
UI 디자인 기록 - 스푸키 프렌즈 개요 사이드 프로젝트로, 제페토 플랫폼에 '스푸키 프렌즈'라는 이름의 간단한 캐주얼 수집형 (포켓몬 고 느낌의) 게임을 만들었던 과정을 정리해보고자 글을 쓰게 되었습니다. 스푸키 프렌즈는 게임 내 셀프 카메라를 통해 사진을 찍어 유령을 포획하거나, 포획한 유령을 상위 등급으로 진화시켜 여러 유령을 수집하고, 몬스터와 클리커 형식의 전투를 진행하기도 하는 게임입니다. 프로젝트 팀원과 목표했던 주안점은 '제페토'의 SNS와 연결되어 게임의 외연을 SNS로도 확장시킬 수 있도록 하는 부분이었습니다. 1차적인 요소로는 수집한 유령 캐릭터를 장착해 필드에서 타인에게 과시할 수 있도록 했고, 이어지는 요소는 게임 내에서 찍은 사진을 제페토 피드상에 올려 SNS와 연결되는 지점이 생기도록 했습니다. 기획적인 이야기는..
프로젝트 MC #02 - 말 이동 가능하게 구조 만들기 개요저번 글에서는 가볍게 프로젝트를 생성하고, 말들이 움직일 수 있는 보드를 만들어 보았습니다.그 다음 차례로, 말들을 움직일 수 있게 만들어 보겠습니다. ♟  구조 만들기일단 게임에 필요한 큰 요소들을 3가지로 잡았습니다.전체적인 흐름을 처리해주는 보드매니저, 보드의 한 타일, 그리고 말.처음에는 매니저가 보드 타일을 들고있고, 타일은 말을 들고있는 순으로 상하가 명확한 구조로 생각을 했었습니다. 보드 매니저에서 말의 모든 움직임도 모두 처리해주고, 타일과 말은 각각의 속성값들과 자잘한 메소드만 들고 있는 구조로요.2d 게임이었다면 위와 같은 구조에서, 타일 콜라이더만을 통해 터치를 처리해주면 상호작용에 문제가 없었겠지만 (모든 조작이 타일 터치를 통해서 처리, 말 선택 또한 해당 말이 위치한 타일을 ..
프로젝트 MC #01 - 체스 보드 생성하기 최근에 개인적인 일정들이 마무리되어서, 개발 공부 겸으로 아이디어 중 하나였던 체스 베이스 게임을 하나 심심풀이로 만들어보기로 했습니다. 일단 체스 보드부터 시작해요. ··· [HideInInspector] public Vector3[,] board = new Vector3[6,6]; [SerializeField] private GameObject tileWhite; [SerializeField] private GameObject tileBlack; [SerializeField] private float tileSize = 1; void GenerateBoard() { bool isBlack = true; for(int i = 0; i < 6; i++) // j - Horizontal (A,B,C...)..