본문 바로가기

분류 전체보기

(333)
이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해 수강 후기 해당 강의를 듣게된 이유는 언리얼 전문 프로그래머로써 기초를 다지기 위해서였고, 그 중에서도 멀티플레이 게임에 관심이 있어서 였습니다. 이와 관련된 내용들은 아래 '이전 글' 섹션에 있는 글들에서 작성해두었습니다. 해당 강의는 언리얼 게임 프레임워크를 이용하여 위 영상과 같은 게임 컨텐츠를 만드는 강의로, 언리얼 cpp를 통해 게임을 만들어보려는 모든 분들에게 한번 들어보는걸 추천하는 강의입니다. 파트1의 경우 사람에 따라서 과한 내용일 수 있다고 생각하고, 파트3의 경우 진입장벽이 높다고 생각하기 때문에 이득우님의 언리얼 강의 시리즈로 개발을 입문하시려는 분은 해당 강의를 통해 시작을 해보시는게 어떨까 하는 생각이 듭니다. 강의의 특징은 코드의 퀄리티가 높다는 점입니다. 프로젝트에서도 스크립터들을 레이..
이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해 수강 후기 약 3년간 유니티 클라이언트 프로그래머로 근무하다가 새로운 기술에 도전해보기 위해 언리얼을 공부하고자 마음먹었습니다. 프로그래밍 엔지니어 출신으로써 c++언어를 이용해서 언리얼에 접근해보고자 했는데, 대부분의 튜토리얼이 블루프린트로 되어있어서 학습의욕이 안나던 중 이득우님이 언리얼 c++강의 시리즈를 출시해주셔서 수강하게 되었습니다. 언리얼은 유니티와 함께 가장 대표적인 게임 엔진으로 알려져 있는데, 유니티와 달리 개발을 시작하기 위한 진입장벽이 높은 것으로 유명합니다. 그 큰 이유중 하나가 언리얼은 엔진에서 제작할 수 있는 프로젝트의 구조가 어느정도 잡혀있는 상태에서 시작하기 때문에 작업을 위해서는 그 구조를 일단 어느정도 파악한 후 접근해야 한다는 인식이 있기 때문이였습니다. 저는 이득우님의 언리얼 ..
이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해 수강 후기 언리얼 엔진에서 제공해주는 멀티플레이 기능을 학습하기 위해 해당 강좌를 수강하였습니다. 지난 파트2에서 진행했던 프로젝트를 기반으로 멀티플레이 기능을 추가하고 다듬는 식으로 강의가 진행되었습니다. 주요 강의 내용을 정리하면 다음과 같습니다 - 액터의 리플리케이션(연관성, 우선권) - 언리얼 인사이트를 통한 패킷분석 - RPC - 움직임 리플리케이션 분석과 신규 움직임 추가 - 게임모드 & 게임스테이트 & 플레이어 스테이트 확장 파트1 완강 이후 파트2를 반정도 듣다가 파트3 내용을 먼저 듣고싶어서 완강까지 달렸는데, 특히 파트3을 진행하며 배운 내용들이 귀하다는 생각이 들었습니다. 네트워크 멀티플레이 게임에 대한 내용을 이렇게 접근하기 쉽게 정리한 자료를 찾기도 힘들기도 하고, 이 강의에서 배운 내용의 ..
[Unity] 가비지 컬렉션, 베스트 프래틱스 이 글은 unity에서의 가비지 컬렉션에 대해 알아보기 위해 정리한 글입니다. 초반부에는 유니티 공식문서를 기반으로 내용을 정리하고, 후반에는 참고한 글들과 개인적 경험을 바탕으로 글을 작성하겠습니다. 공식문서(매뉴얼) 정리 내용 Unity는 응용 프로그램에서 메모리를 처리하기 위해 세 가지 메모리 관리 레이어를 사용합니다 - 관리되는 메모리: 관리되는 힙과 가비지 컬렉터를 사용하여 자동으로 메모리를 할당하는 제어되는 메모리 레이어 - 관리되지 않는 메모리: 가비지 컬렉터를 사용하지 않는 메모리 - 네이티브 메모리: Unity에서 엔진을 구동하는 데 사용하는 c++ 메모리. 가비지 컬렉터는 애플리케이션에서 메모리를 관리하는 가장 쉬운 방법이지만, 메모리 해제/할당 타이밍을 예측할 수 없기 때문에 불안정한..
[EMC++] 소개 소개 c++11의 변화의 폭은 매우 크다 - auto선언, 범위 기반 for 루프, 람다 표현식, 오른값 참조 등등.. - 새로운 동시성 기능 - nullptr와 별칭 선언 등장 - 스마트 포인터 - 객체 이동 이 책은 c++11과 c++14의 기능들 자체가 아니라, 그 기능들의 효과적인 적용 방법을 서술하는 데 전념 c++11에서 가장 널리 쓰이는 기능은 아마 이동 의미론(move semantics) - 오른값(rvalue)에 해당하는 표현식과 왼값(lvalue)에 해당하는 표현식이 구분됨 - 오른값은 이동 연산이 가능한 객체를 가리키지만, 왼값은 일반적으로 그렇지 않음 - 일반적으로, 주소를 취할 수 있다면 왼값, 없다면 오른값 함수 호출의 맥락에서, - 인수(argument): 함수에 전달한 표현식..
[렌더링] 셰이더 기초 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 원본 글에 적혀있지 않은 내용을 추가할 때에는 (작성자 추가: ..내용)과 같은 형태로 작성하겠습니다. 요약 - 정점 변형 - 컬러 픽셀 - 셰이더 프로퍼티 활용하기 - 버텍스에서 프래그먼트로 데이터 전달하기 - 컴파일된 셰이더 코드 검사 - 타일링 및 오프셋을 사용하여 텍스쳐 샘플링 1. 기본 씬 Unity에서 새 씬을 생성할 떄 기본 카메라와 디렉셔널 라이트로 시작합니다. 씬에 구를 추가하고 원점에 배치한 다음 카메라를 바로 앞에 배치합니다. 이 씬은 매우 단순한 장면이지만 이미 많은 복잡한 렌더링이 진행 중입니다. 렌더링 ..
[렌더링] 행렬 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 원본 글에 적혀있지 않은 내용을 추가할 때에는 (작성자 추가: ..내용)과 같은 형태로 작성하겠습니다. 요약 - 큐브 그리드를 만듭니다. - 크기 조정, 위치 지정 및 회전을 지원합니다. - 변환행렬로 변형을 수행합니다. - 간단한 카메라 투영을 생성합니다. 렌더링에 기본에 대한 튜토리얼 시리즈의 첫 번째 파트입니다. 변환 행렬을 다룹니다. 렌더링 시리즈를 본격적으로 시작하기에 앞서 절차적 그리드로 시작하는 메시 기본 시리즈를 살펴봅니다. 그러면 메시가 어떻게 작동하는지 이해할 수 있습니다. 이 시리즈에서는 이러한 메시가 실제로..
[메시 기초] 메시 변형 (Catlikecoding) 해당 글은 CatlikeCoding의 튜토리얼을 실습하며 번역해놓은 글입니다. 번역 과정에서 제가 내용을 덧붙이거나 삭제한 부분이 존재합니다. 원본의 링크는 글 하단에 있습니다. 원본 글에 적혀있지 않은 내용을 추가할 때에는 (작성자 추가: ..내용)과 같은 형태로 작성하겠습니다. 요약 - 물체에 광선을 투사하고 디버그 라인을 그립니다. - 힘을 정점의 이동량으로 변환합니다. - 스프링과 댐핑으로 형태를 유지합니다. - 오브젝트의 변형을 보정합니다. 1. 씬 설정 중앙에 하나의 큐브 구체가 있는 씬부터 시작하겠습니다. 변형을 제대로 테스트 하기 위해서는 구에 적절한 수의 정점이 포함되어야 합니다. 구의 격자 크기를 20으로 설정하고 반지름을 1로 설정했습니다. 2. 매시 변형 변형을 처리할 'MeshDe..