참고 문서 책 '이득우의 언리얼 C++ 게임 개발의 정석' Chapter 15 게임 데이터 저장과 로딩 언리얼은 게임의 데이터를 저장하고 불러들이는 기능을 제공해준다. 이 기능을 사용하면 각 플랫폼별로 알맞은 최적의 장소에 데이터가 저장된다. 언리얼 에디터에서 게임 데이터를 저장하는 경우 프로젝트의 Saved 폴더에 있는 SaveGames 폴더에 저장된다. 구현해보기 SaveGame을 상속받아 ABSaveGame 클래스를 생성한다. #pragma once #include "ArenaBattle.h" #include "GameFramework/SaveGame.h" #include "ABSaveGame.generated.h" UCLASS() class ARENABATTLE_API UABSaveGame : p..
기타/Unreal
한 것들 프로젝트 생성하기 Unreal 4.26.1 버전을 사용했다. 깃 허브 연동하기 Git을 비교적 간단하게 사용할 수 있는 Github Desktop을 사용했다. https://github.com/mingyu243/MyRPG mingyu243/MyRPG Unreal4로 제작해보는 RPG입니다. Contribute to mingyu243/MyRPG development by creating an account on GitHub. github.com 깃허브에 올릴 때 Commit->Push를 한다. 깃허브에서 처음으로 다운받을 때 Clone Repository를 한다. 비주얼스튜디오 파일인 .sln 파일은 올라가지 않았으므로, Clone Repository를 한 후에 따로 만들어주어야 한다. 깃허브에서..
데디케이트 서버 개념 호스트를 담당하는 서버 + 여러 명의 클라이언트 설명 계속 24시간 하루종일 돌아가야하는 게임일 경우, 데디케이트 서버를 사용한다. 참고 언리얼에서 데디케이트 서버를 사용하려면, 언리얼 엔진 소스 코드를 받아서 빌드해야 한다고 들었다. 리슨 서버 개념 클라이언트 중 한명이 호스트를 담당 (서버의 역할을 가짐.) + 여러 명의 클라이언트 설명 방을 만들어서 시작하는 게임일 경우, 리슨 서버를 사용하면 될 것 같다. 참고 아마도 서든어택이 리슨 서버 방식인 것 같다. 서든어택은 호스트로 지정된 플레이어가 방을 나가면 갑자기 렉이 걸리면서 게임이 리셋되는 느낌을 준다. 단점으로는 호스트가 렉이 걸리면, 다 같이 렉이 걸릴 수도..? 보안에 취약하다.
참고 문서 책 '이득우의 언리얼 C++ 게임 개발의 정석' Chapter 12 & docs.unrealengine.com/ko/InteractiveExperiences/ArtificialIntelligence/BehaviorTrees/BehaviorTreeNodeReference/index.html 데코레이터 노드란? 언리얼 문서에 이렇게 설명되어있다. Also known as conditionals. These attach to another node and make decisions on whether or not a branch in the tree, or even a single node, can be executed. // 번역해보면 조건부로도 알려져 있습니다. 다른 노드에 연결되고 해당 노드에..
참고 문서 찾으면 적겠슴다......... 상황 언리얼 버전 4.26.1 언리얼 에디터에서 게임 플레이를 하고, 플레이 종료를 하는 순간에 저 창이 뜨면서 에디터가 종료된다. 근데 20번 중에 한번 정도?로 되게 가끔 일어나는 오류라서 고칠까말까하다가 고쳐보기로 했다. 구글링해보니 영어로는 이렇게 뜨나 보다. Pure virtual function being called while application was running (GIsRunning == 1). 크래쉬를 천천히 읽어보니, 내가 짠 파일에서 오류가 난 게 아닌 것 같다. 다음에 해결해보자..... 엔진 오류인가? Fatal error: [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Core/Private/..
참고 문서 책 '이득우의 언리얼 C++ 게임 개발의 정석' Chapter 12 & docs.unrealengine.com/ko/InteractiveExperiences/ArtificialIntelligence/BehaviorTrees/BehaviorTreeNodeReference/index.html 서비스 노드란? 언리얼 문서에 이렇게 설명되어있다. These attach to Composite nodes, and will execute at their defined frequency as long as their branch is being executed. These are often used to make checks and to update the Blackboard. These take the ..
참고 문서 책 '이득우의 언리얼 C++ 게임 개발의 정석' Chapter 12 & docs.unrealengine.com/ko/InteractiveExperiences/ArtificialIntelligence/BehaviorTrees/BehaviorTreeNodeReference/index.html 태스크 노드란? 언리얼 문서에 이렇게 설명되어있다. These are the leaves of the Behavior Tree, these nodes are the actionable things to do and don't have an output connection. // 번역해보면, 비헤이비어 트리의 마지막 노드로, 이러한 노드는 실행 가능한 것들이고, 출력 연결이 없습니다. 태스크 노드 만들기 BTT..
참고 문서 책 '이득우의 언리얼 C++ 게임 개발의 정석' Chapter 12 Blackboard에 키 추가하기 (무엇을 기억할건지.) 키 이름으로 접근할 수 있도록 Controller에 변수 추가하기 이렇게 만들면, 다른 코드에서 참조하기 편하다. #pragma once #include "ArenaBattle.h" #include "AIController.h" #include "ABAIController.generated.h" UCLASS() class ARENABATTLE_API AABAIController : public AAIController { GENERATED_BODY() public: AABAIController(); virtual void OnPossess(APawn* InPawn) ov..