안드로이드와 리눅스
고등학생 시절부터 JAVA를 이용한 다양한 게임 프로젝트를 진행하며 JVM의 성능적 한계를 경험하였고, NDK를 통해 C++ 네이티브 코딩을 공부하고 있었습니다. 이 때 공부했던 기술을 토대로 C++기반의 크로스 플랫폼 엔진을 제작하게 되었습니다.
그러다가 리눅스만 돌아가는 제한적인 환경에서 구현을 해야하는 상황이 와서 우분투에서도 작동하도록 구현하였습니다.
많은 시행착오가 있었지만 덕분에 리눅스 환경을 공부하게 되었고, cmake를 통한 빌드 방식을 알게 되었습니다. 이 때 배운 cmake 덕분에 현재 윈도우에서의 빌드 방식은 MSBuild, cmake 둘 다 호환되도록 구현하였습니다.
이전까진 윈도우에서 주로 개발을 진행했지만, 이처럼 안드로이드와 리눅스 환경에서도 돌아갈 수 있도록 고려를 하게 되며 크로스 플랫폼의 첫 시작을 시도하게 되었습니다.
웹
웹으로의 포팅은 데모로 소개된 Moyodao 프로젝트에서 본격적으로 시작하게 됐습니다.
이러한 과정은 엔진의 최적화에 있어서 큰 영향을 주었고, 여러가지 OpenGL의 프로파일 별 지원 가능한 스펙에 대해 경험할 수 있었습니다.
이를 통해 웹으로 포팅하는 과정이 점점 안정화가 되었고, 이를 기반으로 블로그에도 웹으로 빌드하는 방법에 대해 포스트를 작성하였습니다.
macOS
큰맘먹고 산 맥북에서도 제 엔진을 돌리는데 성공하였습니다.
분명 웹으로 포팅했었고, 맥os의 사파리에서도 잘 돌아갔으니
큰 무리없이 정상적으로 돌아갈거라 생각했지만… 역시 크로스 플랫폼에선 쉬운 일 하나 없는 것 같습니다.
제가 산 맥북은 ARM기반의 macOS였기 때문에 기존에 사용하던 GLEW가 정상적으로 작동하지 않는 일부터 VAO가 무조건적으로 들어가야 렌더링해주는 파이프라인까지 문제는 너무나 다양했습니다.
생각보다 많은 삽질을 했지만 같은 렌더링을 데스크톱과 맥북에서 똑같이 보여지는 모습을 보고 뿌듯했습니다.
iOS
xcode로 빌드했으나 정상적으로 렌더링 되지 못했던 장면 중 하나
아이폰을 새로 사면서 iOS에서도 구동을 해봤습니다.
iOS는 macOS와 다르게 xcode를 사용하여 빌드를 하는 것이 필수이기 때문에 처음으로 xcode 프로젝트를 만들어 삽질을 해봤습니다. 위 블로그 링크에서 어떤 문제가 발생했는지 상세하게 적었으니, 참고해주시면 감사하겠습니다.