| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- 백준
- 이득우의 게임수학
- 주우석
- BOJ
- Noam Nisan
- 이득우
- 일기
- 알고리즘
- hanbit.co.kr
- 잡생각 정리글
- JavaScript
- 데이터 통신과 컴퓨터 네트워크
- https://insightbook.co.kr/
- 입출력과 사칙연산
- 전공자를 위한 C언어 프로그래밍
- (주)책만
- C
- C#
- Shimon Schocken
- 밑바닥부터 만드는 컴퓨팅 시스템 2판
- The Elements of Computing Systems 2/E
- 박기현
- booksr.co.kr
- 게임 수학
- unity6
- HANBIT Academy
- 생능출판
- 김진홍 옮김
- C++
- 메타버스
- Today
- Total
목록분류 전체보기 (484)
cyphen156
일반화는 어렵다 매우많이특히 개별화 함수가 비슷한 로직이 많이 튀어나오는 것을 공통 부분으로 묶어 추상화 작업으로 빼는것은 엄청 어렵다 그냥 단순하게 묶는게 아니라 그 이후 특수화된 처리를 해결해야한다는 점에서
벌써 스컬 프로젝트의 RM 리메이크를 들어간지 한달 반이 지나가고 잇는데 진전이 없다.. 있는듯 없는듯 거의 제자리걸음을 진행하고만들고 부수고 다시만들고 하고있다.리팩토링 진행하면서 가장 크게 느끼는 것은 항상 이 클래스가, 이 함수가, 이 코드가 어디까지를 책임지고 역할을 수행할 것인가?에 대해 결정하는 일인것 같다.뭐 말로는 Keep it Simple, Stupid하고 Make It as Simple as Possible But Not Simpler하지 그걸 직접 생각하고 고민하는 입장에서 참 어려운일인것 같다. 함수에 전달하는 인자부터 시작해서 이 코드가 실행되는 의미를 생각하고 구성하려 하다보니 너무 엄격해지나? 싶기도 하다.그러다보니 항상 내가 이짓을 왜하고있지? 싶고 왜 그렇게 어렵게 하려고해..
요약은 클로드가 햇시우ResourceManager 버전 비교 및 통합 분석개요두 개의 ResourceManager.cs 파일이 존재하며, 각각 다른 리소스 관리 접근 방식을 사용하고 있습니다.주요 차이점1. 아키텍처 접근 방식첫 번째 파일 (최신 버전)TypeMapContainer 기반 시스템AccessMode (Public/Internal) 구분Task 기반 비동기 로딩StreamContainer를 통한 파일 스트림 관리Addressables 시스템 통합두 번째 파일 (이전 버전)ContentManifest 기반 시스템Coroutine 기반 콘텐츠 동기화서버 검증 및 업데이트 시스템번들 다운로드 및 캐싱기능 비교표기능첫 번째 파일두 번째 파일비동기 처리Task/async-awaitCoroutine파일 ..
맨 처음 자료구조를 선택할때 Uint Key, Type Asset의 유형으로 딕셔너리 자료구조를 선택햇다.Key가 순차적으로 들어온다는 보장이 없고, 동일한 애셋 유형끼리 관리하기 위해 당연한 것이엇다.근데 이 애셋 유형별 딕셔너리를 스위치로 분기하자니 딕셔너리가 늘어날때마다 함수가 늘거나, 스위치 분기가 늘어나는게 귀찮았다. 그래서 딕셔너리의 포인터 배열로 관리하면 빠른 접근이 가능하지 않을까? 햇다.그래서 나온것이 Dictionary[] domains라는 딕셔너리의 배열이다. 근데 이렇게하면 타입 안정성이 object 유형이라 뭐든 죄다 캐스팅해버린다. Dictionary가 object 를 상속받는 자료구조이기 때문에 사용가능하긴 한데 쓰는 입장에서 Dictionary가 아니라 ArrayList, H..
C#에서 한정자 사용할때 항상 드는 생각 C++의 friend 키워드 ResourceManager에서 Get메서드는 오픈하고, Load, Unload는 ContentManagementSystem에게만 개방하고 싶은 욕구가 들었다.private, public, protected, internal 모두 좋은데... internal은 어셈블리 분리하지 않으면 의미없고public은 너무 오픈형이고, private는 너무 제한적이다.특정 클래스에게만 특정함수를 개방하는 방법은 여러가지가 있긴한데..모두 하나같이 아쉽다.C#에서는 다음과 같이 특정 함수를 특정 클래스 에게만 개방할 수있다.1. 어셈블리 분리하기가장 확실한 방법이다. 문제는 파일 경로 구조가 어셈블리 단위에 고정되어 버린다는것 논리적으로 같은 네임스..
클라이언트 사이의 멀티플레이를 지원하기 위해 서로 다른 유저간의 컨텐츠 보유 상황이 모두 일치하는지 여부를 반드시 확인하고, 이에 따라 서버는 지원할 수 있는 서비스가 어디까지인지를 결정해야 한다.나는 이에 대한 정책을 로컬 플레이 시에는 컨텐츠가 없으면 그 컨텐츠는 플레이를 차단하고, 멀티플레이 시도시에는 반드시 모든 컨텐츠가 서버 기준으로 동기화가 되어 있어야 멀티플레이를 지원받을 수 있도록 계획을 세웠다. 여기서 발생하는 과정이 유저가 가지고 잇는 컨텐츠에 대한 서버와의 정합성, 그리고 개별 컨텐츠들의 무결성인데. 마찬가지로 멀티플레이에 필요한 기능들만 정합성 통과시킬지 아니면 모든 컨텐츠가 정합성을 가지는지를 조사해야한다. 나는 이것을 게임을 부팅하고 난 이후 1회에 한해 전수조사 하기로 마음먹었..
ㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎㅎ고작 20분 코딩 수정하려고 고민을 13일 내내 하루에 7시간씩 구현햇다 지웠다를 반복햇나 뭔가 현타오기도하는데 드디어 작업진행에 길이 명확해진거같아서 좋기도하고? 이게 이렇게 오래걸릴일이었나 내가실력없나 현타도 많이오긴했지만 어쨋든 이겨냈다. 2달계획했던 프로젝트는 벌써 3달을 지나 4개월 차로 진입하려 하고 있고 만들라는 게임은 안만들고 시스템 프로그래밍을 하고있는거같아보이긴 한데 음... 아무리봐도 나는 컨텐츠 프로그래머보단 시스템 백엔드 쪽이 훨씬 재밋나보다 우연찮게라도 이글을 보는이들은 새해복 많이 받고 저와 같이 수렁에 빠지더라도 포기하지 마십셔 언젠간 될겁니다...
────────────────────────────────────────────────────────[CDN / Asset Packs]────────────────────────────────────────────────────────Monsters Pack ├─ SkeletonSword (Prefab / Visual) ├─ Skeleton └─ Slime────────────────────────────────────────────────────────[PlacementDataset : StageData]────────────────────────────────────────────────────────PlacementEntry{ EntityKey : 17584 // 도메인 오..
