
게임의 개발 사항을 정리하는 글이다.사실, 본인 파트 만 있는 게 아니라, 다른 팀원들의 파트도 섞여 있는 '발표 자료'를 기반으로 작성한 것이긴 하지만, 전체적으로 정리하기는 괜찮다고 판단했다.[사실, 말이 기반으로 작성한 것이지, 복사 + 붙여넣기 이후에 서식 수정이다.]현재 상황에 맞춰서 어느 정도 편집도 해 놓았으니, 일단 이 글만 보면 기술적인 요소는 모두 파악이 가능할 것이라고 생각한다.게임 소개‘모험가’로서 던전을 탐험하는 핵 앤 슬래시 게임입니다.던전 안에서 아이템을 모아 캐릭터를 강화하고, 강화한 만큼 던전을 강화하여 더 강한 아이템을 모으면서 점점 더 높은 수준의 던전을 재패하는 것이 목적인 게임입니다. 다운로드 URL : https://drive.google.com/drive/fold..
오늘은 최종 프로젝트에서 사용했던 기획에 대해서 설명하고자 한다.다만, 이번 프로젝트도 그렇고, 본 캠프 동안은 본인도 개발자로서 참여를 해야하다 보니, 기획서를 작성할 여유가 없어서 전체적으로는 기반 컨셉 기획 정도 만 해 놓고, 실제 작업을 할 때에는 구두 설명으로 설명한 다음, 담당자가 그에 맞춰서 본인이 해석, 제작한 다음 그 제작 사항에 맞춰서 기획을 수정하는 방식으로 진행하였다.그렇다 보니 초기 기획과 최종 기획이 좀 다르다. 초기 기획서더보기장르: 핵 & 슬래시모티브: PoE(디아블로) + (구)트릭스터Ref기본적인 플레이 방식 : PoE 남동석 광산카드 스킬 시스템 : 동방 비상천 or 슬레이 더 스파이어아이템 세팅: 파이널 판타지 7 - 마테리아 시스템 + 로아 (구)트라이포드 시스템던전..
금일, 스파르타 코딩 클럽의 마지막 일정인 최종 발표회를 진행하였다. 일단 근 시일 이내에 10번, 11번으로 최종 기획 정리, 그리고 최종 프로젝트 정리를 올릴 예정이다.[다만, 지금 시간이 시간인 지라, 바로 올리지는 않을 것이다. 아마 저녁 즈음에 올리지 싶다.]그러므로, 본 글은 순수하게 최종 프로젝트에 대한 감상문이 될 예정이다.프로젝트 진행 중에도 느꼈었지만, 팀을 정말로 잘 만났던 거 같다.첫 날에 본인이 기획을 정리해서 들고갔을 떄에도 거의 그대로 사용하는 것으로 결정되면서 빠르게 제작 작업으로 들어갔었고, 이후에 추가되거나 수정되는 사항에 대해서도 다들 적극적으로 참여해줬으니까.전체적으로 양보하면서 다들 적극적으로 임하는 분위기였고, 그 덕분에 프로젝트를 진행하는 데에 마찰이 거의 없었다..
드디어 프로젝트가 1차적으로 완료, 유저테스트를 시작하였다.아래는 유저 테스트 내용 전문이다.[Rogue & Slash "2에 2의 2승" 유저 테스터 모집]안녕하십니까?스파르타 코딩 클럽 Unity_6기 16조, "2에 2의 2승" 입니다.이번에 저희가 제작한 게임, "Rogue & Slash"의 유저 테스트를 진행하고자 합니다.테스트 참여 후 구글 폼을 통해 설문에 참가하시면 소정의 상품을 드리오니, 많은 참여 부탁드립니다.특히, '게임을 많이 진행하면' 받을 수 있는 경품도 있으니, 적극적인 참여 부탁드려요![대상 플랫폼]PC, 모바일※ 모바일 버전은 추후 관련 작업 완료 이후에 배포 될 예정입니다.[게임 장르]로그라이크 핵 앤 슬래시 던전 크롤러[게임 소개]던전, 모험가들의 세상이자, 생계이자,..
아무래도 게임이라면 세이브 로드 시스템이 빠질 수는 없을 것이다.요즘에는 단판으로 진행하는 게임들도 누적되는 성장 요소는 있기 마련이고, 그렇지 않더라도 리더보드 같은 요소들은 거진 있으니 말이다. 본 프로젝트도 당연하지만 세이브 로드 시스템이 필요하다. 다른 게 아니라, '핵 & 슬래시 장르'를 표방하기 때문에 아이템을 모으는 것이 메인 컨텐츠이고, 그런 측면에서 세이브 로드 시스템이 없다는 것은 말이 안되니 말이다. 다만, 세이브 로드 시스템 자체는 그 비중에 비해서 원리가 간단해서 내용이 간단하다.아마 간단하게 작성되지 싶다.세이브 데이터 형성 방식본 작품에는 레벨이 없다. 그 대신에 장비의 능력치와 특성 총계로 능력치가 상승하는 구성으로 되어 있다.그렇기 때문에 본작은 인벤토리와 장비 상황, 여기..
드디어 본 작품의 기반 구상이었던 절차적 생성을 이용한 필드 무한 확장 기능을 작성했다.사실 절차적 생성이라고는 해도 가장 간단한, 격자에 맞춰서 임의의 방을 채워 넣는 구조였지만.거기다가 사전 생성도 아니고 플레이어의 이동에 맞춰서 그때 그때 생성하는 방식이라서 알고리즘도 간단했다. 그럼, 정리를 시작해 보자.기본 로직플레이어의 좌표를 기준으로 가로 혹은 세로가 특정 값의 배율이 될 때 마다 '방 이동 판정'을 시행한다.'다녀온 방' 리스트를 확인하여 변경된 좌표가 기록되어 있는 지 판단한다.[좌표는 인스펙터 상의 좌표가 아닌, 방들의 위치를 지정하는 좌표를 사용한다.]기록되어 있다면 플레이어의 현재 좌표 만 갱신한다.기록되어 있지 않다면 방 생성 알고리즘을 적용한다.4면의 '통로'의 개폐 여부를 확인..
벌써 2주나 지난 일이긴 하나, 프로젝트의 진행 사항을 발표하는 중간 발표가 있었다.프로젝트가 한창 진행 중이다 보니, 심지어 한창 바쁜 시기이다 보니 이런 글을 적을 여유가 거의 없었다... 본 프로젝트의 시연 영상은 다음과 같다. 발표자료도 따로 있기는 하나, 앞서 적은 내용을 정리해서 발표했을 뿐이라서 따로 정리하지는 않겠다. 전체적으로 완성도는 아직 낮다.UI 정리도 아직 되어있지 않고, 에셋도 씌워져있지 않은 데다가 구현되지 않은 내용도 있다.그래도 지금까지 달려왔던 프로젝트의 중간 상황을 이렇게 정리하고 나니까 나름 성취감이 들었다.이제 반이다. 앞으로도 힘내자. 아자.
이번 작업은 트러블 슈팅으로부터 시작된다. 본 프로그램은 기존에도 GameObject를 기반으로 작동하는 오브젝트 풀을 이용해서 최적화를 구성하고 있었다.실제로 어느 시점 까지는 이 구성으로도 최적화 상으로 큰 문제는 없었다.하지만, ActionSystem을 재작업 하자 문제가 발생했다. 재작업 하기 전에 비해서 매우 적은 양의 공격 오브젝트에도 프레임 드랍이 발생했던 것.특히, 실 게임에도 문제가 발생할 수 있겠다 싶을 정도로 느려지기에, 이에 대응해서 NewActionSystem을 구상하는 계기가 되었다. 물론, 문제점은 여럿 있었다. 다수의 공격 오브젝트들이 클래스를 여럿 들고 있어서 발생하는 것도 있었고, 내부 코드 상의 하자도 있었다. 하지만, 본인이 주목했던 또 다른 요소는 'GetCompon..
이번에는 인벤토리 시스템에 대해서 정리 해 볼 예정이다.인벤토리의 시스템의 전체적인 구성본작의 인벤토리는 총 3종류로 나뉜다.Dungeon Inventory던전 탐색 중에 활용되는 인벤토리.던전 탐색 도중에만 유효한 임시 인벤토리로, 던전에서 나갈 경우에는 다음 과정을 거쳐서 초기화된다.사망으로 인하여 탈출하는 경우, '탈출 실패'로 간주하여 소지품과 소지금의 일부가 유실된다.탈출한 경우에는 모든 소지품과 소지금이 유지된다.위 과정의 끝에 남아있는 소지품과 소지금은 Village Inventory로 이동한다.본 인벤토리로 습득되는 아이템은 ItemLog가 표시된다.Village Inventory마을에서 사용 가능한 인벤토리로, 보관함과 상호작용 시 이용 가능하다.인벤토리 UI는 사실상 본 인벤토리에만 존..
금일은 액션 시스템을 어떻게 만들었는 가를 정리해 보고자 한다. 본 프로젝트의 액션 시스템은 다음 구성으로 작성되어 있다.BaseActionActor: 액션의 발동을 담당하는 클래스.ObjectPool에서 ActionObject 프리팹을 가져와서 각도를 설정한다.이후 아래의 ActionObjectContainer 클래스를 초기화한다.ActionObjectContainer: ActionObject의 정물(Pacade)에 해당하는 클래스.ActionPositionHandler: ActionObject의 위치를 담당하는 클래스.Hold: 사용 캐릭터의 하위 오브젝트로 적용. 캐릭터가 이동하면 ActionObject도 함께 움직인다.Projectile: 투사체로 발사. 발사 방향은 사용 캐릭터로 부터의 연장선으..