Minecraft가 이렇게 강력한 모드 커뮤니티를 가진 게임이면서도, 개발자들이 난독화된 Java 바이너리를 디컴파일해서 작업했다는 게 놀라움
10년 넘게 난독화 해제와 재난독화를 반복하며 툴링을 발전시킨 그들의 헌신이 대단함
2004년에 MMO 게임을 해적 서버에서 플레이했는데, 서버 운영자가 헥스 에디터로 직접 바이너리를 수정하며 기능을 추가했음
마치 영화 Matrix의 해커처럼 16진수를 보며 한 글자씩 바꾸던 모습이 인상적이었음
소스 코드 없이도 소프트웨어를 수정할 수 있다는 또 다른 증거임
다만 Java는 원래 디컴파일이 쉬워서, 진짜 장벽은 코드 난독화보다 객체지향 구조의 복잡성임
사실 2019년부터 Mojang이 공식적으로 매핑 파일을 제공하기 시작했음
예전처럼 커뮤니티가 직접 만들어 쓰지 않아도 됨
Java는 디컴파일이 쉬워서 JVM 코드만 이해하면 금방 손댈 수 있음
VM 구조와 객체 디스패치 개념만 알면 충분했음
초창기 Minecraft 모딩 커뮤니티는 정말 즐거운 곳이었고, 내가 경험한 코딩 중 가장 기억에 남는 순간 중 하나였음
나도 Minecraft에 익숙하지 않아서 공식 플러그인 시스템이 있는 줄 알았음
그런데 알고 보니 대부분이 리버스 엔지니어링으로 만들어진 생태계였다는 게 놀라움
Minecraft, Roblox, Geometry Dash, Trackmania 같은 게임은 커뮤니티의 힘으로 성공한 사례임
엔진이 폐쇄적이거나 개발이 어렵다면 Vision Pro나 메타버스처럼 성장하기 힘듦
취미 개발자와 소규모 유저가 쉽게 참여할 수 있어야 커뮤니티가 생김
Flight Simulator 시리즈도 거대한 애드온 생태계를 만들었음
하지만 결국 중요한 건 ‘좋은 게임’ 자체임
커뮤니티가 커지면 그중 일부가 자연스럽게 모딩을 시작함
예를 들어 Richard Burns Rally는 원래 모딩을 염두에 두지 않았지만, 팬들이 차, 트랙, 온라인 기능까지 추가했음
voxel 엔진 Luanti에서도 비슷한 현상이 나타남
Roblox의 초기 엔진 완성도는 정말 뛰어났음
2006년에 무료로 수천 개의 3D 멀티플레이 게임을 즉시 실행할 수 있었고, 건물 파괴나 지형 변형도 가능했음
당시로선 혁신적이었고, 그 단순한 접근성이 결국 어린이 시장을 장악하게 했음
Minecraft는 예외라고 생각함
알파 버전부터 싱글플레이 경험이 훌륭했고, 생존과 창의성의 균형이 완벽했음
이미 그 시절에도 수백만 달러의 매출을 올렸음
메타버스가 실패한 또 다른 이유는, 아무도 그걸 원하지 않기 때문임
비싼 VR 헤드셋을 쓰고 싶어 하는 사람은 거의 없음
VR 엔진이 나쁘다는 주장에는 동의하지 않음
Unity, Unreal, Godot 모두 VR 지원이 좋음
문제는 개발 비용 대비 사용자 수가 적다는 점임
접근성, UX, 멀미 방지 등 고려할 게 많아서 개발이 훨씬 비쌈
예를 들어 6DoF 환경에서 자막을 표시하는 것조차 어려움
Mojang이 2019년에 공개한 obfuscation mappings은 난독화된 이름을 해제해주는 리스트였음
덕분에 모더들이 더 이상 모든 코드를 추측하지 않아도 됐지만, 왜 절반만 공개했는지 의문임
많은 모드 툴이 이미 커뮤니티 명칭 체계에 맞춰져 있었기 때문임
아마 법무팀이 난독화 해제라는 단어를 듣고 멘붕했을 것 같음
단순히 법적 이유나 절차적 편의성 때문이었을 수도 있음
혹시 매핑이 일부 클래스나 메서드만 포함된 공식 API 형태였는지도 궁금함
언젠가 Minecraft Java Edition을 GitHub에 오픈소스로 공개할지 궁금함
Skyrim처럼 어떤 플랫폼에서도 계속 팔릴 것 같음
이미 오픈소스 런처들이 계정 인증만 주의하면 정상적으로 작동함
게임 파일도 Microsoft 서버에서 무료로 받을 수 있어서, 오픈소스화해도 손해는 없을 것 같음
2010년에 Notch가 “판매가 줄면 소스 코드를 공개하겠다”고 약속했었음 당시 웹페이지 아카이브
Doom처럼 엔진만 오픈소스화하는 것도 좋은 방법임
예술 자산은 여전히 저작권 보호를 받음
비슷한 대안으로는 Minetest나 Luanti가 있음
지금이라면 소스는 공개하고, 계정 인증 서버 접근권만 유료로 유지해도 매출에 큰 영향이 없을 것 같음
나는 요즘 Luanti에서 작업하는 걸 더 선호함
Minecraft와 거의 같은 경험을 모드로 구현할 수 있고, VoxeLibre 같은 게임 모드도 있음
Lua로 작성된 모드의 소스 코드도 대부분 공개되어 있음
특히 Zoonami는 포켓몬 같은 게임 경험을 제공해서 흥미로움
Luanti에도 AllTheMods 10이나 Meatballcraft 같은 대형 모드팩이 있는지 궁금함
Zoonami는 Tuxemon이 이루지 못한 목표를 달성할 것 같음
Minecraft는 이미 불법 복제가 쉬워서, 소스 공개로 인한 손해는 거의 없을 것 같음
대부분은 Mojang의 인증 서버를 쓰기 위해 정품 계정을 유지함
심지어 비영리 조건을 붙인 오픈소스화도 가능할 정도로 규모가 큼
다만 “영리 금지 조항”이 붙으면 진정한 오픈소스가 아니라 소스 공개(Source Available) 로 분류됨
Proguard의 공격적 난독화는 클래스 이름을 복잡하게 바꾸고 인라인화까지 해서 코드를 이해하기 어렵게 만듦
이번 조치는 그런 점에서 큰 진전임
좋은 소식임! Minecraft 모딩 커뮤니티에 새로운 가능성이 열림
커뮤니티가 만든 매핑은 자유 라이선스였지만, Microsoft의 매핑은 그렇지 않음
일종의 함정일 수도 있음
하지만 이제 매핑 자체가 사라졌으니, 그 함정이 뭔지 잘 모르겠음
변수명에도 저작권이 적용되는지 궁금함
진짜로 더 쉽게 만들려면, 모딩 허용 라이선스로 소스 코드를 공개하는 게 가장 좋을 것 같음
Hacker News 의견
Minecraft가 이렇게 강력한 모드 커뮤니티를 가진 게임이면서도, 개발자들이 난독화된 Java 바이너리를 디컴파일해서 작업했다는 게 놀라움
10년 넘게 난독화 해제와 재난독화를 반복하며 툴링을 발전시킨 그들의 헌신이 대단함
마치 영화 Matrix의 해커처럼 16진수를 보며 한 글자씩 바꾸던 모습이 인상적이었음
다만 Java는 원래 디컴파일이 쉬워서, 진짜 장벽은 코드 난독화보다 객체지향 구조의 복잡성임
예전처럼 커뮤니티가 직접 만들어 쓰지 않아도 됨
VM 구조와 객체 디스패치 개념만 알면 충분했음
초창기 Minecraft 모딩 커뮤니티는 정말 즐거운 곳이었고, 내가 경험한 코딩 중 가장 기억에 남는 순간 중 하나였음
그런데 알고 보니 대부분이 리버스 엔지니어링으로 만들어진 생태계였다는 게 놀라움
Minecraft, Roblox, Geometry Dash, Trackmania 같은 게임은 커뮤니티의 힘으로 성공한 사례임
엔진이 폐쇄적이거나 개발이 어렵다면 Vision Pro나 메타버스처럼 성장하기 힘듦
취미 개발자와 소규모 유저가 쉽게 참여할 수 있어야 커뮤니티가 생김
하지만 결국 중요한 건 ‘좋은 게임’ 자체임
커뮤니티가 커지면 그중 일부가 자연스럽게 모딩을 시작함
예를 들어 Richard Burns Rally는 원래 모딩을 염두에 두지 않았지만, 팬들이 차, 트랙, 온라인 기능까지 추가했음
voxel 엔진 Luanti에서도 비슷한 현상이 나타남
2006년에 무료로 수천 개의 3D 멀티플레이 게임을 즉시 실행할 수 있었고, 건물 파괴나 지형 변형도 가능했음
당시로선 혁신적이었고, 그 단순한 접근성이 결국 어린이 시장을 장악하게 했음
알파 버전부터 싱글플레이 경험이 훌륭했고, 생존과 창의성의 균형이 완벽했음
이미 그 시절에도 수백만 달러의 매출을 올렸음
비싼 VR 헤드셋을 쓰고 싶어 하는 사람은 거의 없음
Unity, Unreal, Godot 모두 VR 지원이 좋음
문제는 개발 비용 대비 사용자 수가 적다는 점임
접근성, UX, 멀미 방지 등 고려할 게 많아서 개발이 훨씬 비쌈
예를 들어 6DoF 환경에서 자막을 표시하는 것조차 어려움
Mojang이 2019년에 공개한 obfuscation mappings은 난독화된 이름을 해제해주는 리스트였음
덕분에 모더들이 더 이상 모든 코드를 추측하지 않아도 됐지만, 왜 절반만 공개했는지 의문임
언젠가 Minecraft Java Edition을 GitHub에 오픈소스로 공개할지 궁금함
Skyrim처럼 어떤 플랫폼에서도 계속 팔릴 것 같음
게임 파일도 Microsoft 서버에서 무료로 받을 수 있어서, 오픈소스화해도 손해는 없을 것 같음
당시 웹페이지 아카이브
예술 자산은 여전히 저작권 보호를 받음
나는 요즘 Luanti에서 작업하는 걸 더 선호함
Minecraft와 거의 같은 경험을 모드로 구현할 수 있고, VoxeLibre 같은 게임 모드도 있음
Lua로 작성된 모드의 소스 코드도 대부분 공개되어 있음
특히 Zoonami는 포켓몬 같은 게임 경험을 제공해서 흥미로움
Minecraft는 이미 불법 복제가 쉬워서, 소스 공개로 인한 손해는 거의 없을 것 같음
대부분은 Mojang의 인증 서버를 쓰기 위해 정품 계정을 유지함
심지어 비영리 조건을 붙인 오픈소스화도 가능할 정도로 규모가 큼
Proguard의 공격적 난독화는 클래스 이름을 복잡하게 바꾸고 인라인화까지 해서 코드를 이해하기 어렵게 만듦
이번 조치는 그런 점에서 큰 진전임
좋은 소식임! Minecraft 모딩 커뮤니티에 새로운 가능성이 열림
커뮤니티가 만든 매핑은 자유 라이선스였지만, Microsoft의 매핑은 그렇지 않음
일종의 함정일 수도 있음
진짜로 더 쉽게 만들려면, 모딩 허용 라이선스로 소스 코드를 공개하는 게 가장 좋을 것 같음