TIL day 69
·
TIL
오늘도 역시 데디케이티드 서버 관련 공부를 진행하였습니다.RPC 이후 내용을 추가로 공부하고 정리하였습니다.https://gbleem.tistory.com/140 Unreal Engine - 데디케이티드 서버 개념 및 실습1. 서버의 종류P2P각 컴퓨터가 서버랑 클라이언트를 모두 수행하는 방식리슨 서버HOST 역할을 하는 서버용 컴퓨터가 존재 (클라이언트 역할도 수행)GUEST 역할을 하는 클라이언트용 컴퓨터가 존재gbleem.tistory.com 이후 팀원들과 팀프로젝트에 관해서 이야기를 해보았는데, 주말동안 사용할 템플릿을 분석해 봐야할 것 같습니다. 마지막으로 플러그인 만들기 과제를 제출하였습니다.
TIL day 68
·
TIL
오늘은 하루종일 네트워크(데디케이티드 서버) 관련 공부를 진행하였습니다. RPC관련 내용 전까지 공부를 완료하였습니다.https://gbleem.tistory.com/140 Unreal Engine - 데디케이티드 서버 개념 및 실습1. 서버의 종류P2P각 컴퓨터가 서버랑 클라이언트를 모두 수행하는 방식리슨 서버HOST 역할을 하는 서버용 컴퓨터가 존재 (클라이언트 역할도 수행)GUEST 역할을 하는 클라이언트용 컴퓨터가 존재gbleem.tistory.com
Unreal Engine - 데디케이티드 서버 개념 및 실습
·
Unreal Engine
1. 서버의 종류P2P각 컴퓨터가 서버랑 클라이언트를 모두 수행하는 방식리슨 서버HOST 역할을 하는 서버용 컴퓨터가 존재 (클라이언트 역할도 수행)GUEST 역할을 하는 클라이언트용 컴퓨터가 존재데디케이티드 서버server - client 구조서버의 역할 "만을" 수행하는 것이 따로 존재하고클라이언트는 모두 클라이언트의 역할만 수행한다.언리얼에서 볼 수 있는 설정의 종류  2. 데디케이티드 서버의 동작 순서위에서 본 사진처럼 Play As Client를 선택하면, 자동으로 데디케이티드 서버 프로세스가 켜지게 된다.(server.exe 를 실행하는 방식도 있음)play를 누르게 되면 서버에서는 OpenLevel 명령어와 Listen 명령어가 실행하고 클라이언트를 기다린다.OpenLevel을 통해 Leve..
static Keyword
·
C++
1. class 외부에서의 static의 의미개념)정의된 단위에서만 볼 수 있게 한다.static으로 선언한 변수가 존재하는 그 파일 내부에서만 그 변수를 찾을 수 있다는 의미 예시 1)statickeyword.cpp 파일static int s_Variable = 5; staticmain.cpp 파일#include int s_Variable = 10;int main(){ std::cout  이 경우 10을 출력하게 된다. 예시 2)만약 위의 statickeyword.cpp에서 s_Variable 변수의 static 을 빼면 아래와 같이 이미 정의되어있다는 오류를 출력한다. 예시 3) 그렇다면 이 에러를 없애주고, static 변수를 쓰기 위해서는 staticmain.cpp의 변수를 extern으로 선언하..
Unreal Engine - 플러그인 만들기
·
Unreal Engine
1. 플러그인 만들기편집 -> 플러그인 -> 추가 선택아래와 같은 창이 뜨게 된다.우리는 블루프린트에서 플러그인으로 만든 함수를 테스트 해보기 위해서 블루프린트 라이브러리 템플릿을 선택하여 만들 것이다. 플러그인 생성이 완료되었다면, 우리 프로젝트 폴더로 들어가 아래 세가지 폴더를 삭제 후, .uproject 파일을 우클릭해서 generate visual studio files를 해주어야 제대로 생성이 된다..vsBinariesIntermediate  2. 블루프린트 라이브러리https://dev.epicgames.com/documentation/ko-kr/unreal-engine/blueprint-function-libraries-in-unreal-engine 블루프린트 펑션 라이브러리란특정 게임플레이..
TIL day 67
·
TIL
1. 코딩테스트오늘은 BFS, DFS관련 수업을 듣고, 프로그래머스 level 3 - 여행경로 문제를 풀었습니다.https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 내가 풀었던 생각의 흐름 (이 방식으로 해결 못함)string을 넣었을때 string들을 출력해줘야 하니까 컨테이너는 unordered_map> 으로 구성했다.이후 방문 표시를 해주기 위해서 vis라는 컨테이너를 두었는데, 출발지와 도착지를 모두 포함해야 하니까 두 문자열을 합쳐서 저장하는 unordered_map vis 로 구성했다..
Unreal Engine - 야구 게임(리슨 서버)
·
Unreal Engine
1. 기본 로직1 - 1. 게임 시작 시레벨 BPUI를 띄워주고,UserID를 서버라면 HOST로 클라이언트라면 GUEST로 세팅해준다.PlayerControllerBeginPlay에서 아래와 같이 Widget의 이벤트 디스패처와 PlayerController를 Binding 해준다.GameModeBeginPlay에서 아래와 같이 게임에 필요한 값을 초기화 한다.난수 생성turn 과 count 초기화타이머 초기화 1 - 2. 숫자 입력 받기 숫자 입력UI에 /와 숫자를 입력한 다음 enter를 누르게 되면, UI의 SetMessagetoUserController가 call되는데 이 이벤트 디스패처는 PlayerController에 OnSendMessagetoServer와 바인딩 되어있다. 입력 처리UI ..
TIL day 66
·
TIL
1. 코딩테스트(알고리즘)오늘 오전에는 그래프 알고리즘의 다익스트라와 벨만-포드 알고리즘을 공부해 보았습니다. 해당 알고리즘은 조금 난이도가 있다고 느껴졌고 어떤 방식으로 동작하는지 위주로 먼저 공부를 하였습니다.아직 구현에 있어서는 익숙하지 않아 부족한 부분이 많다고 느껴져서, 앞으로 관련 문제를 만나서 풀게 되면 다시 한번 정리를 하는 것도 좋을 것 같습니다. https://gbleem.tistory.com/134 최단 경로 구하기 (다익스트라, 벨만-포드)1. 다익스트라 알고리즘가중치가 있는 그래프의 최단경로를 구할 때 사용하는 알고리즘 다익스트라 알고리즘의 동작 방식은모든 노드의 최소 비용을 INF로 초기화한다.시작한 노드의 최소비용gbleem.tistory.com  2. 언리얼 멀티플레이 과제내..
최단 경로 구하기 (다익스트라, 벨만-포드)
·
알고리즘(코딩테스트)
1. 다익스트라 알고리즘가중치가 있는 그래프의 최단경로를 구할 때 사용하는 알고리즘 다익스트라 알고리즘의 동작 방식은모든 노드의 최소 비용을 INF로 초기화한다.시작한 노드의 최소비용은 0, 직전 노드는 자기 자신으로 두고 시작이후 최소 비용이 가장 낮으면서 방문하지 않은 노드를 선택하여 최소 비용을 업데이트 한다.아래의 그림을 통해 어떤 방식으로 동작하는지 알 수 있다.최소 비용이 가장 낮은 A로 시작하여 모든 연결된 노드의 최소비용을 갱신 (A 방문)이후 최소비용이 가장 낮은 E노드를 시작으로 더 작은 최소비용이 되는 경로가 있다면 갱신 A->E->C가 기존의 A->C 보다 최소비용이 작으므로 갱신! (E 방문)이 방식을 모든 노드 방문할 때 까지 반복하기결과우리가 C까지의 경로를 알고 싶다면, C의..
Unreal Engine - Standalone을 리슨 서버로 확장하기
·
Unreal Engine
1. Standalone 게임아주 간단한 게임 로직을 하나 구성했다. Goal 이라는 액터가 존재하고, 해당 액터에 플레이어가 닿으면 UserName과 WIN! 이라는 문구를 띄워주는 게임이다. 로직 설명GameMode에서 Goal Actor를 하나 Spawn 해준다.Goal 이라는 Actor에 Character가 overlap된 순간 PlayerController의 EndGame이라는 Event call해준다.GameMode의 EndGame 함수는 PlayerController를 찾아서 PlayerController의 EndGame 이벤트를 call한다.PlayerController에서는 Widget을 만들어주고 Widget의 EndGame 함수를 call해준다. 이후 add to viewport 해준..