인기 게시글
-
[헬테이커 모작 Day1] 게임 플레이 해보기, 리소스 추출하기
2월에는 Windows API만으로 게임 모작 포트폴리오를 제작해보려고 합니다. 제가 고른 게임은 'HELLTAKER'로 유니티로 제작된 2D 퍼즐 게임입니다. 게임 선정 이유 우선 Windows API만으로는 3D 게임을 만들 수 없고 Shader 또한 사용할 수 없기에 최대한 그래픽이 단순한 2D 게임 위주로 선정했습니다. 그중에서도 유니티로 제작된 게임 위주로 골랐는데, Asset Studio와 같은 프로그램을 이용하여 리소스를 쉽게 구할 수 있기 때문입니다. 그렇게 고심 끝에 헬테이커로 결정했습니다. 다른 많은 게임들 중에서도 헬테이커가 선정된 이유는 적당한 볼륨, 깔끔한 스테이지 구성과 난이도 등 여러 가지가 있었지만 무엇보다 게임 일러스트가 제 취향이라는 점이 가장 결정적이었습니다. 게임 플레..
-
[UE5] 버추얼 쉐도우 맵(VSM)
Virtual Shadow Map 고해상도 그림자 구현을 위해 UE5에 추가된 기능입니다. Virtual Shadow Map은 16k x 16k 크기의 초고해상도 쉐도우 맵입니다. 이를 효율적으로 관리하기 위해 VSM은 쉐도우 맵을 128 x 128 페이지(타일)로 분할하며, 각 페이지는 깊이 버퍼 분석을 기반으로 화면 상의 픽셀에 그림자를 그리는 데 필요한 만큼만 할당 및 렌더링됩니다. 캐시를 활용하여 변경된 페이지만 업데이트를 합니다. 오브젝트나 카메라 움직임으로 빛이 크게 바뀌면 캐쉬 무효화가 발생해 페이지를 다시 그립니다. VSM이 활성화되면 기존 섀도 메서드는 어떻게 되나요? VSM이 대체하는 쉐도우 맵 2D 디스턴스 필드 및 섀도 인수 ‘섀도 맵'을 포함한 스테이셔너리 사전 연산된 섀도 프리섀..
-
[UE5 - Multiplayer TPS] 언리얼 멀티 플레이어 플러그인 만들기(2) : Online Subsystem Steam을 사용하여 세션 생성하기
앞선 포스팅에서 LAN 연결을 구현할 때, 직접 IP주소를 입력하여 다른 PC의 게임에 접속했다. 하지만 실제 온라인 환경에서 게임에 접속할 때는 다른 유저의 IP주소를 모른 채로 게임에 접속한다. IP 주소를 모르는 채로 다른 컴퓨터와 네트워크 연결이 되려면 중간 단계가 필요하다. 우리가 게임 제작할 때 사용할 수 있는 중간 단계는 다음과 같이 2가지가 있다. 유저들의 IP를 모아 관리하는 고유의 dedicate 서버로 연결 스팀이나 xbox 라이브와 같은 온라인 플랫폼 서비스에서 제공하는 매치 메이킹 기능을 통해 연결 - 매치메이킹: 플레이어와 세션을 매치해 주는 프로세스 (세션 생성, 세션 검색, 세션 참여, 세션 소멸 등등) - 세션 : 세션은 기본적으로 서버에서 실행중인 게임의 인스턴스 우선, ..
최신 게시글
-
[백준 1926] 그림(C++)
https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 문제 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로로 연결된 것은 연결이 된 것이고 대각선으로 연결이 된 것은 떨어진 그림이다. 그림의 넓이란 그림에 포함된 1의 개수이다. 입력 첫째 줄에 도화지의 세로 크기 n(1 ≤ n ≤ 500)과 가로 크기 m(1 ..
-
[백준 1931] 회의실 배정(C++)
https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 10..
-
[백준 1003] 피보나치 함수 (C++)
https://www.acmicpc.net/problem/1003 문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다. fibonacci(2)는 fibonacci(1) (두 번째 호출)과 fibonacci(0)을 호출한다. 두 번째 호출한 fibonacc..
-
[Hacker Rank] Organizing Containers of Balls (C++)
https://www.hackerrank.com/challenges/organizing-containers-of-balls/problem?isFullScreen=true 문제 설명 David has several containers, each with a number of balls in it. He has just enough containers to sort each type of ball he has into its own container. David wants to sort the balls using his sort method. David wants to perform some number of swap operations such that: Each container contains onl..
-
[프로그래머스]level.3 - 카드 짝 맞추기(C++)
https://school.programmers.co.kr/learn/courses/30/lessons/72415 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 게임 개발자인 베로니는 개발 연습을 위해 다음과 같은 간단한 카드 짝맞추기 보드 게임을 개발해 보려고 합니다. 게임이 시작되면 화면에는 카드 16장이 뒷면을 위로하여 4 x 4 크기의 격자 형태로 표시되어 있습니다. 각 카드의 앞면에는 카카오프렌즈 캐릭터 그림이 그려져 있으며, 8가지의 캐릭터 그림이 그려진 카드가 각기 2장씩 화면에 무작위로 배치되어 있습니다. 유저가 카드를 2장 선택..
-
[프로그래머스]level.3 - 부대복귀 (C++)
https://school.programmers.co.kr/learn/courses/30/lessons/132266 문제 설명 강철부대의 각 부대원이 여러 지역에 뿔뿔이 흩어져 특수 임무를 수행 중입니다. 지도에서 강철부대가 위치한 지역을 포함한 각 지역은 유일한 번호로 구분되며, 두 지역 간의 길을 통과하는 데 걸리는 시간은 모두 1로 동일합니다. 임무를 수행한 각 부대원은 지도 정보를 이용하여 최단시간에 부대로 복귀하고자 합니다. 다만 적군의 방해로 인해, 임무의 시작 때와 다르게 되돌아오는 경로가 없어져 복귀가 불가능한 부대원도 있을 수 있습니다. 강철부대가 위치한 지역을 포함한 총지역의 수 n, 두 지역을 왕복할 수 있는 길 정보를 담은 2차원 정수 배열 roads, 각 부대원이 위치한 서로 다른..
-
[프로그래머스]level.2 - 가장 큰 정사각형 찾기(C++)
https://school.programmers.co.kr/learn/courses/30/lessons/12905 문제 설명 1와 0로 채워진 표(board)가 있습니다. 표 1칸은 1 x 1 의 정사각형으로 이루어져 있습니다. 표에서 1로 이루어진 가장 큰 정사각형을 찾아 넓이를 return 하는 solution 함수를 완성해 주세요. (단, 정사각형이란 축에 평행한 정사각형을 말합니다.) 예를 들어 가 있다면 가장 큰 정사각형은 가 되며 넓이는 9가 되므로 9를 반환해 주면 됩니다. 내 풀이 1 숫자 1일때마다 최대 크기를 검색한다. #include #include using namespace std; vector Board; int CheckSize(int row, int col) { int siz..