-
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 기반 구현 세부사항과 포팅 경험을 추가 공유할 예정임
결론
-
시작 시 공정한 옵션 평가 실패를 인정함
-
시간을 투자해 방향을 바꿨지만, 결과적으로 더 많은 시간을 벌었다고 평가
- 개발 비전 실현을 위해 본능을 넘어선 현실적 판단이 중요했음을 깨달음