어쩌다 Unity
어쩌다 Unity까지 하게 되었다
교육을 받으면서 틈틈이 독학으로 이거저거 배우고 있는 중에, 나는 어느새 Unity까지 배우고 있다.
시작은 WebXR을 구현하기 위한 여정
웹에서 XR을 구현하기 위해 Babylon.js도 써보고, Three.js도 알아보고 해봤다. 그런데 문제가 있었다.
WebXR은 아직 실험적인 기능이라, 모든 플랫폼을 지원하지 않는다
그렇다. 이런 문제였다. 그나마 안드로이드, PC 환경까지는 괜찮은데 iOS에서 아직 WebXR의 immersive-ar을 지원하지 않는다고 한다. 제발 아니길 빌면서 iOS에서 테스트해보니 화면이 안 나오더라.
아 어쩌지 하고 찾아보다 모든 플랫폼에서 Native로 돌아가도록 만들고 있다는 Babylon Native 프로젝트를 보고 다시 희망이 생기는가 싶었는데 이것도 Preview 버전이라 필요한 기능 중 지원 안되는 것이 많았다.
일단 WebXR 자체가 아직 실무용으로 사용하기엔 구현이 안 된 브라우저들이 있어서 사용하기가 어려웠다. 그럼 웹말고 Flutter에서 플러그인을 사용해서 구현해볼까 했는데 아직 Flutter에서 AR 관련하여 공식적으로 지원하는 것도 없거니와 그나마 있는 플러그인들도 업데이트가 2-3년 전에 멈춘 것들이 대부분이었다.
Unreal Engine은 엄청난 퀄리티를 보여주지만, 그건 해당 제품에 능숙한 플랫폼 개발자 한정이지 아직 초보자가 그 정도 레벨까지 보여주기에는 어려웠다. 특히, 이전에 잠깐 간단한 프로젝트를 만들어서 빌드하려 했으나 오류가 발생해 속 터지는 상황이 기억나서 섣불리 들어가기 어려웠다.
그렇게 결국 들어가고 계속 눈을 피했던 상대를 마주쳤다.
시작하기 전엔 별로였던 Unity
사실 Unity는 하고 싶지 않았다. Unity에 대해서 들은 부정적인 얘기가 많았기 때문이다. 그래서 내가 Unity로 무언가 개발할 것이라는 생각은 하지 않았다.
막상 들어가보니
초보자 입장에서 쉽고 재밌었다. 언리얼과 비교했을 때 이해가 쉽게 되었다. 블루프린트는 비개발자들이 쉽게 이해하기 위한 것이라고 하지만, 그래픽으로 이루어진 논리 회로를 따라가는건 막상 어려웠다.
그런데 유니티는 언리얼과 비교했을 때 쉬웠다. 비주얼 스크립팅은 없지만 C#으로 스크립트를 짤 수 있었다. 전직장에서 C#으로 개발한 경험 덕분에 코드를 읽고 쓰는데 있어서 어려움이 없었다.
불안한 부분은 어떻게?
유니티에 대해서 나오던 많은 얘기들은 나로서는 유니티를 시작하기에 앞서 주저하게 만든 것도 사실이다. 하지만 요금제 논란의 경우 엄청난 반발을 겪었으니 다시 도입할 확률은 적을테고, GC나 싱글쓰레드로 인한 성능 문제의 경우 Unity 6부터 도입된 신기술들로 성능 개선이 꽤 됐다고 하니 괜찮지 않을까 한다.
목표 세우기
완전 초짜, 게임 개발은 유데미로 배우는 내게 있어선 목표가 있어야 진전이 있는 법이다. 그래서 조잡하고 간단한 두 계획을 세워봤다.
1차: 완전히 구동하는 게임 1개 개발
처음부터 내가 만들고 싶은 완벽한 게임을 만들 수는 없을 것이다. 그러니 우선은 간단한 게임부터 만들 것이다. 게임 타이틀부터 인트로, 플레이와 엔딩까지 있는 게임 하나를 제대로 만들어보려 한다.
2차: 스팀 출시
그 후에는 스팀에 출시를 하여, 한 명이라도 내 게임을 플레이하게 만들어보고 싶다. 게임을 출시하게 된다면, 우후죽순 출시되는 게임들에 파묻혀 잘 보이지도 않을 테지만, 누군가 한명이라도 게임을 플레이한다면 기분이 좋을 것 같다.
물론 이 모든 것은 내가 뭐라도 하나 만들어야 시작될 일이다. 그러므로 지금부터 시작하려고 한다.
