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