하루 시작 팀 회고 / ACK / 분반 수업 / 에셋과 관련된 상담 / 개인 프로젝트 설계 다듬기 / UE 멀티플레이어 게임 개발
베이직 /ACK / 베이직 과제 정리 / 챕터 4 수강
==========
최대 공약수는 유클리드 호제법으로 코드화를 해서 사용이 가능함.
최소 공배수는 최대 공약수를 추출해 낼 수 있다면 마찬가지로 역산이 가능함.


가장 작은 공배수에서 바로 탈출(break;)해버려서 오류가 존재함.(좌)
유클리드 호제법을 활용해서 두 수를 곱한 뒤 최대 공약수로 나눠 두 수의 최소 공배수로 계속 만들어 여러 수의 최소 공배수로 변환가능한 식(우)
==========

WBP_ (WidgetBlueprint)
DPI(폰트) scale
Fill screen
Desired - 위젯이 요구사항에 맞춰서 변경되겠다는 의미
canvas panel
1단 오버레이를 최상단에 넣어야 HUD를 제작하는 것이 편리해진다.
좌상단에 있는 핀은 사이즈에 대응하여 위치를 보정해주는 핀이다. income(?)
Horizontal Box
Auto / Fill - Size
AHUD - 디버깅을 위한 분류로 나눠졌다고 생각하면 좋다. - 얘는 UMG를 거치지 않고 관리된다는차이점이 있음.
UMG에서 관리되는 Widget
BindWidgetOptional - 만약 존재하지 않으면 nullptr로 넣어줘서 실행이 가능하게 변경 가능
-> 이러면 연결이 끊길 수 있는 정보에 대한 Widget에 사용 가능할 듯 하다.
Border -> 딤드(Dimmed)
Dimmed(딤드) - 팝업이나 모달이 뜰 때 뒤쪽 배경을 반투명하게 어둡거나 흐릿하게 처리하여 생성된 컨텐츠를 강조하는 기법
Hidden - 자리는 유지하고 보이는 것만 사라짐
Collapsed - 자리도 없던 것처럼 쪼그라듬
Not Hit Testable - 아래에 입력을 전달해 주겠다.(팝업이 떠도 아래의 버튼 등을 컨트롤 할 수 있음)
game maintenance 직역 - 게임 유지 - 게임 점검
inspection - 점검
Widget에서는 단순 입력 연결로 실행을 할 수 있다.
** Tools - Debug - Widget Reflector ->이렇게 팝업을 켜면 Widget에 대한 정보들을 실행 도중에 확인할 수 있다.
- 이 녀석을 어떤 곳에서 들고 있다, Detail 실시간 변경 등이 가능함.
이 방법을 이용해서 UE의 창에서 보이는 키를 검색해서 기능을 역설계 할 수 있다.
Hit Testable
==========
구조를 좀 더 생각해서 초기 설계 정리를 해두면 좋을 것 같다.
==========
포크를 써도 좋다. - git desktop을 기본적으로 사용하고 있지만 이런 보조 프로그램들은 정해진 바가 없기 때문에 다양하게 써보고 취향에 맞게 사용하는 것이 좋다.
UE에서 완전히 기본적인 상황에서 무료인 에셋들은 퍼블릭에 공유되더라도 문제가 생기지 않는 라이센스를 가지고 있다고 한다. 또한 다른 에셋들을 사용하더라도 git으로 관리한다면 따로 Commit을 해제해서 올리지만 않는 방식으로 관리하고 READ.ME에서 언급하는 방향으로 사용하면 된다.
다만 포크는 repository를 생성하는 것은 도와주지 않는다.
(애초에 다른 프로젝트를 가져오는 fork라서 가져온 후 사용할 수 있는 것에 최적화됨)
==========
경로를 지정해주는(에디터에서 C++클래스 생성 마지막 단계) 경로에서 ".../원하는 새 분류폴더이름"을 뒤에 추가하면 폴더를 자동으로 생성하면서 클래스 생성이 된다.
이런 무언가 철자 오류거나 그냥 UE C++가 개똥이라 읽지 못했다. 헤더 첨부 과정에서 오류가 있었던 것으로 보임. (링크되는 이름으로 자동 완성을 했을 때 아래에 제대로 입력했던 class명과 이름에 링크가 강조되었음.)
===
Slate / SlateCore - build.cs에 추가해본 내용물 - 간단하게만 (일단 안 해도 되는 부분이었다.)
강의 자료에서 약간 오해가 있을 수 있도록 표현되었는데 TextBox를 상속받아온 게 맞았다.
===
??? VS에서도 Ctrl + . 으로 여러개의 선언/정의 만들기가 가능하다. 동시에 헤더 찾기도 가능함;
다만 너무 많은 녀석들을 사용하거나 원래도 제자리에 생성이 잘 안되던 녀석들(virtual void 등)이 포함되면 렉이 크게 걸리는 문제가 있는 것으로 추정됨
========
서버의 종류, 데디케이티드 서버
P2P Server (Peer to Peer Server) - 각각이 모두 클라이언트이자 서버인 구조 -던-, 다크소울 토렌트 등
Listen Server - 한 명은 클라이언트이자 서버이고(Host) 나머지는 참가자(Guest) 클라이언트 역할인 구조 - 마인크래프트, 어몽어스 등
Dedicated Server - 서버를 담당하는 컴퓨터가 따로 존재, 나머지는 참가자 클라이언트 구조 - 배틀 그라운드
PIE - Play In Editor
PIE를 했거나, Server.exe를 실행하는 식으로 서버 프로세스 실행.
실행 시 Open{Lexel이름}?Listen 명령어가 인자로 전달, 해당 Level이 열림.
이 때 Socket이 생성되어 다른 PC가 접속 가능하게 만들어지며 Listen 명령어가 없다면 싱글 플레이가 됨.
GameModes는 서버 컴퓨터에만 존재하며 호출되면서 다른 여러가지 액터들을 생성함.
클라이언트가 서버에 접속하면 레벨 정보를 받고 레벨 오픈에 성공했다는 정보를 서버가 받으면 클라이언트에 필요한 액터들을 서버에 생성하고 복제 가능한 정보를 클라이언트에 제공해서 클라이언트가 생성할 수 있게 됨.
서버는 컨트롤러를 모두 가지지만 각각의 클라이언트는 각자의 컨트롤러 만을 가진다는 특징이 있다.
레벨은 모두가 모체에 가까운 구조로 소유하는 방식이 된다.
========
실습 환경 설정






Ctrl + T - 코드 서치
if (IsLocalController() == false) return; - 내 클라이언트가 아니라면 return. - 컨트롤러의 권한을 본인 클라이언트 만으로 제한하는 것.
'TIL' 카테고리의 다른 글
| 26.03.11일자 - TIL (0) | 2026.03.11 |
|---|---|
| 26.03.10일자 - TIL (0) | 2026.03.10 |
| 26.03.06일자 - TIL (0) | 2026.03.06 |
| 26.03.05일자 - TIL (0) | 2026.03.05 |
| 26.03.04일자 - TIL (0) | 2026.03.04 |