현재 버전

오픈소스 자랑 블렌더 UPBGE

오픈소스 활동에 대한 소소한 자랑글


전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할수록, 제가 접해본 분야를 조금 오래했다고 고수인 양 생색을 내는 게 참 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있을 것 같습니다. 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지부진해지면서 한동안 슬럼프를 겪었습니다. 3D 관련한 엔진이나 애드온의 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

다행히 누가 이를 대체할 애드온을 만들어서 올려 두었더군요. 하지만 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR로 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었고, 스택오버플로우의 도움을 받아 해결해서 PR도 넣었습니다.

이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 인수 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서나 번역부터 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.


덧말: 요즘 편하게 쓰고 있는 퍼디(Ferdi)라는 프로그램이 있는데 한글화가 안되어서 불편하더군요. 혹시 도전해보실 분이 있을까요? ㅎㅎ


수정 이력

2020-08-06 17:38:41 에 아래 내용에서 변경 됨 #12

전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할수록, 제가 접해본 분야를 조금 오래했다고 고수인 양 생색을 내는 게 참 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있을 것 같습니다. 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지부진해지면서 한동안 슬럼프를 겪었습니다. 3D 관련한 이런 저런 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

다행히 누가 이를 대체할 애드온을 만들어서 올려 두었더군요. 하지만 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR로 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었고, 스택오버플로우의 도움을 받아 해결해서 PR도 넣었습니다.

이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 인수 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서나 번역부터 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.


덧말: 요즘 편하게 쓰고 있는 퍼디(Ferdi)라는 프로그램이 있는데 한글화가 안되어서 불편하더군요. 혹시 도전해보실 분이 있을까요? ㅎㅎ

2020-08-06 10:21:16 에 아래 내용에서 변경 됨 #11

전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할수록, 제가 접해본 분야를 조금 오래했다고 고수인 양 생색을 내는 게 참 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있을 것 같습니다. 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지부진해지면서 한동안 슬럼프를 겪었습니다. 3D 관련한 이런 저런 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

누가 친절하게 이를 대체할 애드온도 만들어서 올려 두었더군요. 근데 보니까 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR로 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었고, 스택오버플로우의 도움을 받아 해결해서 PR도 넣었습니다.

이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 인수 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서나 번역부터 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.


덧말: 요즘 편하게 쓰고 있는 퍼디(Ferdi)라는 프로그램이 있는데 한글화가 안되어서 불편하더군요. 혹시 도전해보실 분이 있을까요? ㅎㅎ

2020-08-06 10:20:00 에 아래 내용에서 변경 됨 #10

전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할수록, 제가 접해본 분야를 조금 오래했다고 고수인 양 생색을 내는 게 참 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있고, 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지부진해지면서 한동안 슬럼프를 겪었습니다. 3D 관련한 이런 저런 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

누가 친절하게 이를 대체할 애드온도 만들어서 올려 두었더군요. 근데 보니까 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR로 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었고, 스택오버플로우의 도움을 받아 해결해서 PR도 넣었습니다.

이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 인수 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서나 번역부터 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.


덧말: 요즘 편하게 쓰고 있는 퍼디(Ferdi)라는 프로그램이 있는데 한글화가 안되어서 불편하더군요. 혹시 도전해보실 분이 있을까요? ㅎㅎ

2020-08-06 09:45:45 에 아래 내용에서 변경 됨 #9

전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할수록, 제가 접해본 분야를 조금 오래했다고 고수인양 생색을 내는 게 참 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있고, 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지부진해지면서 한동안 슬럼프를 겪었습니다. 3D 관련한 이런 저런 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

누가 친절하게 이를 대체할 애드온도 만들어서 올려 두었더군요. 근데 보니까 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR로 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었고, 스택오버플로우의 도움을 받아 해결해서 PR도 넣었습니다.

이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 인수 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서나 번역부터 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.


덧말: 요즘 편하게 쓰고 있는 퍼디(Ferdi)라는 프로그램이 있는데 한글화가 안되어서 불편하더군요. 혹시 도전해보실 분이 있을까요? ㅎㅎ

2020-08-06 09:38:46 에 아래 내용에서 변경 됨 #8

전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할수록, 제가 접해본 분야를 조금 오래했다고 고수인양 생색을 내는 게 참 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있고, 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지부진해지면서 한동안 슬럼프를 겪었습니다. 3D 관련한 이런 저런 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

누가 친절하게 이를 대체할 애드온도 만들어서 올려 두었더군요. 근데 보니까 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR을 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었고, 스택오버플로우의 도움을 받아 해결해서 PR도 넣었습니다.

이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 인수 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서나 번역부터 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.


덧말: 요즘 편하게 쓰고 있는 퍼디(Ferdi)라는 프로그램이 있는데 한글화가 안되어서 불편하더군요. 혹시 도전해보실 분이 있을까요? ㅎㅎ

2020-08-06 09:31:38 에 아래 내용에서 변경 됨 #7

전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할수록, 제가 접해본 분야를 조금 오래했다고 고수인양 생색을 내는 게 참 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있고, 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지부진해지면서 한동안 슬럼프를 겪었습니다. 3D 관련한 이런 저런 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

누가 친절하게 이를 대체할 애드온도 만들어서 올려 두었더군요. 근데 보니까 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR을 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었고, 스택오버플로우의 도움을 받아 해결해서 PR도 넣었습니다.

이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 인수 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서나 번역부터 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.

2020-08-06 09:30:14 에 아래 내용에서 변경 됨 #6

전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할수록, 제가 접해본 분야를 조금 오래했다고 고수인양 생색을 내는 게 참 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있고, 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지부진해지면서 한동안 슬럼프를 겪었습니다. 3D 관련한 이런 저런 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

누가 친절하게 이를 대체할 애드온도 만들어서 올려 두었더군요. 근데 보니까 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR을 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었고, 스택오버플로우의 도움을 받아 해결해서 PR도 넣었습니다.

이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 인수 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서라도 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.

2020-08-06 09:25:02 에 아래 내용에서 변경 됨 #5

전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할수록, 제가 접해본 분야를 조금 오래했다고 고수인양 생색을 내는 게 참 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있고, 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지부진해지면서 한동안 슬럼프를 겪었습니다. 3D 관련한 이런 저런 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

누가 친절하게 이를 대체할 애드온도 만들어서 올려 두었더군요. 근데 보니까 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR을 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었고, 스택오버플로우의 도움을 받아 해결해서 PR도 넣었습니다.

이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 덜컥 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서라도 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.

2020-08-06 09:23:38 에 아래 내용에서 변경 됨 #4

전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할수록, 제가 접해본 분야를 조금 오래했다고 고수인양 생색을 내는 게 참 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있고, 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지부진해지면서 한동안 슬럼프를 겪었습니다. 3D 관련한 이런 저런 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

누가 친절하게 이를 대체할 애드온도 만들어서 올려 두었더군요. 근데 보니까 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR을 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었습니다. 스택오버플로우의 도움을 받아 해결해서 PR을 넣었습니다. 이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 덜컥 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서라도 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.

2020-08-06 09:22:49 에 아래 내용에서 변경 됨 #3

전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할수록, 제가 접해본 분야를 조금 오래했다고 고수인양 생색을 내는 게 참 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있고, 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지 부진해지면서 한 동안 슬럼프를 겪었습니다. 3D 관련한 이런 저런 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

누가 친절하게 이를 대체할 애드온도 만들어서 올려 두었더군요. 근데 보니까 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR을 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었습니다. 스택오버플로우의 도움을 받아 해결해서 PR을 넣었습니다. 이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 덜컥 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서라도 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.

2020-08-06 09:22:16 에 아래 내용에서 변경 됨 #2

전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할수록, 제가 접해본 분야를 조금 오래했다고 고수인양 생색을 내는 게 참 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있고, 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지 부진해지면서 한 동안 슬럼프를 겪었습니다. 3D 관련한 이런 저런 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

누가 친절하게 이를 대체할 애드온도 만들어서 올려 두었더군요. 근데 보니까 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR을 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었습니다. 스택오버플로우의 도움을 받아 해결해서 PR을 넣었습니다. 이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 덜컥 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서라도 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.

2020-08-06 09:21:48 에 아래 내용에서 변경 됨 #1

전 개발 가지고 자랑하는 걸 좋아하지 않습니다.

솔직히 말해서 저도 한 때는 "이 정도면 나도 할 만큼 하는 것 아닌가"하고 착각할 때가 있었습니다. 하지만 점점 경험이 쌓이면서 개발 쪽에 제가 경험해보지 못한 세계가 얼마나 많이 있고, 또 각각의 분야를 파고 들어가면 얼마나 깊이 있는 논의가 오가는지 이해할 수록 제가 접해본 분야 조금 오래했다고 고수인양 생색을 내는 게 낯 뜨거운 일이란 걸 깨닫게 되더군요.

아마 오키에도 어떤 분야에선 저보다 잘하는 분들이 많을테고, 반대로 또 다른 분야에선 제가 좀 더 잘 알 수도 있고, 그렇게 자신의 분야에서 연관된 지식의 넓이와 깊이를 더해가면서 다른 분들과는 겹치는 영역에 대해 협업도 하고 토론도 하고 그러는 게 맞는 방향인 것 같습니다.

그래도 오늘은 요즘 오픈소스 활동을 하면서 경험한 내용에대해 소소하게 자랑(?)을 해보고 싶은 마음이 들었습니다. 거창한 일을 한 건 아니지만 그래도 오픈소스 생태계에 기여를 하고 있다는 생각이 드는 기분 좋은 경험이었기 때문입니다.

원래 취미로 게임 관련 오픈소스 프로젝트를 하고 있었는데 이런 저런 이유로 지지 부진해지면서 한 동안 슬럼프를 겪었습니다. 3D 관련한 이런 저런 버그 때문에 블렌더와 게임 엔진을 오가며 어셋 작업을 하는게 필요 이상으로 피곤하게 느껴지더군요.

그러던 중 블렌더에서 퇴출된 BGE 엔진을 포크한 UPBGE라는 프로젝트에 생각이 미첬습니다. 엔진 자체 기능만 놓고 본다면 기존에 쓰던 엔진보다도 훨씬 부족하지만 적어도 어셋 관련 문제는 적지 않을까 하는 생각이었습니다. 블렌더 자체를 엔진으로 쓰니 따로 어셋을 내보낼 필요도 없고 다르게 보이지도 않을테니까요.

어차피 머신 러닝도 배워야 하기 때문에 이 기회에 파이썬도 알아두면 좋겠다 싶어서 덜컥 기존 프로젝트를 잠정 중단하고 UPBGE 프로젝트를 시작했습니다.

그런데 너무 성능이 안나오더군요. 구글링을 하다보니 블렌더의 기존 노멀맵 노드는 게임 같은 실시간 처리에 적합하지 않다는 사실을 알게 되었습니다.

누가 친절하게 이를 대체할 애드온도 만들어서 올려 두었더군요. 근데 보니까 너무 오래된 버전이라 호환이 되지 않았습니다.

혹시 몰라서 깃헙에 가서 소스를 보니 파이썬을 잘 몰라도 짐작할 수 있는 간단한 문제였습니다. 그래서 PR을 해결하고 게임 엔진 디스코드 채널에도 알렸습니다.

원래 애드온 만든 사람은 아직 깃헙에 익숙하지 않은 모양입니다. 그래서 병합하는 법을 알려주니 고맙다고 하더군요.

그래서 테스트 프로젝트를 시작했는데, 이번에는 파이참에서 디버깅을 시도하면 엔진이 죽어 버리고, 네임스페이스를 사용하면 컴포넌트를 인식하지 못하는 문제가 있었습니다.

이건 구글링을 해도 도저히 답을 못찾아서 결국 다시 소스를 까보기로 했습니다. 전 C++을 안하기 때문에 대략적인 구조나 비슷한 코드를 비교해가면서 추적하는 수 밖에 없더군요.

그래도 운이 좋았는지 결국 두 가지 문제 모두 원인을 찾아낼 수 있었습니다. 스택오버플로우의 도움을 받아 해결해서 PR을 넣었습니다. 이 번에도 관련 디스코드에 올렸더니 사람들이 좋아하더군요. 앞으로 C++ 만질 일은 더 없을 것 같은데 덜컥 프로젝트 개발자 목록에 추가까지 해줬습니다.

이왕 엔진을 직접 빌드해서 쓰게 된 김에 깃헙 갱신 내용을 바로 테스트 해보고 싶어서 AUR 패키지를 찾아보니 역시 너무 오래되서 빌드가 안되더군요.

원래 관리자는 활동을 안 한지 오래된 것 같습니다. 그래서 덜컥 요청을 넣어서 직접 패키지 관리 권한을 가져오기로 했습니다. 다른 패키지 내용을 참조해서 어찌어찌 고치는데 성공해서 지금은 저도 제가 만든 패키지를 편하게 사용하고 있습니다. 워낙에 듣보 엔진이라 쓰는 사람은 거의 없어 보이지만 그래도 기분은 좋더군요.

이런 저런 문제를 해결하고 본격적으로 개발을 해보려니 게임 관련 API는 파이참에서 자동완성이 되지 않는 것이 눈에 밟혔습니다. 블렌더 자체 API의 경우 누가 타입 힌트를 위한 모듈 껍데기를 만들어 놔서 편하게 쓰고 있는데, 게임 API엔 그런 게 없더군요.

그래서 블렌더의 API 스텁을 자동 생성하는 프로젝트를 받아서 게임 엔진에 적용해보려고 잠깐 시도했는데 쉽지 않았습니다. 그런데 원 제작자가 운영하는 슬랙 채널이 있더군요. 방문해서 필요한 걸 설명했더니 의외로 흔쾌하게 한 번 만들어 보겠다고 했습니다.

몇 주 지나니까 진짜 게임 엔진에 적용 가능한 새 프로젝트를 들고 오더군요. 그래서 제가 있던 게임 엔진 디스코드 채널에도 초대하고, 게임 엔진 문서에 해당 모듈의 소개와 사용법을 간단하게 올려 주겠다고 약속했습니다.

문서 작업을 좋아하지 않는지라 사서 고생한다는 생각이 없진 않지만 그래도 덕분에 이젠 파이참에서 게임 API도 자동 완성이 가능해졌고, 다른 사람들도 편리하게 쓸 수 있다고 생각하니 뿌듯하긴 합니다.

그리고 다시 진지하게 프로젝트를 해보려 하니 워낙에 아무도 안 쓰는 엔진이라 그런지 제대로 된 GUI 라이브러리도 없더군요. 그래서 이왕 이렇게 된 거 한 번 만들어 보기로 했습니다.

그런데 그걸 만들려고 보니 파이썬을 배우면서 좀 아이디어가 떠오른 게 있어서 바탕으로 쓸 수 있는 다른 오픈소스 프로젝트를 시작하게 되었습니다.

주로 주말에 시간 내서 하는 프로젝트라 이런 식으로 자꾸 옆 길로 새면 언제 진짜 게임 프로젝트는 완성할 수 있을지, 아니 제대로 시작이나 할 수 있을지 모르겠습니다.

그럼에도 덕분에 한 동안 이어졌던 오픈소스 개발에 대한 슬럼프는 완전히 치유할 수 있었습니다.

그냥 관심이 가는 개발을 재미있게 하고, 그 과정에서 소소하게 오픈소스 생태계에 기여를 할 수 있다는 자체로 충분히 만족스럽게 생각합니다.

꼭 그걸로 돈을 벌고, 포트폴리오로 쓰고, 누군가에게 실력을 과시하고, 비교하고 그러지 않아도 개발은 충분히 재미있는 취미가 될 수 있는 활동이라고 생각합니다.

오랜만에 그런 사실을 다시 깨닫게 된 경험을 하게 되어, 자랑(?) 삼아 기록을 남겨 봅니다.

다른 분들도 너무 부담 갖지 말고 시간이 날 때 오픈소스 프로젝트 채팅방에도 들러보고, 하다 못해 이슈 보고나 문서라도 기여하는 식으로 전 세계 개발자가 참여하는 오픈소스 생태계에 발을 담가 보시는 걸 추천 드리고 싶습니다.