목록전체 글 (230)
득이공간

해당 게시물은 이득우 교수님의 '네트웍 멀티플레이 프레임웍의 이해' 강의를 수강하며학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 5장. PvP 게임 제작5-1. 캐릭터 아이템과 스탯의 구현5-2. PvP 게임의 완성📌 5-1. 캐릭터 아이템과 스탯의 구현 1. 프로퍼티 리플리케이션에 조건을 설정하는 방법의 학습2. 네트웍 대역폭을 최적화할 수 있는 다양한 방법의 학습3. 넷시리얼라이저 기능을 사용해 구조체 네트웍 데이터를 효과적으로 패킹하는 방법의 학습 이번 강의에서 학습할 내용프로퍼티 리플리케이션: 최적화네트웍으로 전송할 데이터의 구분플레이어의 세부적인 스탯 정보를 모든 클라이언트에 공유할 필요가 있는가?스탯 정보는 소유자에게만 공유하고 다른 클라이언트(Simulated Proxy)는 체력..

해당 게시물은 이득우 교수님의 '네트웍 멀티플레이 프레임웍의 이해' 강의를 수강하며학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 4장. 움직임 리플리케이션4-1. 움직임 리플리케이션4-2. 물리 움직임 리플리케이션4-3. 캐릭터 무브먼트의 확장📌 4-1. 움직임 리플리케이션 1. 네트웍 멀티플레이에서 안정적으로 캐릭터 움직임을 동기화하는 플로우의 이해2. 움직임 리플리케이션에 관련된 언리얼 소스코드 분석3. 움직임 리플리케이션을 디버깅하는 방법의 학습 이번 강의에서 학습할 내용움직임 리플리케이션: 캐릭터캐릭터 움직임의 리플리케이션 플로우클라이언트의 입력 정보를 서버로 보내고 서버에서 확인 후 수정을 거침Autonomous Proxy 클라이언트의 진행[ReplicateMoveToServer]클..

해당 게시물은 이득우 교수님의 '네트웍 멀티플레이 프레임웍의 이해' 강의를 수강하며학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 3장. RPC의 이해와 활용3-1. RPC 기초3-2. 캐릭터 공격 구현3-3. 캐릭터 공격 구현 개선📌 3-1. RPC 기초 1. RPC 함수를 선언하는 방법과 기본 사용 방법의 이해2. RPC 종류에 따른 동작 방식의 이해3. RPC 사용시 주의할 점의 확인4. 프로퍼티 리플리케이션과 NetMulticast RPC의 차이점 이해 이번 강의에서 학습할 내용RPC: 검증RPC(Remote Procedure Call)이란?원격 프로시저(함수) 호출의 약자원격 컴퓨터에 있는 함수를 호출할 수 있도록 만든 통신 프로토콜네트웍 멀티플레이에서 서버와 클라이언트간에 빠르게 행..

해당 게시물은 이득우 교수님의 '네트웍 멀티플레이 프레임웍의 이해' 강의를 수강하며학습한 내용을 개인적으로 정리한 글입니다. 📌 목차 - 2장. 액터 리플리케이션2-1. 액터 리플리케이션 기초2-2. 액터 리플리케이션 빈도와 연관성2-3. 액터 리플리케이션 로우레벨 플로우📌 2-1. 액터 리플리케이션 기초 1. 액터 리플리케이션의 개요에 대한 학습2. C++을 활용한 프로퍼티 리플리케이션의 구현3. C++와 블루프린트간의 프로퍼티 리플리케이션 방식의 차이 비교 이번 강의에서 학습할 내용액터 리플리케이션프로퍼티 리플리케이션액터 리플리케이션특정 플레이어에 속한 액터의 정보를 네트웍 내 다른 플레이어에게 복제하는 작업클라이언트-서버 모델에서는 대부분 서버에서 클라이언트로 전달한다.리플리케이션의 방법에는 크..

문제풀이 다익스트라 알고리즘을 이용해서 푸는 문제입니다.(1,1) -> (n,m)으로 이동하되, 인접 노드 탐색 시 priority_queue(최소힙) 자료구조를 이용해서큐에 들어오는 노드 중 벽을 부수는 비용이 가장 적은 노드부터 탐색하도록 했습니다.그리고 인접 노드의 최소비용 배열의 값을 갱신해주도록 해서 풀었습니다.코드#include #include #include #include using namespace std;typedef pair p;typedef pair pp;const int Inf = INT_MAX;const int DX[4] = { -1, 0, 1, 0 };const int DY[4] = { 0, -1, 0, 1 };int N, M;bool IsWall[100][100];int Co..

문제풀이 백트래킹을 이용해서 푸는 문제입니다.먼저 각 학생의 친구 수를 저장하는 배열과모든 학생에 대해서 친구인지 아닌지를 저장하는 2차원 배열을 생성했습니다.그리고 백트래킹을 이용해서 1부터 N번의 학생까지 K-1 이상의 친구를 보유한 학생을 선택해서K명을 선택했을 때 모두 서로 친구라는 조건이 만족하면 출력 & 종료하도록 했습니다. 코드#include using namespace std;int N, K, F;int FN[901];bool Friend[901][901];int Sel[62];bool Check(){ for (int i = 0; i N) { return; } if (FN[Num] >= K - 1) { Sel[Idx] = Num; DFS(Idx + 1, Num + 1); } DFS(..

문제풀이 다익스트라 알고리즘을 이용해서 푸는 문제입니다.각각의 노드 사이의 이동 시간을 구해서 저장해주고 나면나머지는 일반적인 다익스트라 유형의 문제의 풀이와 동일합니다.각 노드 사이의 이동 시간을 구할 때 시작 노드를 출발 지점으로 놓으면 도착 지점까지 걸어가는 시간으로 구해야 합니다.시작 노드를 제외한 나머지 노드에서 출발 할때는 걸어가는 시간과 대포를 이용한 시간 중 작은 값으로 저장해주면 됩니다.코드#include #include #include #include #include using namespace std;const double Inf = INT_MAX;typedef pair p;typedef pair n;int S, E, N;p Point[102];list Neighbor[102];dou..

15683번: 감시스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감www.acmicpc.net 문제풀이 구현할 것이 많은 시뮬레이션 & 브루트포스 & 백트래킹 유형의 문제입니다. 카메라의 개수는 많지 않기 때문에, 각 카메라의 방향을 완전탐색(브루트포스 & 백트래킹)으로모든 각도에서 지정해보고 그 중 사각지대의 최소값을 구하면 됩니다. 사각지대를 구하기 전에 각 카메라의 방향에 따른 사무실의 상태를 구할 때 많은 구현이 필요합니다.각 카메라가 사무실을 스캔할 때, 카메라의 종류에 따라 먼저 분류하고지정된 스캔 방향, 횟수에 따라서 사무실의 상태를 구..

2470번: 두 용액첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00www.acmicpc.net 문제풀이 적절한 두 용액을 선택하는 과정에서 완전 탐색을 이용하면 $100000 * 100000$번의 연산이 수행되므로 시간초과가 발생합니다.따라서 한 용액을 먼저 선택한 후 다른 용액을 이분 탐색을 이용해서 선택하도록 하면 $100000 * 16.6 (={log_{2}}{100000})$번의 연산만으로 풀 수 있습니다.Start, End 인덱스를 지정할 때는 선택한 두 용액의 합과 0의 크기를 비교해서 조절해주면 됩니다.코드#in..

16234번: 인구 이동N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모www.acmicpc.net 문제풀이 너비 우선 탐색을 이용해서 푸는 시뮬레이션 유형의 문제입니다.미방문 노드에서 BFS를 시작해서 연합 영역을 큐에 저장해주고연합의 크기가 2이상일 때 인구 이동을 시켜주었습니다.인구 이동이 더이상 이뤄지지 않을 때까지 해당 로직을 반복해서 시뮬레이션하도록 구현했습니다.코드#include #include #include using namespace std;typedef pair p;const int..