Banditors(밴디터스) 소개
Banditors플랫폼: PC장르: Co-op 로그라이트개발 일자: 2024년 2월 ~ 개발 중개발 엔진: 언리얼 5.2개발 언어: C++ Banditors는 2025년 출시를 목표로 1인 개발 중인 상용 게임입니다.동료들과 던전을 탐험하며 무수히 쏟아지는 적들을 해치워 나가는 게임입니다. 게임에 대한 더 자세한 정보는 추후 공개할 예정입니다많은 응원 부탁드립니다 🙇
Banditors플랫폼: PC장르: Co-op 로그라이트개발 일자: 2024년 2월 ~ 개발 중개발 엔진: 언리얼 5.2개발 언어: C++ Banditors는 2025년 출시를 목표로 1인 개발 중인 상용 게임입니다.동료들과 던전을 탐험하며 무수히 쏟아지는 적들을 해치워 나가는 게임입니다. 게임에 대한 더 자세한 정보는 추후 공개할 예정입니다많은 응원 부탁드립니다 🙇
프로젝트 소개글은 여기서 확인하실 수 있습니다. 본 포스트에서는 로벤헬 프로젝트를 진행하며 제가 기술적으로 고민하고, 해결했던 흔적을 남겨두려고 합니다. 개발 과정에서 어떤 어려움이 있었고, 그 어려움을 기술적으로 어떻게 극복하려 시도했는지에 대한 분석이 담겨 있습니다. 아키텍처 설계의 배경 로벤헬은 "Server authoritative한 충돌, 이동 연산을 지원하면서도, 한 장소에 몇 천 명이 동시에 위치할 수 있는 MMO"라는, 엄청나게 거창한 목표를 두고 개발되었습니다. 사실 맨 처음에는 서버는 그냥 중개자 역할만 하고, 클라이언트가 위치를 발송하면 서버가 그걸 다른 클라이언트에게 전달하는 정도를 목표로 잡았지만, 막상 개발을 시작하니 뭔가 욕심이 나기 시작했고, "왜 물리 연산이 FPS만큼 리얼..
오늘 제가 속해있는 게임 제작 동아리 출신 게임 개발자 선배님들과 이야기를 나눌 수 있는 좋은 기회가 있었습니다. 여기서는 정식 인터뷰와 별개로 제가 개인적으로 대화를 나눴던 내용들 중 기억에 남는 내용들을 남겨 놓으려 합니다. 1. 현업에서 게임 개발 과정의 흐름 : 제가 알고 있는 내용과 크게 다르진 않았지만, 사운드 추가 작업이 생각보다 개발의 상당히 뒷쪽 시점에서 이루어진다는 것에 놀랐습니다. 개인적으로 혼자 게임을 개발할 때는 플레이어 몰입감에 소리가 중요한 역할을 한다고 생각해서 이걸 고려하며 개발하기 위해 개발 중반 정도에 사운드 작업을 같이 하는데, 회사는 마감일을 지키는 게 아주 중요하다 보니 크리티컬한 기능을 먼저 개발하는 게 중요하고, 또 사운드를 전담해서 제작하는 팀이 따로 있기 때..
Rovenhell (로벤헬) 개발 기간: 23년 8월 ~ 11월개발 목적: 취미 겸 기술 역량 향상 개발 환경: 클라이언트 및 게임 로직 서버: 언리얼 엔진 5 (커스텀 넷코드 제작, 언리얼 Replication 사용 X)미들웨어: Visual C++, IOCP개발 언어: C++기술 분석:https://gamesmith.tistory.com/272 [Rovenhell] 기술 분석프로젝트 소개글은 여기서 확인하실 수 있습니다. 본 포스트에서는 로벤헬 프로젝트를 진행하며 제가 기술적으로 고민하고, 해결했던 흔적을 남겨두려고 합니다. 개발 과정에서 어떤 어려움이gamesmith.tistory.com소스 코드: https://github.com/hagukin/Rovenhell_UE GitHub - hagukin..
짧다면 짧고 길다면 긴 군대에서의 1년 6개월이 지나갔다. 지난 1년 6개월간은 정말 다이나믹했다. 분명 육군 전체에서도 꽤 유니크한 편이라고 생각한다. 군대에서 있었던 에피소드들을 털어놓는 것도 재미는 있겠지만, 그런 건 친구들과의 안줏거리 정도로 만족한다. 이번 포스트에서는 지난 1년 6개월간 내가 무엇을 배웠고, 앞으로 어떻게 해 나갈 것인지를 정리해보고자 한다. 1년 반, 무얼 얻었나? 군생활을 하면서 우스갯소리로 "군대에서 얻을 건 없다"는 말을 종종 듣곤 했지만, 돌이켜보면 얻은 게 없지는 않다. 군대는 체력적으로 더 강해질 수 있는 여건을 마련해주었다. 입대 전에도 맨몸운동 정도는 꾸준히 했지만, 입대 후 규칙적인 생활 패턴 속에서 생활하며 더 체계적으로 운동을 할 수 있게 되었다. 스스로가..
이번 시간에는 카메라를 이동시킬 수 있는 기능을 구현해보자. 현재 우리의 프레임워크에서는 카메라의 좌표와 방향이 고정되어있는데, 이를 보다 유동적으로 동작할 수 있도록 수정해보자. (사실 이 내용은 예전에 내가 블로그에서 다룬 적이 있는 내용이기도 하다. 참조) 스크린에 나타나는 물체의 위치는 물체와 카메라의 상대적 위치관계에 의해 결정되는 것을 알 수 있다. (2D 카메라의 경우부터 생각해보면 쉽다. 카메라가 위로 움직이면 물체는 아래로 움직인다) 때문에 카메라의 실제 좌표를 파이프라인 상에서 자유롭게 움직이게 하는 대신, 카메라를 고정시켜 두고 물체들이 카메라의 움직임에 맞추어 상대적으로 이동하게 만드는 방법을 사용할 수 있다. (이렇게 하는 가장 큰 이유는 파이프라인에서 카메라의 좌표는 0,0,0이..
시작에 앞서 지금까지 구축한 파이프라인을 한 번 살펴보자. 정점이 처리되며 거쳐가는 공간은 위와 같다. homogeneous coordinates와 ndc space로의 변환은 지난 글에서 다루었던 내용이다. 파이프라인의 세부적인 프로세스들을 살펴보면 다음과 같다. 정점을 나눠 vertex shader를 거치고 triangle assembly로 삼각형들로 만든 후, 카메라 방향에 의한 culling을 처리하고, geometry shader를 거치고 나서 persepctive division 및 screen transform을 처리하고, triangle rasterization, z-buffering을 처리한 후 pixel shader를 처리하고 최종적으로 스크린에 렌더링한다. 여기서 잠시 한 가지 문제를..
Projection matrix(투영 행렬)은 아주 중요하고 아주 널리 다루어지지만 완벽하게 이해하기 까다로운 내용이다. 본 학습에서는 이를 최대한 완벽하게 이해할 수 있도록 다뤄보겠다. 본 학습에서 구현하고자 하는 기능은 화면 ratio 조절, fov 조절이다. 그리고 이 기능들을 추가하기 위한 더 나은 frustum을 사용한 projection 방법을 적용할 것이다. (Frustum이 뭔지는 잠시 뒤에서 다루겠다) 그리고 이 Frustum을 사용한 projection 방법은 정점에 Projection matrix를 곱하는 과정을 통해 이루어지는데, 우리는 이 과정에 필요한 이 projection matrix를 구하는 과정을 살펴볼 것이다. 우리의 프레임워크에서는 현재로써는 focal plane(Fru..