Hacker News 의견

메타버스 클라이언트 개발 경험을 공유하며 러스트의 문제점들을 제시함

  • 러스트로 대규모 3D 게임을 개발하는 사례가 거의 없음
  • 리팩토링과 프로그램 각 부분을 연결하는 작업이 고통스러움
  • 렌더링은 거의 적절하지만 스택이 완성되지 않았고 신뢰할 수 없음
  • 2D GUI 시스템은 약하고 다이얼로그 박스당 너무 많은 코드가 필요함
  • async 시스템이 불필요한 영역까지 확산되는 문제에 동의함

20년 경력의 게임 개발자로서 러스트가 게임 개발에 적합하지 않다고 봄

  • 게임플레이 코드는 유연해야 하고 흥미로운 게임을 만들기 위해 엣지 케이스가 많아야 함
  • 컴파일 시간이 중요하고 구조 변경이 자주 필요함
  • ECS는 일부 시스템에 유용하지만 게임플레이나 UI 코드에는 사용하기 힘듦

러스트 게임 개발 생태계는 과대광고에 의존하고 있음

  • 러스트로 게임 개발을 시도했지만 즉시 끔찍한 경험을 함
  • 느린 컴파일 시간, 거대한 패키지 다운로드, 러스트 자체의 어려움 등
  • 다른 도구들이 러스트처럼 안전하지 않다고 주장하지만 게임에서 메모리 안전성이 큰 문제였던 적이 거의 없음

비비와 유니티, 고도로 게임 개발 경험을 비교함

  • 현재 러스트로 게임 개발을 선택하는 것이 이해하기 어려움
  • ECS에 모든 것을 우겨넣으면 재미있는 게임플레이 개발에 방해가 됨
  • 현대 PC의 성능을 고려하면 다중 스레딩 최적화를 과도하게 걱정할 필요가 없음

님(Nim) 언어가 러스트보다 게임 개발에 더 적합할 수 있음

  • 개발자를 방해하지 않고 핫 리로딩을 지원함

러스트는 특정한 방식의 프로그래밍을 강요하는 독선적인 언어로 보임

  • 메모리 안전성을 모든 것보다 우선시 하는데 게임 개발에서는 그다지 유용하지 않음
  • 게임 개발에 이상적인 언어는 생산성이 높고 성능이 적절하며 위험을 감수할 줄 아는 숙련된 프로그래머를 위한 것이어야 함

Allen Blomquist의 툴링 데모는 개발 피드백 루프가 중요함을 보여줌

  • 러스트가 원하는 작업 환경을 제공하지 못해 Unity로 다시 전환함

러스트의 근본적 문제는 객체지향을 버리고 함수형 프로그래밍을 선호하는 것

  • 최하위 코어에서는 도움이 될 수 있지만 상위 레벨에서는 적합하지 않음

게임 개발에 있어 러스트는 최악의 선택

  • 정확성과 안전성, 완벽한 코드를 추구하는 러스트의 가치는 게임 개발과 맞지 않음
  • 게임은 수명이 짧고 개발 주기도 짧아 코드 품질이 그리 중요하지 않음
  • 게임 엔진 개발에는 도움이 될 수 있지만 높은 유연성의 스크립팅 언어와 함께 사용해야 함

D언어로 코딩하면서 C에 비해 데이터 레이아웃 변경이 훨씬 쉬움을 깨달음

  • 참조 타입과 값 타입 간 전환이 C에서는 어렵지만 D에서는 쉬움