본문 바로가기

전체 글226

[DOTS] ECS & C# Job System & Burst Compile 기초 실습 ■ 이론https://yjhdevelopdiary.tistory.com/247 [DOTS] C# Job System & Burst Compile 이론■ C# Job System 1. 유니티 내에서 멀티스레딩을 할 수 있는 방법 중 하나 2. 다른 방법들과의 차별점[장점]이 아래와 같이 있다. · Automates Scheduling · Safety Checks to avoid Race conditions and other yjhdevelopdiary.tistory.com■ 초기 예시 코드 (ECS중 Entity, Component) 1. RotateSpeedAuthoring (Entity) · 유니티 개체에 컴포넌트 부착을 위해 Monobehaviour 상속을 받음. [Bake]· Unity.Entiti.. 2025. 3. 1.
[DOTS] C# Job System & Burst Compile 이론 ■ C# Job System 1. 유니티 내에서 멀티스레딩을 할 수 있는 방법 중 하나 2. 다른 방법들과의 차별점[장점]이 아래와 같이 있다. · Automates Scheduling · Safety Checks to avoid Race conditions and other common issues with multi-threading  [Race Condition 발생 조건] 1. 공유 자원(Shared Resource)에 여러 스레드가 접근 2. 동기화가 제대로 이루어지지 않음 3. 스레드가 순서에 상관없이 실행됨  3. 많은 양의 연산 혹은 수행을 할 때 사용하기 적합하다. · 예로 Procedural Generation, Path Finding, Complex Algorithms 등등이 있다.·.. 2025. 3. 1.
[DOTS] Netcode For Entities, Physics ■ 참고https://www.youtube.com/watch?v=Bz24Jp30nkM ■ Netcode For Entities란?· Multiplayer networking compatible with ECS· 특히 경쟁 게임에서 사용하길 유니티에서 권장 및 강조함· Network Speed & Accurancy를 보장하기 때문 [Server Authoritative]1. 서버 중심 제어· 모든 중요한 게임 이벤트는 서버에서 검증되고 처리됨2. 클라의 역할· 주로 입력 값 (Input Data)를 서버에 전달하고 서버에서 수신한 결과를 화면에 표시하는 것[이점]1. 보안 강화· 클라가 게임 상태를 직접 제어하지 않음2. 동기화 안정성· 서버의 권위 상태를 따르기 때문에 Desync 발생 확률이 대폭 줄어.. 2025. 3. 1.
[DOTS] 기본 이론 및 ECS 내용 정리 ■ 참고https://www.youtube.com/watch?v=Bz24Jp30nkM ■ DOTS Packages Dots와 연관된 사항은 아래와 같다. 1. Entities (ECS) 2. Entities Graphics 3. Netcode for Entities 4. Physics 5. Jobs 6. Collections 7. Burst 8. Mathematics■ ECS (Entity Component System)  (1) 기존 OOP와 달리 ECS는 Data-Oriented Design (DOD) 원칙을 기반으로 게임 로직과 데이터를 분리하는 기법이다. · 이는 효율적인 데이터 처리 및 코드 모듈화와 확장성 증대 효과를 가져다준다. (2) ECS의 이름을 정확히 표현하자면 Entity & Com.. 2025. 3. 1.
[Unity] 사운드 출력기기 전환에 따른 이슈. ■ 이슈1. 게임에서 세팅한 AudioMixer의 Sound 옵션 값들이 리셋 된다.2. 배경 음악이 정지된다.■ 원인Unity 자체에서 사운드 출력기기 전환 시 Audio Engine을 re-init하고 있다. 이로 인하여 Audio Settings가 바뀌게 되므로 모든 Audio State의 추적이 끊기게 되어 Audio Mixer 등 오디오 관련 데이터들이 간접적으로 영향을 받을 수 있다. 구체적인 상황을 예로 들자면 안드로이드의 기본 스피커를 사용하고 있다가, 블루투스를 연동할 경우 재현이 가능하다.■ 해결1. Audio Settings의 Sampling Rate 복구 없이 Mixer의 볼륨 값만 다시 로드하니 해결되었음.2. 추후 이슈 재현 시 모든 세팅 값[AudioSettings 클래스] 값.. 2025. 2. 1.
[Unity] TMP폰트 관련 메모리 최적화 회사 프로젝트에서 다국어 작업 중 메모리 최적화를 진행한 적이 있었다.플레이 후 게임 옵션창에서 모든 언어를 한 번씩 설정을 해놓으면 폰트 관련 개체 및 아틀라스 텍스처 등이 425.4MB의 메모리를 차지하고 있었다. 여러 RnD 끝에 동일 환경에서 9.4MB까지 최적화에 성공했다.■ 기존  · Total: 425.4MB· Native Memory: 213.3 MB· GPU Memory: 212.0 MB· Managed: 108.5 KB 언어 변경 시 TMP 개체의 하위 개체로 Submesh UI개체가 생성된다. 이는 새로운 언어를 세팅한 뒤 렌더링 중인 문자가 기본 폰트에 포함되어 있지 않은 상황이라서 Fallback Font Asset들을 탐색하여 원하는 문자를 내포하고 있는 폰트 에셋의 Atlas .. 2025. 2. 1.
[컴퓨터 구조] 플래시 메모리 ■ 플래시 메모리 (Flash Memory)플래시 메모리란, 전기적으로 데이터를 읽고 쓰는 반도체 기반의 저장 장치이다. 비휘발성 기억장치인 ROM에도 사용이 되고, DRAM/SRAM 등의 휘발성 장치에도 사용이 되어진다.  주로 사용되는 보조기억장치로는 HDD, SSD, USB 등이 있다. 이중에서 SSD, USB는 플래시 메모리에 속하는 저장장치이다. ▼ 출처 (PaxDisk) 플래시 메모리는 크게 NAND 메모리, NOR 메모리의 종류로 나뉜다. 이 중에서 대용량 저장장치로 주로 사용되어지는 것은, 비교적 저렴한 가격의 특징을 가진, NAND 플래시 메모리이다.■ NAND 플래시 메모리 논리적 구조플래시 메모리는 셀(Cell)을 가장 작은 단위로 사용하고 있다. 이 셀들이 모여 KB부터 TB 등의 .. 2024. 12. 1.
[컴퓨터 구조] 메모리 계층 구조, 캐시 메모리 ■ 메모리 계층 구조 (Memory Hierarchy)저장 장치의 예로 레지스터, 메모리(RAM), USB 메모리가 있다. 이러한 저장 장치의 대표적인 특징 두 가지로는  첫째, CPU와 가까울 수록 저장 장치의 접근 속도는 빠르고, 멀리있을 수록 느리다.둘째, 속도가 빠른 저장 장치는 비싸고 용량이 작으며 거리가 멀어질수록 반대된다. 이러한 특징으로 인하여 컴퓨터는 여러 개의 저장 장치를 혼용해서 사용한다. 그 여러 개의 저장 장치의 계층 구조를 세 가지 특성을 기준으로 나타낸 것을 메모리 계층 구조(Memory Hierarchy)라고 한다.* 여기서 말하는 Memory 는 Ram이 아니라 저장 장치 Memory를 의미한다. ■ 캐시 메모리 (Cache Memory)CPU가 메모리에 접근하는 시간은 C.. 2024. 12. 1.
[컴퓨터 구조] 메모리 주소 ■ 물리 주소 & 논리 주소(1) 물리주소 : 메모리 하드웨어가 사용하는 주소 (정보가 실제로 저장된 하드웨어상의 주소)(2) 논리주소 : CPU와 프로세스가 사용하는 주소 (프로세스 각각에 부여된 0번지 부터 시작되는 주소) * CPU와 프로세스는 현재, 물리적 주소인, 메모리 몇 번지에 무엇이 저장되어 있는지 다 알고 있지 않다. 그 이유는 프로그램이 메모리에 적재될 때마다 주소가 달라지고, 다른 프로그램이 실행되거나 삭제될 때마다 모든 주소가 달라지기 때문이다. 이런 상황에서 현재 프로세스와 CPU가 특정 메모리 주소에 접근할 때 어떻게 동작할까?  먼저 CPU가 이해하는 주소는 논리주소이기 때문에 메모리와 상호작용을 하려면 논리주소와 물리주소 간의 변환이 이루어져야 한다. 서로 다른 주소 체계를 .. 2024. 12. 1.