목록전체 글 (194)
센로그

◆ Unicast Routing Unicast (1ㄷ1 전달) 시, 실제로 어떻게 라우팅하느냐! 에 관한 것. 두 가지 전달 방식이 있다. Direct delivery (직접 전달) Indirect delivery (간접 전달) ■ 직접 전달 (Direct delivery) => 한 네트워크 안에 있을 땐 다이렉트로 바로 갈수있음. 보낼 때, 목적지의 IP주소와 네트워크 마스크를 보고, 나와 같은 네트워크에 있는지 판단한다. 같은 네트워크에 있다면 목적지의 MAC 주소를 찾아서 직접 전달함(라우터 거치지 않음) 그런데 2계층 내에서 전달하는 거라면,2계층 스위치는 MAC 주소만 알고, 3계층 정보인 IP 주소는 모를텐데!? => 2계층 ↔ 3계층 정보 교환 가능하게 해주는게 arp와 rarp프로토콜. (..

◆ Kernel OS가 가지고있는 프로그램 컴퓨터 밑단에서, 좀 core한 애들을 다뤄주는 애들이 존재한다. 컴퓨터 파워를 키면, 가장먼저 실행되는 프로그램이 bootstrap 프로그램(ROM) 그 다음에 올라오는게 os의 kernel 프로그램 커널의 크리티컬한 코드들은 메모리의 분리된 공간에 로드됨. 여기 올라와있는 커널 코드들은 크리티컬 코드가 아닌 곳에서 접근해오거나, Application 단에서 접근해 오는 걸 막는 것임. 이 공간을 kernel space라고 부름. 이게 우리가 그 os의 권한을 얻어서 하기 힘들다 했던 그 접근 권한에 해당하는 거임. 내가 프로세스를 돌리거나, 하드웨어 디바이스, 핸들링.. 이런거를 얘가 관리함 ▶ 구성 kernel space ↔ user space user s..

◆ Subsystem 모든 게임 엔진은 굉장히 많은 subsystem들이 합쳐져서 하나의 엔진으로 구성되어 있음! ◆ Subsystem 초기화 순서 subsystem들이 켜지고 꺼질 때 순서 중요함 sub1이 sub2에 의존하고 있다면, sub2 → sub1로 켜고, sub1 → sub2로 끔. 게임 실행되면 물리엔진, 리소스관리, DB관리, 메모리관리…가 같이 실행되어야함 근데 메모리관리 시스템을 로드하기 위해선 데이터 구조체나 수학 연산 이런애들이 같이 로드되어야 함 그러면 순서가! Dependency가 있는 애들이 먼저 로드가 된 후에, 메모리관리 시스템이 로드되어야 함. 서브시스템끼리 Dependency가 있는거임. 얘의 정보를 이용해 얘를 가져와야하고… 특정한 순서에 따라 얘를 로드해줌. 만약에..

◆ C++ 처리 과정전처리 - 컴파일 - 링크 ▶ Preprocessing (전처리).cpp + .h컴파일러가 코드를 이해하기 쉽게 처리해줌 헤더파일 합쳐주고, #pragma once 처리하고,... 그런 거 함 전처리의 네단계 과정Trigraph replacement (트라이그래프 대체)과거 특수문자 사용이 어려울 때 트라이그래프(3개의 문자 조합)를 통해 특수문자를 표현했었음전처리 과정에서 이를 실제 특수 문자로 바꿔줌 현대에는 거의 사용되지 않으나, C++ 표준으로 남아있으므로 이런게 사용될수도 있구나 정도만 알고있으면 됨Line splicing (줄 이어붙이기)역슬래시(\)를 사용해 물리적으로 줄을 나눈 경우 이들을 하나의 논리적 줄로 합쳐줌Tokenization (토큰화)코드를 토큰과 공백으로 ..

◆ Programming Language for Game왜 게임에서는 객체지향을 쓸까?당연하게도, 절차지향인 경우, 게임으로 가면 문제가 많아짐하나 바꿀려면 그거 관련해서 다른거에 영향주는 거 다 찾아서 바꿔야 함객체지향은 해당 객체 하나만 바꾸면 되니까 굿 ◆ low-level language vs high-level languangelow-level language어셈블리어, 기계어직접 메모리 관리 해줘야 함high-level languagePython, C++, JAVA, ...자동으로 garbage collection 지원해주기도 함. (C#, Python, Java)◆ Nominal Typing vs Structural Typing타입을 비교하는 방식에 따라 명목적 타이핑, 구조적 타이핑으로 나..

▶ Scene Optimization Layer실행중에 적절히 씬을 최적화하기 위한 목적 몇가지 자주쓰이는 씬 최적화 기법이 있음Frustum CullingSpatial subdivisionLOD ▷ Scene Optimizaion Layer - Frustrum cull카메라 뷰에 비치는 부분만 렌더링 정확히는, 카메라의 뷰 frustum 안에 들어가는 부분만 렌더링하고, 나머지는 불필요하므로 컬링하여 렌더링 과정에서 제외 ▷ Scene Optimizaion Layer - Spatial subdivisionvertex들을 공간 단위로 구분해서 각 영역에 포함된 객체들을 관리하는 기법 그러면 뭔가를 찾을 때 이 큐브(구분된 공간) 단위로 순회해서 찾는 것임. (원래는 전체 vertex 다 순회) 이렇게 하..