프로그래밍 공부

프로그래밍 700

카테고리 설명
  • 언리얼 계층구조를 크게 살펴보자. 월드, 레벨, 오브젝트, 컴포넌트 이렇게 4개로 계층구조를 크게 나눌 수 있다. 월드 : 게임 전체 환경을 나타내며, 모든 게임컨텐츠의 기초이다. 월드는 여러개의 레벨로 구성된다. 레벨 : 월드내에서의 개별환경을 나타낸다. 각 레벨은 독립적인 게임환경을 제공하고, 여러개의 오브젝트로 구성된다. 오브젝트 : 오브젝트는 레벨 내의 개별요소를 나타낸다. 이것들은 게임캐릭터, 아이템, 배경 등 다양한 형태를 가진다. 언리얼에서는 엑터라고 표현한다. 이러한 엑터들은 컴포넌트들로 구성된다. 컴포넌트 : 오브젝트의 부분기능, 특성을 나타내는 모듈화된 요소를 나타낸다. 오브젝트의 함수라고 이해하면 편하다. 월드 게임 내의 월드 자체를 의미하는데, 우리가 생각하는 게임 스테이지는 월드가..

  • 리플리케이션을 쉽게 풀어서 이야기하면, 서버와 클라이언트 간 데이터 동기화를 의미한다. 여기에서 언리얼 리플리케이션은 언제 동기화를 시킬지. 아니면 동기화시키지 못할경우 가장 근사한 값을 유지시켜야 함으로, 어떤방식으로 유지하는지 등을 이야기 한다. 멀티플레이에만 중요한 개념이라기 보다는, 데이터 동기화, 통신 필요분야 에서 사용하는 개념인데, 보동 3가지로 구분해서 생각한다. 동기화 : 서버와 클라이언트 간의 게임상태, 플레이어 입력을 동기화하여 모든 플레이어가 일관된 게임을 플레이할 수 있도록 한다. 상태 전송 : 서버에서 변경된 상태를 클라이언트에 전송하여 실시간반영을 할 수 있도록 한다. RPC(Remote Procedure Call) : 함수 호출을 서버에서 클라이언트로, 또는 그 반대로 전송하..

  • 리플렉션[Reflection] 프로그램이 실행시간에 자기자신을 조사하는 기능이다. 이러한 기능은 에디터의 디테일 패널, 시리얼라이제이션, 가비지콜렉션, 네트워크 리플리케이션, 블루프린트/C++ 커뮤니케이션 등 다수 시스템에 탑재된 기능이다. 그러나, C++자체에서는 리플렉션 을 지원하지 않는다. 언리얼에서는 자체적으로 C++클래스, 구조체, 함수, 멤버 변수, 열거형 관련 정보를 수집, 질의 , 조작하는 별도의 시스템이 구축되어있다. 이러한 리플렉션은, '프로퍼티 시스템' 이라고 부르는데, 리플렉션은 그래픽용어이기 때문. 쉽게 이해해보자. 우리가 C++에서 객체를 정의 / 생성하고 값을 부여할 때 에는 런타임 전에 수정하고. 런타임 중에 해당 객체를 수정하기 위해서는 컴파일을 종료하고. 내부 코드를 수정..

  • 배열은 같은 데이터 타입의 값들을 일렬로 나열한 것 이다. 각 항목은 배열의 위치로 구분된다. C++에서 배열을 선언할 때는 배열의 크기를 명시적으로 설정해야 한다. 배열의 크기로 값이 변할 수 있는 변수를 줄 수는 없다. 배열의 크기는 상수여야 한다. 또는 상수 표현식(constant expression)[constexpr]을 배열 크기 선언에 이용할 수 있다. int myArray[3]; myArray[0] = 0; myArray[1] = 0; myArray[2] = 0; 위와같이 3개의 정수값을 담는 배열을 선언하고, 배열의 항목을 모두 0으로 초기화한다. 이러한 초기화 방식은 다른 방법이 있는데, 반복문을 사용해서 초기화 할 수있고, 또는 초기화 매커니즘을 사용해서 초기화 할 수 있다. int m..

  • 1.1.8 논리 산출 연산자 이미 논리 산출 연산자로서 > 연산자를 사용하였다. > 연산자는 두 값을 비교하여 왼쪽이 크면 참을 아니라면 거짓을 리턴 한다. 모든 조건 연산자는 위와같은 패턴으로 동작하는것을 기억하자. 조건 연산자의 결괏값은 항상 true 또는 false이다. 연산자 설명 사용 예 = 왼쪽 값을 오른쪽 값과 비교하여 작음, 작거나 같음, 큼 , 크거나 같음에 따라 참, 거짓을 반환한다. if(i < 0) { std::cout

  • 1.1.7 조건문 조건문은 주어진 표현식의 결과가 참(true)인지, 거짓(false)인지 에 따라 특정 코드의 실행 여부를 결정할 수 있게 해준다. C++ 에서는 주로 세가지 형태의 조건문을 사용한다. if/else 문 가장 흔한 조건문은 if문으로, 보통 else 문과 함께 사용한다. if문은 조건이 참이면 if문 아래 블록 또는 블록이 없을 경우. 바로 아래 라인의 코드를 실행한다. 조건이 거짓이라면, else블록의 코드를 실행한다. else 블록이 없다면, if문 블록 아래 라인의 코드가 실행된다. if문의 괄호 영역에 들어갈 구문은 반드시 불(Bollean)변수 이거나, 불타입의 결과값을 가져야 한다. 논리 산출 연산자는 표현식이 true, false의 불타입 결과를갖게 해준다. switch문 ..