2026/03 10

[내일배움캠프 - 언리얼] TIL - 68

Data driven코드가 아니라 데이터로 컨텐츠를 정의 Const : 테이블에 고정된 값. 모든 서버/클라가 같은 데이터를 공유Runtime : 플레이 중 변하는 값. 서버가 계산하고, 개체마다 다름DataTableSubsystem으로 한 번 로드, 전역 접근// - 슈도 코드 : C++ 서브시스템 생성 제한 -bool ShouldCreateSubsystem(Outer){ World = Cast(Outer); // 게임 월드 또는 PIE(에디터 플레이) 에서만 생성 if (World.Type != Game && World.Type != PIE) return false; // 특정 게임모드에서만 생성 GameModeClass = World.Settings...

[내일배움캠프 - 언리얼] TIL - 67

UI 띄우기PlayerController에 있는 UpdateUI 함수를 GameMode에서 실행하니 작동이 되지 않았다GameMode에서 GameState에 데이터를 업데이트해주고 함수 실행을 GameState로 옮기니 잘 작동하였다 숫자 야구 게임 개발필수 기능1. GameModeBase의 판정 로직 구현2. PlayerState 클래스를 활용한 시도 횟수 관리3. 게임 제어 : 승리, 무승부 그리고 리셋 도전 기능1. 턴 제어 기능2. 턴 내에 숫자 야구(채팅을 입력)하지 않을 시 기회 소진 기능 추가 구현1. 배경 이미지 추가2. 채팅 Debug에서 UI로 변경3. 현재 턴인 플레이어와 플레이어 목록 표시 아쉬운 점, 개선 사항1. 플레이어 턴이 시간이 끝나는 것으로 횟수가 소모 되었을 때 무승부..

[내일배움캠프 - 언리얼] TIL - 65

네트워크 프로퍼티 레플리케이션1. Replication Notify (값 변경 통지)변수 값이 서버에서 클라이언트로 복제될 때, "값이 바뀌었으니 이 함수를 실행해!"라고 예약하는 기능 2. NetUpdateFrequency (업데이트 빈도)서버가 해당 액터의 상태를 클라이언트에 얼마나 자주 보낼지 결정하는 초당 횟수 3. Relevancy (연관성)서버가 "이 클라이언트에게 이 액터 정보가 정말 필요한가?"를 판단하는 기준 4. NetPriority (우선순위)네트워크 데이터가 너무 많아 한 번에 다 보낼 수 없을 때(포화 상태), 어떤 액터 정보를 먼저 보낼지 정하는 순위표 5. NetDormancy (휴면 상태)액터가 "잠든 상태"가 되어 더 이상 네트워크 업데이트를 주고받지 않는 상태

[내일배움캠프 - 언리얼] TIL - 64

EnableGDTGameplay Ability System의 디버거 UI를 보기 위해 EnableGDT를 호출하였더니 에러가 났다check(RepNotifyCondition == Other.RepNotifyCondition); 데이터 변형 과정에서 로컬 객체와 복제된 객체의 상태가 일치하지 않아 발생한 오류이다 MyAttributeSet에서 GetLifetimeReplicatedProps(...)에서 매크로 단순화를 해주니 해결되었다.// 수정 전void UMyAttributeSet::GetLifetimeReplicatedProps(TArray& OutLifetimeProps) const{ Super::GetLifetimeReplicatedProps(OutLifetimeProps); DOREP..

[내일배움캠프 - 언리얼] TIL - 63

No such file or directory챕터 4를 따라 진행을 하는데 파일을 생성하고나니 빌드가 되지 않았다알고보니 cpp 파일에 있는 헤더의 경로가 잘못되었던 것인데 폴더를 생성하고 파일을 넣었더니 빌드가 경로를 찾지 못한 것이다해결 방법- 경로를 처음부터 자세히 작성해준다.- Build.cs 파일에 경로를 추가해준다.PublicIncludePaths.AddRange(new string[] { "프로젝트 이름" }); 블루프린트와 c++을 같은 이름의 폴더로 정리하기

[내일배움캠프 - 언리얼] CH3 프로젝트 회고

이름KEEPProblemTry이병헌작업한 내용에 대해 서로 빠른 피드백을 주고 받아 더 좋은 퀄리티를 이끌어낼 수 있었다.구현하려는 방식이 이미 작업한 내용과 연계가 되지 않아 다른 구현 방식을 찾아야했다. → 기획 과정에서 가능한 구체적으로 설계를 해야함코드에 주석도 달고 작업 도중도중 정리하고 리팩토링을 하면 서로의 코드 분석에 시간이 덜 소모되어 좋을 듯하다.조창민과감한 리팩토링 사용하는곳이 많은 코드여도 과감하게 리팩토링을 진행해 완성도를 높인 점짧은 기간에도 확장성있고 응집도높은 구조를 만들려고 노력한 점DataTable이 type에 따라 읽어오는 크기가 다르게 될 줄 알았던 점그림을 작게 그린 상태로 프로젝트를 시작해본 것은 처음인데 나하고 맞지 않는 방식인 것 같다 모든 요소가 추가되지 않더..