
어쩌다 보니 뒤늦게 기획자분께서 카드 패 내부에서의 카드 스왑이 가능했으면 좋겠다는 의견을 받았다.카드 스왑은 한 번도 구현해본 경험이 없어서 할 수 있을지 의문이 들었다.근데 뭐.. 못하면 어쩔건데 마인드로 하드코딩이라도 해볼 생각으로 작업에 들어갔다.현재는 카드 U
타워 오브 가디언즈라는 턴제 덱빌딩 로그라이크 게임을 만들게 되었다.덱빌딩 장르는 처음이라 그런건지 세세한 디테일이 많은 기획이라 그런지 꽤나 신경 쓸 부분이 많다.전투 시스템 UI의 전반적인 구현을 맡게 되면서 카드의 애니메이션과 상호작용을 주로 다루고 있던 도중에
이번 글에서는 아이템 슬롯을 범용적으로 사용할 수 있도록 각 상황에 알맞는 슬롯을 돌려주거나 설정해주는 컨텍스트를 구현해볼 것이다.글의 마지막에는 이 슬롯 컨텍스트가 라피에서는 어떻게 완성되었는지 전체 코드를 보이도록 하겠다. 시작해보록 하겠다.처음부터 아이템 슬롯에

커서 매니저를 인벤토리 시스템에 포함시킬까 말까 고민을 많이 했다. 사실 커서 매니저의 역할은 인벤토리 시스템에 국한되는 것이 아니라 다양한 문맥에서 다양한 이벤트 호출에 의해서 커서를 변경하는데 이 이벤트가 인벤토리 시스템도 존재한다.그래서 완벽한 인벤토리를 위해서는

인벤토리 UI는 앞선 글에서 설명했듯이 아이템 슬롯을 담는 컨테이너에 불과하다. 아이템 슬롯이 그만큼 중요하며 많은 기능을 담당한다.많은 기능을 담당하는 만큼 코드가 비대해지므로 이를 어떻게 분리하느냐가 아이템 슬롯 구현의 핵심이라고 할 수 있다.역시나 마찬가지로 아이

Cast Away 프로젝트에서 중립 동물 NPC를 구현하는 과정에서 동물 NPC가 경사를 올라가는 도중 동물 NPC의 발과 그림자에서 위화감을 느꼈다.Scene 뷰를 통하여 관찰한 결과 Box Collider 컴포넌트의 한 모서리만 붙어있는 채로 공중에 떠 있는 동물

저번 글에서는 Item과 ItemData를 이용하여 인벤토리 서비스를 구현했었다. 이번 글에서는 인벤토리 서비스를 이용하여 인벤토리 UI를 구현해본다. 인벤토리 시스템에서 인벤토리 UI는 사실 큰 비중을 차지하지 못한다. 단순히 아이템 슬롯들을 보관해주는 컨테이너의 역

시작 저번 글에서 정의한 Item을 토대로 이번 글에서는 인벤토리 서비스를 구현해보려고 한다. 인벤토리 서비스는 InventoryPresenter와 IItemSlotContext에서 제공할 메서드를 구현하는 데 사용한다. 그럼 이제 인벤토리 서비스에 대한 내용을 시작

시작 인벤토리 시스템은 게임에서 가장 중요하다고 말할 수 있는 부분이다. 인벤토리를 통해서 사용자는 자신의 획득한 아이템을 가지고 특별한 연산들을 진행할 수 있다. 또한, 인벤토리와 다른 UI들과의 상호작용을 생각하면 절대적으로 차지하는 비중이 많다. 그러므로 인벤토

저번 글에서는 키 서비스를 이용하여 키 바인더 UI를 구성하는 과정을 보였다. 하지만 키 바인더 UI가 존재함에도 이를 열지 못했다. 이게 무슨 소용인가.. 그래서 키 바인더 UI를 포함하여 앞으로 등장할 팝업 UI들의 모든 활성화와 비활성화의 책임을 가지는 팝업 UI

앞서 구현한 키 서비스를 토대로 키 바인더 UI를 제작할 차례다.만약 UI로 사용하기에 적절한 이미지가 없다면 아래의 이미지를 사용하도록 하자.여기에서 말했듯이 키 바인더 UI는 MVP 패턴을 이용한다. 하지만 키 바인더 UI는 각각의 키 바인더 슬롯을 묶어주는 컨테이

데스크탑 게임에 있어서 키 바인딩 시스템은 사용자들의 자유도와 컨트롤을 높이는 데 큰 기여를 한다. 사람들마다 선호하는 키 조합과 배열이 다르기 때문에 사용자들의 만족도를 높이려면 키보드의 키를 개개인이 바인딩할 수 있어야 한다.본격적으로 다양한 팝업 UI의 활성화 및

앞서 구현한 로컬 경험치 서비스와 로컬 유저 서비스를 토대로 스테이터스 UI를 제작할 차례다.만약 UI로 사용하기에 적절한 이미지가 없다면 아래의 이미지를 사용하도록 하자.여기에서 말했듯이 UI는 MVP 아키텍처 패턴을 이용해서 제작할 것이다. 그래서 Model, Vi

저번 글에서는 스테이터스 UI에 필요한 요소인 총 경험치를 로드하고 제공하는 경험치 서비스를 구현했었다.이번 글에서는 스테이터스 UI에 표시하기 위한 나머지 데이터들을 관리하고 제공하는 유저 서비스를 구현해볼 예정이다. 시작해보자.우선 서비스에서 제공할 데이터를 먼저

순서 1. 경험치 서비스 유저 데이터 서비스 스테이터스 UI 시작 > MVP 패턴에 대해서 모르신다면 여기를 참고하세요. 경험치 서비스를 설명하기에 앞서 유저 데이터 시스템의 다이어그램을 먼저 살펴보자. 유저 데이터 시스템은 MVP 구조로 설계했으며, 서비스와

서비스 로케이터는 DontDestroyOnLoad와 Singleton으로부터 해방될 수 있는 첫 길잡이 역할을 했었다. 두 번째 길잡이는 DI Container다.DI Container는 의존성을 주입할 때 편리하게 사용할 수 있는 도구다. DI Container 프레

Lapi는 2D RPG를 제작해보고자 하여 시작한 프로젝트다. 다른 RPG와 비교해서 특별한 것을 보여주고 싶은 마음은 없지만, 다른 RPG에서 제공하는 기본적인 기능들을 구현해보려고 했다. 그리고 구현한 기능들을 하나하나 정리하면 누군가에게 도움이 되지 않을까라는 마

내가 제작 중인 Lapi라는 게임에서 커서를 NPC나 적에게 갖다대면 커서가 변경되는 것을 구현하고 있었다.처음에는 Update()에서 마우스 위치로 레이캐스팅을 하며 레이 히트된 오브젝트가 있다면 분기를 통해서 커서를 변경하는 방법을 사용했었다.하지만 이 방법은 감지
서론 서류 검토 기간 중 일주일이 넘어도 연락이 오지 않길래.. 서류 심사에서 불합격을 했구나 생각하던 찰나에 문자로 합격 통보를 받아 급하게 2일 후 면접을 보러 갔다. ICT 인턴십 사이트에서 기업 팁을 통해 1:2 면접 또는 n:m 면접일 수도 있다고 사전에 알아두고 갔다. 20분 정도 일찍 도착하여 회사 건물 1층 카페에서 모닝 커피를 하고 있었는...
2025 ICT 인턴십을 통해서 운좋게 금천구 C사에 서류 합격을 했다.부푼 기대와 걱정되는 마음을 가지고 금천구 C사에 면접을 보러 갔다.회사에 들어갔는데.. 다들 이어폰을 낀 채로 너무 조용해서 회사에서 키보드와 마우스 소리밖에 들리지 않아서 너무 긴장했다. 잘 말