1. Hand (손, 패)Hand는 말 그대로 플레이어의 손을 의미합니다.원래는 손에 들고 있는 카드를 의미하지만List로 손에 들고 있는 Card 오브젝트를 관리하는 class입니다. [SerializeField] List list = new List();인스펙터에서 확인할 수 있도록 어트리뷰트를 추가했습니다. public int[] AllIDs { get { int[] ids = new int[list.Count]; for (int i = 0; i 여차하면 카드 목록을 전달할 수 있게,특히 카드의 ID를 전달하기 위해 int 배열 함수를 준비했습니다.null에 대한 예외 처리가 필요할 수 있습니다. public ..
1. 덱과 카드 관리먼저 Mirror에서Command나 ClientRpc 등의 속성을 가진 메서드를 사용할 때class의 인스턴스를 매개변수로 전달할 수 없습니다.기본적으로 직렬화 가능한 기본 자료형(int, float, string, bool)만 주고 받을 수 있기 때문입니다.대신 카드 오브젝트를 int 형 ID로 주고받을 수 있습니다. using UnityEngine;public class Card : MonoBehaviour{ // 카드의 고유 ID (외부에서 수정 불가, 읽기 전용) public int Id { get; private set; } // 카드의 이름 public string cardName; // 카드 ID를 설정할 수 있는 초기화 메서드 public..
1. 특정 인원을 만족하면 게임을 시작하기Unity Mirror 라이브러리를 사용하여 멀티 플레이 환경을 제작하고 있습니다.NetworkManager를 사용하여 Game Scene에서 4명의 플레이어가 접속하면 게임이 시작되게 할 것입니다. GameManager에서 생성된 플레이어의 수를 int 값으로 기록하고 저장합니다.플레이어 객체가 생성되면 Start() 메서드로 GameManager의 int 값을 +1 합니다.그리고 그 수가 4가 된다면 게임을 시작하기 위한 메서드를 실행합니다.using UnityEngine;using Mirror;public class GameManager : NetworkBehaviour{ // 접속된 플레이어 수를 서버에서 관리하기 위한 네트워크 동기화된 변수 [..
포트폴리오용 1인 게임 개발 프로젝트를 시작했습니다.학원에서의 마지막 작업일 듯합니다.작업 기한은 ~2024.10.04 입니다.주제는 창작 카드게임입니다.4명이서 플레이할 수 있도록 네트워크 통신까지 추가할 계획입니다. 그런데 카드 게임이란게 비주얼적인 부분이 빈약해서 다른 게임에 비해 초라하다고 생각하고 있습니다...그에 비해 다른 학생들은 애니메이션이나 쉐이더의 재미에 쏙 빠진것 같아 보이는데,과연 로직이라도 훌륭하게 완성하여 내실이라도 튼튼한 프로젝트가 될지 걱정입니다... 기능정의서Unity의 Mirror 라이브러리를 사용하여 4인 멀티 카드 게임을 제작합니다.4명의 플레이어가 모일 때까지 대기합니다. 필요한 인원이 모이면 게임을 시작할 수 있습니다.NetworkRoomManager를 활용하여 로..
이제부터 다산다난했던 퍼즐게임 제작기를 작성합니다... 마지막 챕터 '집으로...' 는사냥을 마친 사냥꾼이 멍청하고 게으른 말과 함께집으로 돌아간다는 내용의 게임입니다. 언레일드와, 닌텐도 스위치의 월드와이즈 51이라는 게임에 수록된 슬라이딩 퍼즐을 참고하여 기획하였습니다. 크게 보면 슬라이딩 퍼즐과 차이가 없지만나름의 차별 요소를 두기 위해언레일드의 작업 요소를 조금 추가하였습니다.플레이어 캐릭터를 조작하고 이동하여 맵을 수정하고장애물을 제거하는 작업들 말입니다.8. 게임 설명게임의 목표는 단순합니다. 도로를 따라 이동하는 말이 집까지 갈 수 있도록도로 퍼즐을 연결해 길을 완성하는 것입니다. 말은 길을 따라 스스로 천천히 이동합니다.플레이어는 말이 계속해서 앞으로 나아갈 수 있게도로 퍼즐을 이어나가야 ..
학원의 유니티 수업은 유니티를 배워본 누구나 한 번씩은 다 해볼 법한 프로젝트로 진행되었습니다.플랫포머 러닝액션을 통해 오브젝트 풀링을 배우고서바이벌 슈팅 게임으로 레이캐스트와 클래스, 인터페이스 상속을 익혔습니다.그리고 간단한 리듬 게임을 만들기도 했습니다.게임을 만드는 데 익숙하지 않은 팀원들에게다음에 있을 중요한 팀과제를 위해이번 프로젝트를 복습과 연습의 기회가 되었으면 했습니다. 5. 네 개의 게임정해진 스토리를 기반으로 게임을 네 개의 챕터로 나누고 각 챕터마다 각기 다른 게임을 만들기로 하였습니다.앞서 말한 바와 같이 슈팅 게임과 리듬게임, 러닝 액션 게임과 퍼즐 게임을 기획하였고본인은 마지막 챕터의 퍼즐 게임을 제작하기로 하였습니다.Chapter 1. (보우 슈팅 게임) '더 라스트 헌트' ..
1. 시작...6월, 유니티 수업을 시작하고 1개월...두 번째 팀 작업을 시작했습니다.유니티를 처음 접하는 팀원들에겐커리큘럼은 분명 성급한 느낌이지만하루빨리 성장해야 할 시기임은 분명하기에목표를 잡고 마감 안에 반드시 완성한다는 각오로 작업하였습니다. 작업 기간은 2024.07.08 ~ 2024.07.31입니다. 시리즈로 나누어 개발 일지를 뒤늦게나마 작성합니다. 2. 주제학원의 두 번째 팀프로젝트였습니다. 첫 프로젝트 때는 모두가 처음이고 미숙하였기에체력적으로도, 특히 감정적으로도 소모가 너무 컸습니다.본인 또한 팀 작업이 처음이었고팀장이라는 자리를 맡아 책임감에 대한 압박이 너무 크다 보니일 배분에 실패하고 게임의 태반을, 거의 90%를 혼자 작업을 해버렸습니다.그러다 보니 '이게 팀 작업이라고 ..
한 달 만에 C# 언어 기본을 마치고 드디어 유니티 수업이 시작되었다.그리고 개강 두 달째, 개인 2D 프로젝트가 시작되었다.다른 학원생들은 시중의 게임 리소스를 가져다 썼지만,나는 몇 년 전에 한 번 만들어보려다 덮어둔 게임이 생각나서직접 만들었던 리소스를 가져다 프로젝트를 진행했다. 아무래도 유명 게임들의 리소스에 비해 퀄리티가 처참하지만...내가 직접 그린 그림에 본을 심고 애니메이션까지 만들어움직이는 모습을 보니 큰 성취감을 느꼈다. 1. 기획부터?게임 개발자라면 누구나 마음속에 '나의 게임'이란 걸 생각하고 있을 것이다.취업을 위한 직업 훈련 학원에서조차 1인 개발을 하고 싶어 왔다는 사람들이 있을 정도로...;이런 기회가 아니면 언제 내 게임을 만들어 보겠는가! 게임은 옛날에 재미있게..