Create Game

    [UE5] COMBAT GAME - 02. Wearable Equipment

    1. Wearable Equipment 1.1 Wearable BP - 캐릭터에게 장착할 수 있는 모든 것을 생성하기 위해 부모 클래스 생성 - 모든 아이템은 이 클래스를 상속받을 것임 - 장착할 수 있도록 하는 함수 생성 - 나를 소유하는 객체(Get Owner)의 캐릭터를 받아 존재하는지 확인 - 소유한 객체를 캐릭터로 캐스팅하면 캐릭터를 접근할 수 있음 - 만약 캐릭터가 있다면 캐릭터에게 부착(Attach Actor To Component) 1.2 Child Weapon BP - 장착할 수 있는 Wearable BP를 상속 받아 모든 무기를 이 클래스로 부터 생성 - 무기를 장착하였을 때 캐릭터들의 움직임을 생성 - 애니메이션 몽타주를 사용하여 장착, 미장착, 회피, 공격을 사용 1.3 Child ..

    [SERVER] Memory Order

    1. Memory Order 1.1 atomic - atomic 객체들의 경우 원자적 연산 시에 메모리 접근할 때 어떠한 방식으로 접근하는지 지정할 수 있음 1.2 memory_order_relexed - 가장 느슨한 조건 - 메모리에서 읽거나 쓸경우 - 주위의 다른 메모리 접근들과 순서가 바뀌어도 무방 1.2.1 Main - 2가지의 atomic 객체 생성 후 쓰레드 생성 int main() { vector workers; std::atomic number1(0); std::atomic number2(0); workers.push_back(std::thread(worker1, std::ref(number1), std::ref(number2))); workers.push_back(std::thread(w..

    [SERVER] Atomic

    1. Atomic 1.1 Atomic - 모든 쓰레드들이 수정 순서에 동의를 해야하는 경우는 바로 모든 연산들이 원자적일 때 가능 - 원자적인 연산이 아닌 경우 - 같은 수정 순서를 관찰할 수 있음이 보장되지 않음 - 직접 적절한 동기화 방법을 통해 처리 - 위 방식을 지키지 않을 시 프로그램이 정의되지 않은 행동을 함 1.2 Main - atomic의 템플릿 인자로 원자적으로 만들고 싶은 타입 전달 - atomic 객체에서 제공하는 함수들을 통해 여러가지 원자적인 연산들 수행 가능 int main() { vector workers; std::atomic counter(0); workers.push_back(std::thread(worker, std::ref(counter))); workers.push_..