Rust를 떠나 Unity로: 게임 개발 방향 전환 이야기

12 hours ago 3

  • Architect of Ruin 개발팀은 초기에는 Bevy 엔진과 Rust로 개발을 시작했지만, 실용적 문제로 인해 Unity와 C#로 전환
  • Rust와 Bevy의 장점에도 불구하고, 협업, 고수준 추상화 필요성, 빈번한 API 변화, AI 학습 효율성 저하, 모딩 한계 등이 문제가 됨
  • Unity를 시험 삼아 3가지 핵심 기능을 이식했으며, 3일 만에 성공적으로 검증하고 6주 동안 전체 포팅을 완료함
  • 전환 이후 코드량이 줄고, 개발 속도가 향상되었으며, 생태계 툴 활용까지 가능해져 개발 만족도가 크게 높아짐
  • Rust와 Bevy에 대한 애정은 여전히 크지만, 프로젝트에 필요한 요구사항을 충족시키기 위해 현실적인 선택을 했음을 강조함

Bevy와 Rust에서의 초기 개발

  • Bevy ECS 모델과 Rust 특유의 컴파일 타임 체크를 즐기며 빠른 리팩터링과 안정성을 경험함
  • 타일맵, 스켈레탈 애니메이션, 커스텀 렌더링 파이프라인 등을 Bevy로 직접 구현
  • Bevy 커뮤니티의 열정과 활발한 토론 문화에서 많은 영감을 얻음

Emergent Problems: 예상보다 심각했던 문제들

  • 협업 문제 : Rust 초심자인 팀원에게 Rust의 복잡함이 학습 장벽으로 작용해 기여 속도가 저하됨
  • 고수준 추상화 부족
    • 게임플레이 아이디어를 코드로 빠르게 옮기는 데 어려움이 발생함
    • 빠른 프로토타이핑에 필요한 유연성이 부족했음
  • 빈번한 API 변경 : Bevy의 빠른 발전 속도로 인한 API 불안정성업데이트마다 발생하는 회귀 버그에 지침
  • AI 학습 지원 부족 : C#과 Unity는 AI 보조 학습이 잘 되었지만, Rust와 Bevy는 정보가 부족해 생산성 저하를 초래함
  • 모딩 한계 : Rust/Bevy 환경에서 안정적인 스크립팅ABI 호환성 확보가 어렵다고 판단함

전환 결심: Unity 실험

  • Unreal, Unity, Godot, Bevy 유지, 자체 엔진 개발을 비교 분석
  • Unity가 학습성, 생산성, 협업 용이성, 모딩 가능성 측면에서 가장 높은 점수를 받음

10% 실험

  • 타일맵, 캐릭터(Spine), UI 구축 3개 핵심 작업을 3주 이내 테스트
  • 결과적으로 3일 만에 3개 과제를 완료, 전환을 결정함

포팅 과정과 결과

  • 6주간 모든 시스템과 콘텐츠를 Unity로 재구현
  • 코드량 감소, 보일러플레이트 제거, 개발 속도 증가를 경험함
  • AI 학습 지원 향상 및 Unity 생태계 툴(AStar Pathfinding 등) 적극 활용 가능

이후의 삶

  • Architect of Ruin은 현재 Unity 기반으로 개발 중이며, 빠른 아이디어 반영과 높은 생산성을 유지하고 있음
  • Rust와 Bevy에 대한 깊은 존경은 변함 없지만, 프로젝트에 적합한 선택이 필요했음을 강조함
  • 향후 Unity 기반 구현 세부사항과 포팅 경험을 추가 공유할 예정임

결론

  • 시작 시 공정한 옵션 평가 실패를 인정함
  • 시간을 투자해 방향을 바꿨지만, 결과적으로 더 많은 시간을 벌었다고 평가
  • 개발 비전 실현을 위해 본능을 넘어선 현실적 판단이 중요했음을 깨달음

Read Entire Article