Unity DOTS를 직접 실행하고 기록하는 게임 개발 노트

Entities 6.5 기반 구현·디버깅·최적화

전체 글 37

Grenade! - GMTK 게임잼 2026

https://www.youtube.com/watch?v=7OB4AO_MD28Grenade! - GMTK Game Jam 2026 https://itch.io/jam/gmtk-jam-2026/rate/4827777Rate Grenade! by SillyToolValley for GMTK Game Jam 2026Play in your browseritch.io다른 일하면서 하느라 개발을 거의 이틀밖에 못했네요 꼬박 밤새워가며 ..! 게임잼 너무 오랜만에 참여해봤습니다! 유니티짱 캐릭터들로 수류탄 세례속에서 살아남는 생존게임 입니다~ 주제가 CountDown 이어서 , 쉴틈없이 여기저기 떨어지는 수류탄들의 카운트를 세면서 회피하거나 캐치한다음 던져서 다른 플레이어를 먼저 탈락하게 하는 게임을 만들어 봤습니..

GameJam 2026.07.27

[Unity DOTS] 35. DOTS 프로젝트 폴더와 Assembly 나누기

34번에서 DOTS 용어를 한 번 정리했다. 이제 그 단어들을 실제 프로젝트 폴더에 어떻게 놓을지 정해볼 차례다.authoring code, runtime data, simulation system, presentation bridge, editor tool이 한 assembly에 섞이면 참조 방향이 흐려지고, 컴파일도 필요 이상으로 자주 돈다.이번 글은 엄격한 정답이라기보다 시작점에 가깝다. 예시는 작은 멀티플레이 게임 정도로 잡았다. 플레이어가 접속하고, input command를 보내고, server가 위치와 점수를 계산한 뒤, client가 화면과 UI를 갱신하는 구조다. 이 글은 Unity 6000.5.1f1, Entities 6.5.0, Netcode for Entities 6.5.0 공식 문..

[Unity DOTS] 34. DOTS 용어 정리

33번까지 지나오면서 같은 단어가 계속 나왔다. Entity, component, chunk 같은 기본 단어는 이제 익숙해졌을 수 있지만, 글을 띄엄띄엄 보면 World, SubScene, EntityScene, Ghost, snapshot 같은 말이 서로 섞이기 쉽다.이번 글은 새 기능 설명이 아니다. 앞에서 쓴 용어를 층위별로 정리한다. 이 글은 Unity 6000.5.1f1, Entities 6.5.0, Netcode for Entities 6.5.0 공식 문서를 기준으로 작성했으며, 실제 프로젝트의 설치 버전은 Package Manager와 manifest.json에서 다시 확인해야 한다.기본 저장 단위먼저 ECS 쪽 기본 단어부터 정리한다.EntityComponentArchetypeChunkWo..

[Unity DOTS] 33. DOTS 프로젝트 점검 순서

앞 글들에서는 DOTS 프로젝트를 볼 때 필요한 도구들을 하나씩 나눠서 봤다. Entities Hierarchy, Systems 창, Profiler, chunk layout, managed reference audit까지 따로 확인했다.이번 글은 그 도구들을 실제 프로젝트에서 어떤 순서로 쓰면 좋은지 정리하는 글이다. 특정 API 하나를 깊게 파는 글은 아니다. "뭔가 이상한데 어디부터 봐야 하지?" 싶은 순간에 훑는 점검 순서에 가깝다.이 글의 메뉴 이름과 API 설명은 Unity 6000.5.1f1 / Entities 6.5.0 공식 문서를 기준으로 했다. 성능 수치는 프로젝트·플랫폼·빌드 설정에 따라 달라지므로, 같은 재현 조건의 Profiler 캡처로 수정 전후를 비교해야 한다.먼저 화면에 보이..

[Unity DOTS] 32. Managed Object Reference 점검하기

DOTS 코드가 느릴 때 원인이 알고리즘만은 아닐 때가 있다. component나 system 안에 managed object reference가 남아 있으면 Burst/job 경로로 못 가거나, 매 frame allocation이 생기거나, SubScene baking 흐름이 지저분해진다.이번 글은 그런 참조를 찾고, 남길 것과 바꿀 것을 나누는 점검 흐름이다. 기준은 Unity 6000.5.1f1 / Entities 6.5.0이다.왜 따로 점검하나Entities 6.5에서도 managed component는 지원된다. 다만 job이나 Burst 코드에서는 접근할 수 없고 GC·메모리 관리 비용이 있어, Unity는 가능한 경우 unmanaged component를 우선하도록 안내한다. UnityEng..

[Unity DOTS] 31. Profiler로 DOTS 병목 읽기

앞 글에서는 Entities Hierarchy와 Systems 창으로 상태를 확인했다. 이제 frame이 느린 쪽으로 넘어가 보자. DOTS에서 Profiler를 볼 때는 “어느 system이 느린가”만으로 부족하다. main thread에서 시간을 쓰는지, job을 기다리는지, structural change가 많은지, chunk memory가 흐트러졌는지를 나눠야 다음 수정이 보인다.기준은 Unity 6.5.1f1 / Entities 6.5.0이다.측정 전에 정할 것Profiler 숫자는 측정 조건에 꽤 민감하다. Editor에서 본 숫자와 Player에서 본 숫자가 다를 수 있고, Deep Profile을 켠 상태의 숫자는 실제 실행 비용과 거리가 생긴다.먼저 이 정도를 정해두면 좋다.Editor에..

[Unity DOTS] 30. Entities 창으로 상태 확인하기

이전 글에서는 chunk layout과 TypeManager 쪽을 봤다. 이제는 그 구조가 에디터에서 어떻게 보이는지 확인할 차례다. DOTS 코드는 결국 entity, component, system, query가 맞물려 돌아가는데, 문제가 생겼을 때 처음부터 Profiler만 열면 너무 멀리 돌아가는 경우가 많다.이번 글은 Entities Hierarchy, Systems, System Inspector, Query Window를 함께 훑는다. 기준은 Unity 6.5.1f1 / Entities 6.5.0이다.먼저 볼 창DOTS 상태를 확인할 때는 질문을 먼저 정해두면 편하다.entity가 실제로 존재하는지 보려면 Entities Hierarchyentity가 어떤 component 값을 들고 있는지..

[Unity DOTS] 29. Chunk Layout과 TypeManager

Netcode와 migration 쪽을 지나왔으니, 이번에는 ECS 내부 구조 쪽이다. 최적화나 디버깅을 하다 보면 chunk라는 단어를 자주 만난다. 코드는 entity 기준으로 쓰지만, 실제 메모리 배치와 query 처리에는 chunk가 꽤 많이 끼어든다.여기서는 chunk layout, TypeManager, Entities Memory Profiler, change filter를 한 묶음으로 연결해서 보려 한다. 기준은 Unity 6.5.1f1 / Entities 6.5.0이다.chunk와 archetype같은 component 조합을 가진 entity들은 같은 archetype에 속한다. 그리고 Unity는 그 archetype에 맞는 chunk에 entity data를 담는다. 공식 문서 기준..

[Unity DOTS] 28. Entities 1.4에서 6.5까지의 변화와 마이그레이션

앞선 글까지는 Netcode for Entities 쪽 흐름을 봤다. 이제는 기존 Entities 1.x 프로젝트, 특히 1.4 라인에서 Unity 6.5 / Entities 6.5 쪽으로 올릴 때 확인할 부분을 정리한다.마이그레이션이라는 제목만 붙이면 코드 수정만 떠올리기 쉽지만, 실제로는 버전 흐름을 먼저 읽어야 한다. 1.4에서 정리되기 시작한 API 방향, 6.4/6.5의 패키지 해석, UnityObjectRef, Entities.ForEach, IAspect까지 이 글에서 한 번에 묶었다. 이 글의 API 설명 기준은 Unity 6000.5 계열 / Entities 6.5.0 공식 문서와 공개 API다. 실제 프로젝트에서는 사용하는 패키지 조합과 대상 플랫폼을 따로 검증해야 한다.에디터와 패키지..

[Unity DOTS] 27. Netcode Profiler와 Debugging 흐름

앞선 글에서는 Netcode physics와 lag compensation을 봤다. prediction이 여러 tick 다시 돌 수 있고, snapshot이나 command가 늦게 오면 client와 server가 서로 다른 시점의 세계를 보고 있을 수 있다는 얘기였다.이번에는 그런 문제를 어떻게 확인할지 본다. Netcode for Entities에는 Profiler, PlayMode Tool, Systems 창, Entities Inspector, packet dump처럼 볼 수 있는 지점이 많다. 그런데 처음부터 전부 켜면 오히려 헷갈린다. 먼저 재현 조건을 고정하고, Profiler에서 큰 프레임을 찾고, 그 다음 Netcode 전용 정보로 좁혀가는 편이 낫다.아래 화면은 Unity 6.5.1f1..