전체 글(38)
-
게임 개발 1년차, 인생에서 손꼽히는 성취감을 느꼈다
게임 개발이나 프로그래밍에 대한 지식 없이 게임 개발을 시작한지 1년이 다 되어 가는데, 굉장히 어렵고 힘든 과정이지만 의욕이 샘솟는 순간은 항상 존재한다. 위 사진은 원작의 퀄리티에 비하면 아직 턱없이 모자라지만완전 초기 버전인 위 사진에 비하면 꽤나 많이 발전된 모습이다!! 이 모델의 리소스 이미지를 해석하기 위해 열심히 끙끙대면서 hlsl 쉐이더도 이곳 저곳에서 찾아보고 블렌더로 원작과 비슷하게 만든 모델러들의 작업물도 살펴보면서 부단히 노력했다. 그렇게 시도하면서 LUT 이미지를 활용하는 쉐이더의 패스를 적용했을 때 해당 부분의 메쉬가 불이 켜진 것처럼 맘에 들게 렌더링되는 모습을 보자 정말 엄청난 쾌감이 느껴졌다. 좋아하는 게임이기도 하고, 개인적으로 너무 만족스러운 모습으로 그려져서 게임 개발..
2026.04.09 -
모델 로드, 애니메이션 재생 과정에서 생기는 버그가 너무 재밌다
현재 내가 모작하고 있는 게임인 Who's at the door의 등장 캐릭터 모델이다. 제일 처음 fbx 파일을 로드했을 때 저렇게 떴었다.하지만 fbx 파일을 매번 로드하는 것은 비용과 시간이 상당히 많이 필요하고, 모델 로드에 사용 중인 assimp 라이브러리가 메모리 누수를 유발한다고 공식적으로 알려진 사실이기 때문에 라이브 프로젝트에서는 assimp를 활용하지 않고 fbx 파일에서 필요한 정보만 추출해서 binary로 내보낸 파일을 로드해야 했다. 처음에는 메쉬와 머터리얼의 정보만 추출해서 로드했었는데, bone 정보를 포함해서 추출하고 로드하면서부터 이상한 현상이 발생하기 시작했다. 모델이 무너져버렸다.마치 녹아내린 듯한 모습, 왜 이렇게 되는지 모르겠어서 골치가 아프면서도 이 모습 자체가 ..
2026.01.15 -
게임 개발을 공부한지 6개월 첫 2D, 3D 게임 모작
게임 개발을 공부한지 어느덧 6개월 정도 되었다. 3개월차까지는 기록을 나름대로 이어나갔지만 당장 눈앞에 완성해야할 작업이 많았고 공부한 내용을 나만의 말로 다시 정리하는게 쉽지 않은 일이었기에, 기록이 멈추게 되었다.https://youtu.be/rChrR11f7JQ?si=kKc48kk27pExoP1t 게임 개발을 처음 공부하기 시작한지 3개월이 지났을 때, Win API를 활용해 2D 게임을 개인 프로젝트로 모작해보게 되었다. 코딩 경험이 많지 않기 때문에 굉장히 지저분한 구조이지만 어떻게든 동작하는 코드를 작성해가며 완성했다. 지금까지 배운 c++ 문법을 사용해서 게임이 전반적으로 어떤 구조로 돌아가는지를 파악해 볼 수 있었던 좋은 경험이었다. 또한 수포자 문과생이었던 내가 '벡터'라는 중요한 개념..
2025.11.30 -
<Vector> 배우다 살면서 처음으로 공부로 쾌감 느낀 날
어제 자주 사용하는 STL 컨테이너의 한 종류인 vector를 처음 배웠다. STL 자체가 자료구조에 대한 이해도 필요하고 반복자라는 처음 보는 개념과 문법 등이 등장하는데, 거기에 반복문이나 2차원 배열, 포인터, 템플릿 등 기존 문법들까지 더해진다고 생각하니 너무 어렵게 느껴지고 막막해서 가슴이 답답했다. 한숨이 푹푹 나왔다. 그렇게 어제 vector에 대한 핵심 개념 정도만 배운 상태로 오늘 활용 과제를 풀어보는데 첫 시작부터 어떻게 써야할지 전혀 감이 오지 않았다. 일단 vector의 가장 기본적인 용도는 가변적인 배열이라고 배워서 기존의 배열들을 대체해보는 식으로 접근해보았는데, 내가 풀어야 할 과제는 구조체 배열을 다뤄야했다. 당장 vector를 사용해 입력 출력 등도 버거웠는데 구조체에는 ..
2025.07.09 -
[-1 피하기] 과제 리팩토링하다가 콘솔 창 게임 만들었다!
1. 배열의 요소 iArray [0]을 옮기자 배열 과제로 cin 입력을 통해 0의 위치를 옮기는 코드를 작성했었는데, 대각선 방향으로 움직일 수 있도록 리팩토링을 하다가 갑자기 머릿속에 재미있는 생각이 떠올랐다. 처음에는 위에서 -1이 비처럼 내려오고 입력을 통해 슉슉 피하는 게임을 구상했었는데, cin은 블로킹 함수인지라 코드의 흐름을 멈추기 때문에 위에서 내려오는 -1 역시 멈출 것이었다. 이건 내가 의도한 바와는 달랐다.내가 구현하고 싶었던 게임은 사용자의 입력을 기다리는 중에도 -1은 계속 내려오는 게임이었다.(1) cin 대신 _kbhit, _getch?사용자의 입력을 기다리는 동안 코드의 흐름이 멈추지 않고 계속 진행되게 하려면 입력을 하자마자 바로 인식해서 0이 이동하도록 만들고 그 동안에..
2025.06.15 -
강의 듣다 아이템 체크 로직 들었는데 졸음이 깼다
게임 개발을 본격적으로 공부하기 시작한지 2주차, 아직 기본적인 c++ 지식과 문법을 익히고 있는 중인데 토요일 낮, 점심을 먹고 인프런에서 홍정모 교수님의 비트 연산자 강의를 듣다가 식곤증이 와서 비몽사몽하고있었다. 비트 연산을 언제 쓰게 될지 감도 잘 안 오고 0이랑 1을 계속 보고 있자니 지루했는데 배불러서 졸음까지 쏟아졌다. 그런데 강의에서 갑자기 게임 아이템 체크를 할 수 있다는 말이 들리자 갑자기 정신이 조금 돌아오는 느낌이었고, 이내 비트 플래그를 활용해 각각의 비트로 특정 아이템의 획득 상태를 체크할 수 있다는 내용까지 듣자 진짜 모든 잠이 확 깨면서 곧바로 집중할 수 있었다. 내가 생각해도 정말 신기한 경험이었는데, 아직 전혀 쓸모가 없는 것처럼 느껴졌던 비트 연산자에 관한 내용들이 게임..
2025.05.31