- 방문자 수
- 인기 포스트
전체 방문자
오늘 방문자
어제 방문자
최근 포스트
-
프래그마타 데모 플레이
영상만 나오고 반짝할 것 같았던 게임.. 드디어 출시일과 함께 데모 버전이 공개되었다고 하여 플레이해봤다. SF 액션뿐만 아니라 어드벤처 게임인지라 비전투에서의 상호작용도 최소한의 퍼즐 요소로 존재한다. 스샷을 까먹었지만맵 구역 중간에 상자와 같은 수집요소들을 달리기와 점프 (호버 모드) 조작으로잘 올라가면 획득할 수 있는 포인트들이 존재한다. 전투 도중에 이런 퍼즐 요소가 함께 있는 경험은 익숙치 않아서정신 없었지만 더 긴박한 느낌이라 나름 괜찮았다(?) 처음 영상이 공개된 이후에 내심 기대는 했지만데모로 해보니 생각보다 괜찮은 구성들을 보여줘서 재밌었다.정식 출시로 나오게 된다면 어떨지 모르겠지만데모 버전에 한해서는 어떤 느낌의 플레이인지,앞으로 어떤 방향으로 게임의 모습들을 보여줄 것인지..
-
[Unity] 구글 플레이 16KB 페이지 크기 지원 관련 이슈 대응 (Google Play)
https://youtu.be/DLj-tES7lQ4(Unity Korea 공식 TIP 영상)2025년 11월 1일부터 Google Play에 제출되는 Android 15 이상을 타겟으로 한 모든 신규 앱 및 기존 앱들은 16KB 페이지 크기를지원하도록 정책이 변경되었습니다.관련 내용은 유니티 공식 채널을 구독하여 이미 알고 있었지만, 저도 직면해버렸기 때문에 관련 이슈를 공유해보고자 합니다.대응 방법을 먼저 간단하게 요약하자면 다음과 같습니다.1. 현재 Google Play에 출시 또는 출시 예정으로 개발 중인 Unity 프로젝트 버전 업데이트 (마이그레이션)2. 프로젝트에 사용되는 각종 네이티브 플러그인 및 Unity Burst 패키지 업데이트 (EDM4U, Ads SDK, 이외에 각종 서드파티 등)3..
-
[Unity] GPGS 공개 리더보드 순위 로드 이슈 (Google Play Games Services)
최근 외주 프로젝트 작업 진행 중에 구글 출시와 함께 GPGS 리더보드 연동으로플레이어들의 기록 순위를 인게임 UI 에 표시하는 작업이 있었는데, 순위 표시와 관련하여 발생했던 이슈를 공유해보고자 합니다.1. GPGS 자체의 리더보드 UI 을 보여주는 것이 아닌, 순위 정보 데이터를 불러와서 인게임 UI 에 표시하는 방식 (LoadScores)2. 공개 리더보드의 기록을 불러오며, 로컬 플레이어의 경우에는 해당 플레이어의 기록을 불러와 순위와 함께 표시 (LeaderboardCollection.Public)3. 출시 이후에 일부 유저들에게서 순위 데이터 값이 [ -1 ] 로 불러와지며, 로컬 플레이어의 순위가 제대로 표시되지 않는 것을 확인해당 이슈는 유저별로 GPGS 프로필의 게임 활동 공개 설정이 "..
-
[C#] 매개변수 한정자 (ref, out ,in)
※ 여러 참고 자료들의 내용을 토대로 다시 재정리 및 인용한 내용과 기록을 담고 있습니다.※ 가급적 모든 내용을 게임 개발 기술과 관련지어 설명하고 있습니다.※ 자료의 출처는 문단 최하단에 표기되어 있으며, 관련된 정보를 찾으시거나 공부하시는 분들에게 도움이 되셨으면 좋겠습니다.매개변수 한정자 (ref / out / in) 기본적으로 C# 메서드를 통해 인자를 전달할 때 Call by Value 로 값 전달이 이루어짐ref / out / in 키워드들을 사용하면 Call by Reference 로 참조 전달이 가능ref 키워드는 전달한 참조에 대해 할당이나 값 변경이 가능 (변경)out 키워드는 메서드 내에서 출력용으로만 사용되며 객체 할당이 필수 (출력)in 키워드는 전달한 참조에 대해 할당이나 값 변..
-
[C#] Nullable 타입
※ 여러 참고 자료들의 내용을 토대로 다시 재정리 및 인용한 내용과 기록을 담고 있습니다.※ 가급적 모든 내용을 게임 개발 기술과 관련지어 설명하고 있습니다.※ 자료의 출처는 문단 최하단에 표기되어 있으며, 관련된 정보를 찾으시거나 공부하시는 분들에게 도움이 되셨으면 좋겠습니다.Nullable 타입 Nullable 는 Non-Nullable 의 값 타입에 null 을 할당할 수 있게 해주는 구조체int, float, bool 과 같은 값 타입에도 Null 값을 가질 수 있도록 할 수 있음선언 및 사용 방법 public struct SkillData { public int damage; public int cost; public SkillData(int t..
-
[Unity] XCode iOS 빌드 이슈 (ITMS-90048)
이전에 무한의 기둥을 앱스토어에 출시하는 과정에서 Unity 프로젝트를 XCode 프로젝트로 빌드하고,다시 XCode 에서 최종적으로 아카이브 및 배포하는 과정에서 발생했었던 이슈를 공유해보고자 합니다.XCode 프로젝트에서 아카이브하여 앱스토어 서버에 업로드몇 분도 채 지나지 않아 리젝 메일을 받음ITMS-90048: This bundle is invalid - Your archive contains paths that are not allowed: [._Symbols](빌드하여 업로드했던 번들 아카이브 경로에 허용되지 않는 경로가 포함되었다는 내용)해당 이슈가 발생했던 당시 프로젝트에서 사용했던 Unity 버전은 2023.2.20f1 이었고맥북 재부팅과 XCode 빌드 캐시를 날려보고, 다시 XCod..
-
[C#] 박싱과 언박싱 (Boxing, Unboxing)
※ 여러 참고 자료들의 내용을 토대로 다시 재정리 및 인용한 내용과 기록을 담고 있습니다.※ 가급적 모든 내용을 게임 개발 기술과 관련지어 설명하고 있습니다.※ 자료의 출처는 문단 최하단에 표기되어 있으며, 관련된 정보를 찾으시거나 공부하시는 분들에게 도움이 되셨으면 좋겠습니다.박싱과 언박싱 (Boxing, Unboxing) 값 타입의 데이터를 참조 타입으로 변환하는 과정 (박싱)참조 타입의 데이터를 값 타입으로 변환하는 과정 (언박싱)선언 및 사용 방법int testNum = 1000; // Value Typeobject obj = testNum; // Boxing (암묵적 형변환)int result = (int)obj; // Unboxing (명시적 형변환)short invalid = (short)o..
-
[C#] 메모리 구조 (Memory Structure)
※ 여러 참고 자료들의 내용을 토대로 다시 재정리 및 인용한 내용과 기록을 담고 있습니다.※ 가급적 모든 내용을 게임 개발 기술과 관련지어 설명하고 있습니다.※ 자료의 출처는 문단 최하단에 표기되어 있으며, 관련된 정보를 찾으시거나 공부하시는 분들에게 도움이 되셨으면 좋겠습니다.메모리 구조 (Memory Structure) 컴퓨터에서 실행되는 프로그램은 운영체제로부터 할당받은 메모리 공간에서 실행된다.할당받는 메모리 공간은 크게 4가지 영역으로 나눌 수 있다.코드 영역실행할 프로그램 코드가 저장되는 영역으로 텍스트 영역이라고도 불리며,CPU가 코드 영역에서 저장된 각각의 명령어들을 가져가서 처리하게 된다.주로 함수, 제어문, 상수 등이 저장되며 컴파일러를 거쳐 최종적으로는 기계어로 저장된다.프로그램이 실..
-
[무한의 기둥] #04 - 배경 오브젝트와 최적화
어김없이 일지 부채를 상환하러 왔습니다.사실 이미 한번 작성하다가 중간에 브라우저가 뻗어버리고자동저장도 통째로 날아가버려서 다시 작성하고 있습니다..(하.. 열심히 다시 써보겠습니다)시작하기에 앞서,3편에서 아주 짧게 앱스토어 출시 준비에 대한 이야기를 했었는데요빠르게 초기 버전 심사까지 24시간 내로 승인받고,업데이트 버전까지 추가로 업로드 + 심사 요청까지 완료하여예약 출시로 3월 18일에는 플레이 해볼 수 있도록 모든 준비가 완료되었습니다.https://apps.apple.com/kr/app/%EB%AC%B4%ED%95%9C%EC%9D%98-%EA%B8%B0%EB%91%A5/id6743107597 무한의 기둥끝없이 솟아오르는 기둥을 타고 우주로 도약하세요! 끊임없이 이어지는 무한한 기둥, 간단한..
-
[무한의 기둥] #03 - 방해 이벤트와 리더보드
타임머신을 타고 2025년으로 왔습니다.(빠른 시일내라고 했지만 너무 많은 시간이 흘러버렸다)최근 프로젝트 근황은 최소한으로 만족할 수 있는 플레이 수준까지 개발을 진행하여구글 플레이 스토어에 무사히 정식 출시를 완료했고, 트레일러 영상도 따로 제작했습니다.https://youtu.be/w77TQx4cb4w(채널에 가면 영문 버전 영상도 있답니다)https://play.google.com/store/apps/details?id=com.TeamCampfire.InfinityColumn 무한의 기둥 - Google Play 앱끝없이 솟아오르는 기둥을 타고 우주로 도약하세요!play.google.comhttps://teamcampfire.tistory.com/ TeamCampfire창작을 태워 게임을 만듭니다..
-
[무한의 기둥] #02 - 부동 소수점 이야기
작업물이 어느 정도 생길 때마다 개발 일지를 작성하겠다고 했는데벌써 한 달하고도 2주나 더 지나버렸습니다..변명 아닌 변명을 해보자면 작업 자체는 꾸준히 진행하고 있었지만, 10월 중순부터 혼자 15일 동안 일본 도쿄 여행을 다녀오느라잠깐의 강제 휴식기가 있었습니다.물론 맥북을 챙겨갔기 때문에 틈날 때마다"여행 중에도 작업을 할 수 있겠지!" 라는 생각을 했으나,뚜벅이 여행을 많이하는 바람에 15일 중 작업한건 단 2일!(정말 이곳저곳을 한참동안 걸어서 많이 돌아다녔다)하지만 현재 개발 일지 내용이 꽤나 밀렸기 때문에..이번에는 아직 프로토타입 초기 버전 개발이 진행 중이던 시점부텨 가장 최근까지 있었던 이슈들을 몇 가지 이야기해 보려고 합니다.(저번 첫 편에 다뤄보려고 했으나 내용이 길어지는 것 같아서..
-
[무한의 기둥] #01 - 다시 돌아온 개발자
2024년 6월 25일, 드디어 전역을 했습니다.(육군 병장 만기전역)물론 이 글을 쓰고 있는 현재는 약 3개월 이상이 지난 시점입니다.(이렇게 보니 국방부의 시계가 정말 느렸었다는게 느껴집니다..)처음 입사했던 게임회사에서 산업기능요원으로 현업의 경험도 쌓으면서군 복무를 마치겠다는 계획은 TO 신청 막바지에 물거품이 되어버렸지만,GOTY급(?) 게임을 개발해보겠다는 목표는 아직 건재합니다.그런데 1년 6개월이라는 공백기가 생각 외로 크게 느껴져다시 재활을 해야겠다는 필요성을 느꼈습니다.(물론 군 복무 중에도 게임 그래픽스나 최적화, 기획과 관련된 이론 공부들은 주기적으로 했습니다)그래서 최근에 작은 게임 프로젝트 하나를 진행하여 출시까지 해보기로 결심했습니다.프로젝트 소개영어로는 "Infinity Co..
-
[Unity] 좌표계에 대해 알아보기
이번 글에서는 좌표계가 무엇이고 Unity 에서 좌표계는 어떻게 쓰이는지 알아볼 것이다. 시작하기 앞서, 정말 처음 입문하는 사람들에게도 알기 쉽게 정리된 참고 블로그와 영상 자료가 있어서 적어둔다. https://wergia.tistory.com/161 [Unity3D] Tutorial (5) - 유니티의 좌표계Tutorial (5) 유니티의 좌표계 작성 기준 버전 :: 2018.3.1f1 [본 튜토리얼의 내용은 유튜브 영상으로도 시청할 수 있습니다] 이번 섹션에서는 유니티의 좌표계에 대해서 알아보자. 좌표계란? 좌표계란wergia.tistory.com좌표계 좌표계는 특정 차원의 공간에서 특정한 위치를 나타내기 위한 방식이다.(이 글에서 다루게 될 특정 차원은 3D 게임의 3차원 공간을 의미한다) 그리..
-
[C#] 직렬화 (Serialization)
※ 여러 참고 자료들의 내용을 토대로 다시 재정리 및 인용한 내용과 기록을 담고 있습니다.※ 가급적 모든 내용을 게임 개발 기술과 관련지어 설명하고 있습니다.※ 자료의 출처는 문단 최하단에 표기되어 있으며, 관련된 정보를 찾으시거나 공부하시는 분들에게 도움이 되셨으면 좋겠습니다.직렬화 (Serialization) 직렬화는 객체를 바이너리화하여 저장하거나 전송하는 과정=> 객체의 데이터, 변수 등의 값들을 byte 형식의 데이터로 만들어 전송저장은 클래스 객체 상태를 그대로 컴퓨터 환경에 저장하고 나중에 재구성할 수 있는 포맷으로 변환 가능=> 데이터 파일 형태로 영구 저장 장치에 저장 (json, xml 등) 선언 및 사용 방법C# 에서는 .NET 환경에서 제공되는 관련 메서드로 구현 가능(Binary,..
-
[Unity] 콜라이더 (Collider) 에 대해 알아보기 #2
https://dbsckdqja75.tistory.com/39 [Unity] 콜라이더 (Collider) 에 대해 알아보기 #1이번 글에서는 Unity 의 콜라이더 컴포넌트 (Collider Component) 에 대해서 알아볼 것이다. Unity Docs (Collider) Unity - 스크립팅 API: Collider See Also: BoxCollider, SphereCollider, CapsuleCollider, Me..dbsckdqja75.tistory.com 지난번 글에서 Unity 에서 3D 환경의 Collider 에 대해 알아봤었는데, 이번에는 2D 환경에서의 Collider 를 알아보고자 한다. Unity Docs (Collider 2D) 콜라이더 2D - Unity 매뉴얼콜라이더 2D..
-
[Unity] 콜라이더 (Collider) 에 대해 알아보기 #1
이번 글에서는 Unity 의 콜라이더 컴포넌트 (Collider Component) 에 대해서 알아볼 것이다. Unity Docs (Collider) Unity - 스크립팅 API: ColliderSee Also: BoxCollider, SphereCollider, CapsuleCollider, MeshCollider, PhysicMaterial, Rigidbody. 콜라이더를 가진 오브젝트가 게임플레이 중에 움직여질 경우, 해당 오브젝트에는 Rigidbody 컴포넌트를 붙여야 합니다. 만docs.unity3d.com Collider 는 UnityEngine 클래스에 포함되어 있으며, 단어는 충돌의 의미를 가지고 있다. 물리적인 상호작용, 접촉, 충돌에 대해서 모든 것을 관리한다고 보면 된다. 당연하지만..
-
[C#] 구조체 (Struct)
※ 여러 참고 자료들의 내용을 토대로 다시 재정리 및 인용한 내용과 기록을 담고 있습니다.※ 가급적 모든 내용을 게임 개발 기술과 관련지어 설명하고 있습니다.※ 자료의 출처는 문단 최하단에 표기되어 있으며, 관련된 정보를 찾으시거나 공부하시는 분들에게 도움이 되셨으면 좋겠습니다.구조체 (Struct) 구조체는 기본적으로 제공되는 변수 유형이 아닌 사용자 정의 데이터 유형=> 직접 정의 및 구현하여 사용클래스의 참조 타입과 달리 구조체는 값 타입먼저 알아야 할 내용값 형식과 참조 형식의 차이 (Value type, Reference type) 값 타입은 정적 할당으로 Stack 메모리에 실제 데이터를 저장(int, float, bool, char 와 같은 기본 데이터 타입이나 구조체)참조 타입은 동적 할당..
-
[C#] 얕은 복사와 깊은 복사 (Shallow Copy, Deep Copy)
※ 여러 참고 자료들의 내용을 토대로 다시 재정리 및 인용한 내용과 기록을 담고 있습니다.※ 가급적 모든 내용을 게임 개발 기술과 관련지어 설명하고 있습니다.※ 자료의 출처는 문단 최하단에 표기되어 있으며, 관련된 정보를 찾으시거나 공부하시는 분들에게 도움이 되셨으면 좋겠습니다.얕은 복사와 깊은 복사 (Shallow Copy, Deep Copy) 얕은 복사는 객체의 참조만 복사하는 것깊은 복사는 객체를 복사하여 다른 참조값을 가진 새로운 객체를 만드는 것먼저 알아야 하는 내용정적/동적 메모리 할당 C# 에서 변수는 값 타입과 참조 타입으로 나누어짐값 타입은 정적 할당으로 Stack 메모리에 실제 데이터를 저장(int, float, bool, char 와 같은 기본 데이터 타입이나 구조체)참조 타입은 동적..
-
[C# 자료구조] LinkedList, SortedList
※ 여러 참고 자료들의 내용을 토대로 다시 재정리 및 인용한 내용과 기록을 담고 있습니다.※ 가급적 모든 내용을 게임 개발 기술과 관련지어 설명하고 있습니다.※ 자료의 출처는 문단 최하단에 표기되어 있으며, 관련된 정보를 찾으시거나 공부하시는 분들에게 도움이 되셨으면 좋겠습니다.연결 리스트와 정렬된 리스트 (LinkedList, SortedList) 해당 자료구조 2개 모두 List 에서 파생된 클래스LinkedList 는 데이터를 포함하는 노드들을 연결하여 각 노드가 다음 요소에 대한 포인터를 가지고 있는 자료구조(이중 연결 리스트)LinkedList 는 특정 노드에서 삽입/삭제가 편리하지만, 특정 노드를 검색하기 위한 시간이 느림{O(n)}SortedList 는 Hashtable 과 ArrayList..
-
[C# 자료구조] Hashtable, Dictionary
※ 여러 참고 자료들의 내용을 토대로 다시 재정리 및 인용한 내용과 기록을 담고 있습니다.※ 가급적 모든 내용을 게임 개발 기술과 관련지어 설명하고 있습니다.※ 자료의 출처는 문단 최하단에 표기되어 있으며, 관련된 정보를 찾으시거나 공부하시는 분들에게 도움이 되셨으면 좋겠습니다.해시테이블과 딕셔너리 (Hashtable, Dictionary) 두 자료구조는 모두 키 (Key) 와 값 (Value) 을 한쌍으로 데이터를 저장(중복 Key는 허용하지 않음)Hashtable은 Key와 Value 모두 object 타입으로 박싱/언박싱이 발생(선언 시, 타입을 명시하지 않음 [Non-Generic])Dictionary는 Key와 Value 모두 strong 타입으로 박싱/언박싱이 발생하지 않음(선언 시, 타입을 ..
Unity DevLog
-
[무한의 기둥] #04 - 배경 오브젝트와 최적화
어김없이 일지 부채를 상환하러 왔습니다.사실 이미 한번 작성하다가 중간에 브라우저가 뻗어버리고자동저장도 통째로 날아가버려서 다시 작성하고 있습니다..(하.. 열심히 다시 써보겠습니다)시작하기에 앞서,3편에서 아주 짧게 앱스토어 출시 준비에 대한 이야기를 했었는데요빠르게 초기 버전 심사까지 24시간 내로 승인받고,업데이트 버전까지 추가로 업로드 + 심사 요청까지 완료하여예약 출시로 3월 18일에는 플레이 해볼 수 있도록 모든 준비가 완료되었습니다.https://apps.apple.com/kr/app/%EB%AC%B4%ED%95%9C%EC%9D%98-%EA%B8%B0%EB%91%A5/id6743107597 무한의 기둥끝없이 솟아오르는 기둥을 타고 우주로 도약하세요! 끊임없이 이어지는 무한한 기둥, 간단한..
-
[무한의 기둥] #03 - 방해 이벤트와 리더보드
타임머신을 타고 2025년으로 왔습니다.(빠른 시일내라고 했지만 너무 많은 시간이 흘러버렸다)최근 프로젝트 근황은 최소한으로 만족할 수 있는 플레이 수준까지 개발을 진행하여구글 플레이 스토어에 무사히 정식 출시를 완료했고, 트레일러 영상도 따로 제작했습니다.https://youtu.be/w77TQx4cb4w(채널에 가면 영문 버전 영상도 있답니다)https://play.google.com/store/apps/details?id=com.TeamCampfire.InfinityColumn 무한의 기둥 - Google Play 앱끝없이 솟아오르는 기둥을 타고 우주로 도약하세요!play.google.comhttps://teamcampfire.tistory.com/ TeamCampfire창작을 태워 게임을 만듭니다..
-
[무한의 기둥] #02 - 부동 소수점 이야기
작업물이 어느 정도 생길 때마다 개발 일지를 작성하겠다고 했는데벌써 한 달하고도 2주나 더 지나버렸습니다..변명 아닌 변명을 해보자면 작업 자체는 꾸준히 진행하고 있었지만, 10월 중순부터 혼자 15일 동안 일본 도쿄 여행을 다녀오느라잠깐의 강제 휴식기가 있었습니다.물론 맥북을 챙겨갔기 때문에 틈날 때마다"여행 중에도 작업을 할 수 있겠지!" 라는 생각을 했으나,뚜벅이 여행을 많이하는 바람에 15일 중 작업한건 단 2일!(정말 이곳저곳을 한참동안 걸어서 많이 돌아다녔다)하지만 현재 개발 일지 내용이 꽤나 밀렸기 때문에..이번에는 아직 프로토타입 초기 버전 개발이 진행 중이던 시점부텨 가장 최근까지 있었던 이슈들을 몇 가지 이야기해 보려고 합니다.(저번 첫 편에 다뤄보려고 했으나 내용이 길어지는 것 같아서..
-
[무한의 기둥] #01 - 다시 돌아온 개발자
2024년 6월 25일, 드디어 전역을 했습니다.(육군 병장 만기전역)물론 이 글을 쓰고 있는 현재는 약 3개월 이상이 지난 시점입니다.(이렇게 보니 국방부의 시계가 정말 느렸었다는게 느껴집니다..)처음 입사했던 게임회사에서 산업기능요원으로 현업의 경험도 쌓으면서군 복무를 마치겠다는 계획은 TO 신청 막바지에 물거품이 되어버렸지만,GOTY급(?) 게임을 개발해보겠다는 목표는 아직 건재합니다.그런데 1년 6개월이라는 공백기가 생각 외로 크게 느껴져다시 재활을 해야겠다는 필요성을 느꼈습니다.(물론 군 복무 중에도 게임 그래픽스나 최적화, 기획과 관련된 이론 공부들은 주기적으로 했습니다)그래서 최근에 작은 게임 프로젝트 하나를 진행하여 출시까지 해보기로 결심했습니다.프로젝트 소개영어로는 "Infinity Co..