더블즈비의 기묘한 공방
-
How We Die: 우리들이 죽는 방법 회고 (4) - 기타
How We Die: 우리들이 죽는 방법 회고 (4) - 기타
2024.10.10이제 마무리다. 다른 기타 일감들을 어떻게 처리했는지를 알아보고, 앞으로는 어떻게 해야 할지를 써 보자.사실 다른 글들은 작업방식에 관한 이야기였는데 이번 글은 홍보 등이 들어 있어서 오히려 가장 회고할 거리가 많은 글인듯. 마케팅 이슈우리 게임 해주세요~ 같은 글을 정말 못 쓰는 편이다. SNS에 아 오늘 일 끝났다 ^w^ 같은 글만 잔뜩 올리는데 홍보 글을 쓸 리가 만무하다. 스팀 성공 공식인 벤치마크에 따르면 출시 전까지 최소 위시리스트 7,000개는 모아야 중박은 칠 수 있다고 한다.이 정보를 출시 3개월 전까지 모르고 있었기에, 우리 게임은 아쉽지만 위시리스트가 1000개인 상태로 출시하게 되었다.작은 갯수지만 이 위시리스트를 어떻게 모았는지 효과가 있었던 것과 없었던 것으로 구분해서 정리해.. -
How We Die: 우리들이 죽는 방법 회고 (3) - 그래픽
How We Die: 우리들이 죽는 방법 회고 (3) - 그래픽
2024.10.10결국 그래픽 회고를 쓸 때가 와버렸다. 나는... 나는 아트를 못한다! 아니, 못하기도 못하는데 못하겠다!어떻게 이 감각으로 몸을 비틀며 아트를 만들어냈는지 그 작업방법을 소개한다. 미드저니 사용우선 짚고 넘어가자. 이 게임은 아트에 AI를 사용한 게임이다. 3D인데 어떻게 AI를 썼다는거임? 하는 사람들이 종종 있다. 화면에서 AI가 만든 부분들만 표시해보면 다음과 같다. 1. 맵 배경 이미지이건 아주 정직하게, 보드 뒷편에 깔리는 맵 배경 이미지이다.게임에는 20장 정도 들어갔는데 해당 이미지 위에 오브젝트가 올라가기 때문에 어차피 가려지고 마는 비운의 리소스다 (...) 2. 선택지 상황 배경 이미지해당 캐릭터들이 처한 상황을 더 쉽게 알아볼 수 있도록 1:1 사이즈로 나타낸 스토리 배경 이미지.. -
How We Die: 우리들이 죽는 방법 회고 (2) - 개발
How We Die: 우리들이 죽는 방법 회고 (2) - 개발
2024.10.10How We Die 회고, 개발편이다. 프로젝트 내내 다른 부분에서 고통받다가 유일하게 힐링할 수 있었던 구간이 개발이다.그 말은 시스템을 개발했던 6월까지만 행복했고 콘텐츠 개발을 해야 했던 7월부터는 지옥에 있었다는 소리다. (...)프로젝트 마무리즈음에 잘하는 것만 하고 살고 싶은 욕구가 늘었다가... 출시 후에 유저분들이 플레이하는 걸 보고 어쨌든 행복해짐 :P작업 방식을 먼저 쓰고, 전체적인 개발 구조는 더 아래에 쓰는 방식으로 서술하겠다. 아래로 내려갈 수록 읽고 싶지 않은 글이 되겠구만. Sentry를 사용하여 에러 로그 수집재직 중에 파이어베이스 크래시리틱스를 사용했더니 안정성이 대폭 올라간 경험을 이미 해봤기 때문에, 이번 프로젝트도 적용은 필수라고 생각했다. 그런데 파이어베이스는 데스.. -
How We Die: 우리들이 죽는 방법 회고 (1) - 기획
How We Die: 우리들이 죽는 방법 회고 (1) - 기획
2024.10.07'How We Die: 우리들이 죽는 방법'을 출시한 지 3주가 되었다.포스트모템을 쓰기에는 이르고, 아직 업데이트를 해야 하는 부분들도 넘치지만 정리를 한 번은 해야 하는 시점이라고 생각하여 글을 쓴다.각 글은 파트별로 나눠서 쓸 생각이다. 기획/프로그래밍/아트/기타 등등이 되지 않을까 싶음. 무엇이 하고 싶었나이 게임은 사실 개발하려고 했던 두 개의 게임이 합쳐진 결과물이다. 첫 번째는 '우리들이 죽는 방법', 스토리만 정해져 있었다. 멸망한 세계에서 그냥 죽기 아까우니까 TRPG를 해서 게임 속에서 죽는 방법 그대로 스스로 목숨을 끊는다는 딥다크한 스토리의 주사위 게임이었다. 캐릭터 디자인이나 결말 자체는 2020년에 전부 기획해 둔 상태였다. 정작 본 게임에서는 다소 캐주얼해져 12세 이용가의 ..
-
[C#] 구조체의 get/set을 조심하자
[C#] 구조체의 get/set을 조심하자
2024.06.04잠깐 생각해보면 당연하고 별 거 아닌데, 아무 생각 없이 쓰다가 디버깅때문에 고통받았다. 보통 외부에서 참조는 할 수 있지만 내부에서만 변경하고 싶은 객체를 만들 때, get/set을 쓰는 게 일반적이다. 예시로 단순히 int 변수를 가진 somethingClass 객체를 만든다고 해 보자.public static somethingClass A { get; private set; } public static void Main(string[] args) { A = new somethingClass(0); A.count++; Console.WriteLine(A.count); //Output is 1 } public class somethingClass { public int count; public some.. -
왜 partial Enum은 없는 걸까?
왜 partial Enum은 없는 걸까?
2024.03.21왜 partial Enum을 쓰려고 했는가 최근 개인 프로젝트에서 partial class를 자주 활용하는 방식으로 개발하고 있다. 파일 하나에 클래스의 모든 멤버나 메서드를 정의하지 않고, 다른 파일에 나눠서 적을 수 있어서 확장성이 높은 방법이라고 생각한다. 이런 방식을 자주 쓰다 보니 아래와 같은 경우가 생겼다. public static partial class ModifierUtil { public const int StatMaxPenaltyId = 3; public static void AddStatPenalty(this ModifierStorage storage, int value) { storage.Add(new ModifierSomething(StatMaxPenaltyId, value));.. -
[알쓸유잡 : 모바일 최적화] 영상 정리하기
[알쓸유잡 : 모바일 최적화] 영상 정리하기
2024.01.20이번 포스팅은 유니티 공부를 할 때 항상 신세를 지고 있는 알쓸유잡 콘텐츠를 공부하고 기록해보는 글이 되겠다. 특히나 이번 영상은 최적화였기 때문에, 프로파일러 안의 숫자를 하나라도 더 줄이면 쾌감을 느끼는 편인 나는 어쩔 수 없이 글을 쓸 수밖에 없었다. 음... 변태같은 소리는 뒤로 하고 본론으로 들어가자. 소개 https://www.youtube.com/live/-IrpQzZi_p8?si=tz7lyopfIHhbdPyX https://blog.unity.com/engine-platform/updated-2022-lts-best-practice-guides Updated 2022 LTS Best Practice Guides for optimizing games | Unity Blog Each guide.. -
URP는 Built-In과 뭐가 다른가? (1) : SRP Batcher
URP는 Built-In과 뭐가 다른가? (1) : SRP Batcher
2023.12.17최근 Unity 2022 LTS 버전을 사용해보면서 URP도 겸사겸사 사용해보게 되었다. 대체 Built-In과 뭐가 다른가 싶어서 유니티 공식 문서를 받아 공부해보고 있는데, 정리가 필요하다고 느꼈다. 다만 이론적인 것 말고, 실무에서 무엇이 달랐는지 하나씩 정리해보려 한다. SRP Batcher가 뭔지 요약해서 알려달라 간단하게 말하면, 같은 쉐이더를 쓰는 오브젝트를 그릴 때 렌더링 성능을 개선해주는 녀석이다. '같은 머티리얼을 쓰면 Draw Call이 하나'라는 게 '같은 쉐이더를 쓰면 SetPass Call이 하나'가 된 것이다. 즉, 같은 쉐이더를 쓰는 것만 신경쓰면 성능 개선을 이뤄낼 수 있는 개꿀 기능이라는 것이다. 다만, 파티클 시스템과 UI에는 적용되지 않는다. 뭘 어떻게 성능 개선을 한.. -
3매치 구조 회고 (4) : 효율적으로 힌트 찾기
3매치 구조 회고 (4) : 효율적으로 힌트 찾기
2023.09.25현재 회사에서 설계하고 유지보수한 3매치 코드는 이미 검증되었지만, 과거의 자신을 돌아보는 것이 늘 그렇듯 다시 읽어보면 구데기인 부분이 너무 많다. 그래서 이 시리즈는 과거의 설계를 돌아보며 더 확장성있는 코드를 고민해보는 글이 되겠다. 조건 1. 일정 시간동안 유저가 조작을 하지 않을 경우, 힌트를 보여 줄 것. 2. 이 때, 우선순위가 높은 힌트를 먼저 보여주어야 함. 3. 유저가 조작을 하기 전까지 랜덤한 힌트를 돌아가면서 보여주어야 함. 3-1) 3x1 이상의 우선순위 매치가 있을 경우, 그 매치들만 돌아가면서 보여 준다. 3-2) 일반 매치만 힌트 대상일 경우, 일반 매치만 돌아가면서 보여 준다. 과거의 나 1. 왼쪽 아래에서부터 위/오른쪽 방향으로 스왑한 결과의 매치를 조사한다. 1-1) 같..