Design Pattern / Game Programming
[게임 프로그래밍 패턴] Type Object
객체 타입을 클래스가 아닌 데이터로 모델링해 확장을 데이터 추가로 처리하는 패턴입니다.
Design Pattern / Game Programming
[게임 프로그래밍 패턴] Subclass Sandbox
부모가 안전한 확장 API를 제공하고 자식은 그 범위 내에서만 구현하도록 제한하는 패턴입니다.
Design Pattern / Behavioral
[디자인 패턴] Chain Of Responsibility 패턴
요청을 여러 처리자 체인에 통과시키며 각 처리자가 순차적으로 책임을 수행하는 패턴입니다.
Design Pattern / Game Programming
[게임 프로그래밍 패턴] Service Locator
공통 서비스 접근을 중앙 레지스트리로 모아 호출부 결합을 줄이는 패턴입니다.
Unity Package
[Unity 패키지] QuickSave
Cysharp의 MemoryPack을 이용하여 Binary 파일을 Serialize, Deserialize하여 데이터를 저장 및 로드하는 기능을 제공합니다. Data Protector를 설치하시면 데이터를 압축하여 암/복호화할 수 있는 기능도 제공합니다. (문서)
Design Pattern / Game Programming
[게임 프로그래밍 패턴] Object Pool
자주 생성/파괴되는 객체를 재사용해 할당 비용과 GC 스파이크를 줄이는 패턴입니다.
Design Pattern / Game Programming
[게임 프로그래밍 패턴] Game Loop
입력-업데이트-렌더의 반복 흐름을 안정적으로 유지하는 게임의 핵심 실행 패턴입니다.
Unity Package
[Unity 패키지] LiteDB
게임에서 사용하는 테이블 데이터를 SQLite로 관리하면서 내부적으로 QUERY의 WHERE절을 이용해 데이터를 반환합니다.
Troubleshooting
Facebook SDK Build Issue (iOS)
Xcode 15.3 미만 환경에서 Facebook SDK 17.0.1 사용 시 발생할 수 있는 iOS 빌드 및 런타임 이슈 정리.
Design Pattern / Game Programming
[게임 프로그래밍 패턴] Dirty Flag
값이 바뀐 경우에만 비싼 계산을 다시 수행하도록 표시하는 지연 갱신 패턴입니다.
Unity Package
[Unity 패키지] Game Framework
Unity에서의 게임 개발을 빠르게 진행할 수 있도록 설계된 사전 구축된 시스템과 확장 기능들의 모음입니다.
Design Pattern / Game Programming
[게임 프로그래밍 패턴] Data Locality
자주 접근하는 데이터를 연속 메모리에 배치해 캐시 효율을 높이는 성능 중심 패턴입니다.
Unity Package
[Unity 패키지] Data Protector
- byte[], string 형태의 데이터를 물리적 저장을 하기 전에 외부에서 데이터를 조회하기 힘들도록 압축 및 암호화를 하는 기능을 제공합니다. - 암호화를 위해선 사용자가 직접 16byte의 string key 값을 입력해주어야 합니다. - 파일의 변경사항이 있는지 SHA256을 이용한 byte[] 또는 string의 Hash값을 추출하여 비교하는 로직도 제공합니다.
Unity Package
[Unity 패키지] BreezeIAP
Unity IAP를 Wrapping하여 사용자가 보다 편리하게 접근할 수 있도록 인터페이스를 제공합니다. 단, 영수증 검증 로직은 따로 구현해주셔야 합니다.
Design Pattern / Game Programming
[Game Programming] Type Object Pattern
A pattern that models object types as data rather than classes so that extension can be handled by adding new data.
Design Pattern / Game Programming
[Game Programming] Subclass Sandbox Pattern
A pattern where the parent provides a safe extension API and children are restricted to implementing only within that boundary.
Design Pattern / Behavioral
[Design Pattern] Chain Of Responsibility Pattern
A pattern that passes a request through a chain of handlers, where each handler performs its responsibility in sequence.
Design Pattern / Behavioral
[Design Pattern] Template Method Pattern
A pattern where the overall procedure is fixed, while only the detailed steps are changed in subclasses.
Design Pattern / Behavioral
[Design Pattern] Interpreter Pattern
A pattern that interprets small domain language rules through grammar objects and computes a result.
Design Pattern / Game Programming
[Game Programming] Service Locator Pattern
A pattern that gathers access to shared services into a central registry to reduce coupling at the call site.
Design Pattern / Behavioral
[Design Pattern] Visitor Pattern
A pattern that separates operations into visitors so the object structure can be extended without modifying it.
Design Pattern / Behavioral
[Design Pattern] Memento Pattern
A pattern that saves and restores internal object state as encapsulated snapshots.
Design Pattern / Behavioral
[Design Pattern] Mediator Pattern
A pattern that collects interactions between many objects into a mediator so direct dependencies between objects are reduced.
Unity Package
[Unity Package] QuickSave
Provides functionality to save and load data by serializing and deserializing binary files using Cysharp's MemoryPack. If you also install Data Protector, you can compress, encrypt, and decrypt the saved data as well. (Docs)
Design Pattern / Game Programming
[Game Programming] Object Pool Pattern
A pattern that reuses frequently created and destroyed objects to reduce allocation cost and GC spikes.
Design Pattern / Behavioral
[Design Pattern] Iterator Pattern
A pattern that hides the internal structure of a collection and only exposes a way to traverse it.
AI
Claude Code Notes 2 - Building a Unity Framework
I got curious about what kind of Unity Framework Claude Code would come up with.
Design Pattern / Behavioral
[Design Pattern] State Pattern
A pattern that separates behavior by state into objects and swaps behavior based on state transitions.
Design Pattern / Behavioral
[Design Pattern] Strategy Pattern
A pattern that encapsulates algorithms with the same goal behind an interface so they can be swapped at runtime.
Design Pattern / Game Programming
[Game Programming] Game Loop Pattern
The core execution pattern of games that maintains a stable input-update-render loop.
Design Pattern / Behavioral
[Design Pattern] Observer Pattern
A reactive pattern where subscribers are automatically notified when the publisher's state changes.
Unity Package
[Unity Package] LiteDB
This package manages table data used in games with SQLite and returns data internally through SQL queries using the WHERE clause.
Design Pattern / Behavioral
[Design Pattern] Command Pattern
A pattern that turns requests into objects and handles execution, undo, and queueing flexibly.
Thinking
Claude Code Notes 1 - Building a Localization Package
What happened when I asked Claude to build a localization package.
Design Pattern / Structural
[Design Pattern] Factory Method Pattern
A pattern that delegates the actual creation responsibility of a factory method to subclasses.
Design Pattern / Structural
[Design Pattern] Proxy Pattern
A pattern that places a surrogate object in front of the real object to handle control, lazy loading, or caching.
Design Pattern / Game Programming
[Game Programming] Event Queue Pattern
A pattern that lowers coupling between systems by separating event publishing and consuming through a queue.
Design Pattern / Structural
[Design Pattern] Flyweight Pattern
A pattern that reduces memory usage for large numbers of objects by reusing shareable immutable state.
R&D / Unity
RuntimeInitializeOnLoadMethod
A post summarizing my hard-earned experience with this attribute.
Design Pattern / Structural
[Design Pattern] Facade Pattern
A pattern that wraps a complex subsystem with a simple top-level API to improve usability.
Troubleshooting
Facebook SDK Build Issue (iOS)
Summary of iOS build and runtime issues when using Facebook SDK 17.0.1 in environments below Xcode 15.3.
Design Pattern / Structural
[Design Pattern] Decorator Pattern
A pattern that dynamically adds functionality at runtime through wrappers that surround an object.
Design Pattern / Game Programming
[Game Programming] Dirty Flag Pattern
A lazy update pattern that marks expensive calculations so they are recomputed only when the underlying value changes.
Design Pattern / Structural
[Design Pattern] Composite Pattern
A tree-structure pattern that treats individual objects and composed objects through the same interface.
Unity Package
[Unity Package] Game Framework
A collection of prebuilt systems and extension features that is designed to speed up game development in Unity.
Design Pattern / Structural
[Design Pattern] Bridge Pattern
A pattern that separates abstraction and implementation so both can be extended independently.
Design Pattern / Structural
[Design Pattern] Adapter Pattern
A pattern that converts an incompatible existing interface into the interface expected by the current system.
Design Pattern / Game Programming
[Game Programming] Data Locality Pattern
A performance-oriented pattern that places frequently accessed data in contiguous memory to improve cache efficiency.
Design Pattern / Creational
[Design Pattern] Abstract Factory Pattern
A pattern that creates related groups of objects without depending on concrete types.
Unity Package
[Unity Package] Data Protector
- Provides functionality to compress and encrypt byte[] and string data before saving it physically, making it harder to inspect the stored data directly. - For encryption, the user must supply a 16-byte string key value. - Also provides logic to compare whether a file has changed by extracting a SHA256 hash value from byte[] or string data.
Design Pattern / Creational
[Design Pattern] Prototype Pattern
A pattern that creates new objects by cloning an existing prototype instead of calling a constructor.
Design Pattern / Creational
[Design Pattern] Builder Pattern
A pattern that separates complex object creation into steps to improve readability and safety.
Design Pattern / Game Programming
[Game Programming] Component Pattern
A pattern that builds entities by splitting behavior into small units and composing them instead of relying on inheritance.
Design Pattern / Creational
[Design Pattern] Singleton Pattern
A pattern that keeps a single instance and provides a global access point.
Unity Package
[Unity Package] BreezeIAP
This package wraps Unity IAP and provides an interface that is easier for users to work with. However, receipt validation logic must still be implemented separately.
Design Pattern / Game Programming
[ゲームプログラミング] Type Object パターン
オブジェクトの型をクラスではなくデータとしてモデル化し、新しいデータの追加で拡張できるようにするパターンです。
Design Pattern / Game Programming
[ゲームプログラミング] Subclass Sandbox パターン
親クラスが安全な拡張APIを提供し、子クラスはその範囲内でのみ実装するよう制限するパターンです。
Design Pattern / Behavioral
[デザインパターン] Chain Of Responsibility パターン
リクエストをハンドラーのチェーンに沿って渡し、各ハンドラーが順番に責任を遂行するパターン。
Design Pattern / Game Programming
[ゲームプログラミング] Service Locator パターン
共有サービスへのアクセスを中央のレジストリに集約し、呼び出し側の結合度を下げるパターンです。
Design Pattern / Behavioral
[デザインパターン] Visitor パターン
操作を Visitor に分離し、オブジェクト構造を修正することなく拡張できるようにするパターン。
Design Pattern / Behavioral
[デザインパターン] Mediator パターン
多数のオブジェクト間のやり取りを Mediator にまとめ、オブジェクト同士の直接的な依存を減らすパターン。
Unity Package
[Unityパッケージ] QuickSave
Cysharp の MemoryPack を使用してバイナリファイルをシリアライズ・デシリアライズし、データを保存・読み込みする機能を提供します。Data Protector も併せてインストールすれば、保存データの圧縮・暗号化・復号化も可能です。(Docs)
Design Pattern / Game Programming
[ゲームプログラミング] Object Pool パターン
頻繁に生成・破棄されるオブジェクトを再利用し、確保コストとGCスパイクを削減するパターンです。
Design Pattern / Behavioral
[デザインパターン] Strategy パターン
同じ目的を持つアルゴリズムをインターフェースの裏にカプセル化し、実行時に差し替え可能にするパターン。
Design Pattern / Game Programming
[ゲームプログラミング] Game Loop パターン
入力・更新・描画のループを安定して維持する、ゲームの中核となる実行パターンです。
Unity Package
[Unityパッケージ] LiteDB
このパッケージは、ゲームで使用されるテーブルデータを SQLite で管理し、内部的に WHERE 句を使用した SQL クエリでデータを返します。
Design Pattern / Game Programming
[ゲームプログラミング] Event Queue パターン
イベントの発行と消費をキューで分離することで、システム間の結合度を下げるパターンです。
Design Pattern / Structural
[デザインパターン] Flyweight パターン
共有可能な不変状態を再利用することで、大量のオブジェクトのメモリ使用量を削減するパターンです。
Troubleshooting
Facebook SDK Build Issue (iOS)
Xcode 15.3 未満の環境で Facebook SDK 17.0.1 を使用した際に発生しうる iOS ビルドおよびランタイム問題の整理。
Design Pattern / Game Programming
[ゲームプログラミング] Dirty Flag パターン
高コストな計算にマークを付けておき、元の値が変化したときだけ再計算する遅延更新パターンです。
Design Pattern / Structural
[デザインパターン] Composite パターン
個別のオブジェクトと合成されたオブジェクトを同一のインターフェースで扱うツリー構造のパターンです。
Design Pattern / Structural
[デザインパターン] Adapter パターン
互換性のない既存のインターフェースを、現在のシステムが期待するインターフェースに変換するパターンです。
Design Pattern / Game Programming
[ゲームプログラミング] Data Locality パターン
頻繁にアクセスするデータを連続したメモリに配置し、キャッシュ効率を向上させるパフォーマンス指向のパターンです。
Unity Package
[Unityパッケージ] Data Protector
- byte[] および string データを物理的に保存する前に圧縮・暗号化し、保存データを直接検査しにくくする機能を提供します。- 暗号化には、ユーザーが 16 バイトの string キー値を指定する必要があります。- また、byte[] や string データから SHA256 ハッシュ値を抽出して、ファイルが変更されたかどうかを比較するロジックも提供します。
Design Pattern / Creational
[デザインパターン] Prototype パターン
コンストラクタを呼び出す代わりに、既存のプロトタイプを複製して新しいオブジェクトを生成するパターンです。
Design Pattern / Game Programming
[ゲームプログラミング] Component パターン
継承に頼らず、振る舞いを小さな単位に分割して合成することでエンティティを構築するパターンです。
Unity Package
[Unityパッケージ] BreezeIAP
このパッケージは Unity IAP をラップし、ユーザーがより扱いやすいインターフェースを提供します。ただし、レシート検証ロジックは別途実装する必要があります。