Unity가 직면한 기술적 문제들

Unity가 직면한 기술적 문제들

Advertisements

Unity가 직면한 기술적 문제들”에 대한 답글 1개

  1. 게임 엔진 구조에 대해 무지한체 c#랭귀지의 장점만 골라서 쓰고 싶다는 글처럼 느껴지네요… 어차피 유니티 코어는 네이티브 렝귀지로 짜여있고 c#은 그냥 게임로직 스크립팅 랭귀지 정도로 쓰는걸텐데..
    .net async나 await같은 task palleralism같은거 지원하려면 코어 엔진 구조자체를 바꿔야되겠죠. 어차피 보통 게임엔진들은 렌더링이나 삐직을 위해서 지들 나름대로 네이티브로 구현한 잡시스템이 있을꺼고… 뭐 네이티브 메모리풀이랑 가비지콜렉터혼형해서 쓰는거보면 뭐 만들면될것 같기도하지만 오히려 더 골치아파질거 구지 구현할것 같지는 안네요.
    그리고 어차피 그러한 async,await같은 i/o관련 작업할때 중요한거니.. 게임 로직에서는 쓰지도 않을꺼고 뭐.. 네트워크 요청같은거 할때 좀 불편함이 있을것같긴하네요..
    뭐 reactive니 뭐시기니도 사실 그냥 event 시스템 조금 편리하게쓰려고 있는거고 솔찍히 그게 기술적인 문제라고 보긴 힘들죠. 아마도 유니티가 그거 외에 다른 존나 많은 편의기능이 있으니까 시장에서 많이 쓰는거자나요.
    모노 버전과 64비트 때문에 aot컴파일러 쓰는게 안정성이니 뭐니 하는것도 좀 어불설성이 아닌가 싶네여.. 그런걸로 미래가 흔들릴리가 없음… 어차피 모든 업데이트는 안정성 희생을 수반하지 않나요? 어차피 시장에 나가면 사고터지고 그거 고치면 안정되고.. 당연히 새플랫폼 지원하려고 고치면 원래 좀 안정되기까지 기간이 필요한거 아닙니까.. 그래도 시장에 요구에 맞출라고 그런거 감수하는거고..
    그냥 정리하자면 게임엔진에서 쓰는 c#이면 풀스택 .net 기술 자체가 필요없어요.

    ps. 유니티 5년전에 2시간정도 훑어본 수준이라 제가 한 모든소리가 개소리일 수도 있습니다.

    Liked by 1명

    • 한 기술에 대해서 개개인이 서로 다른 견해를 가지게 마련인데 예의 없이 댓글 쓰시는 게 참 안타깝고 불편하네요. 2시간정도 훑어보셔서 틀린 이야기를 할 수 있다는 분이 어투가 저렇게 나올 수 있다는 게 놀랍고요. 서로 견해 다를 수 있는 건 당연하고 이에 대해 얘기해서 더 좋은 생각이나 판단을 내릴 수 있는데 왜안써저님과는 건설적인 디스커션을 할 수 없는 상대네요. 블로거 주인장님, 무시하세요.

      Liked by 3 people

    • 5년 전이면 유니티 초창기 아닌가요? 단점이 없어 보였을 수 있는 시점일 수도 있죠.

      근 몇년 간 유니티가 엔진 시장에서 거의 독주하고 있었다고 생각하면

      1. 유니티의 성장에 따라 변화에 유연하게 대응할 수 없도록 조직이 비대화되었음.
      (또는 유니티가 안일해졌음)
      2. 타 경쟁사들의 견제
      3. 타 플랫폼 업체들의 견제 (1의 경쟁사들과 서드파티 형태의 협력을 갖추고 있다면 더더욱)

      위와 같은 환경이 원인이 되어 5년 사이 기술적 한계들이 드러나기 시작했을 수 있다고 생각합니다.
      저는 5년전 라이브 서비스중인 유니티 프로젝트에 참여했고, 지금도 유니티로 개발중인 프로젝트에 참여중입니다.
      기술에 대해서는 잘 모르지만, 원글과 댓글의 의견차를 개진하기에 시점 차이가 너무 큰 것 같네요.

      Liked by 2 people

  2. 좋은 글 읽고 갑니다.
    IL2CPP 이후 그 엄청난 버그(?)(사용하면 크래쉬 나는 것들)을 겪어본 사람으로써 굉장히 공감이 가는 글이네요.

    앞으로도 좋은 글 써주시길 .. 🙂

    좋아요

  3. 또하나의 문제점이 있다면 Garbage Collect 문제도 들 수 있겠죠. 이것 또한 Mono의 오래된 Version 문제와도 연관 되는것이기는 하지만, Mono 2.6은 Boehm garbage collector를 사용하고 있고, 이 GC 기술은 성능이 좋지 않은걸로 알고 있습니다. 그래서 최신 Mono에서는 Generational GC로 바뀌어져 있는데 현재 Unity는 Generational GC를 지원하지 못하죠. 이건 IL2CPP에서도 마찬가지 입니다. 또한 Mobile Device와 같이 Memory 자원이 한정된 장치에서는 Memory 관리가 필수인데, .NET 환경은 Embedded system을 염두해서 개발된 것이 아니기에 LINQ 기능과 같은 행사코드를 줄여주는 기능들은 필연적으로 GC의 부담을 늘어주기에 Unity Manual에도 사용을 자체(이건 윗글에서처럼 Reflect 일부 기능의 의해 LINQ 일부 기능에서 문제가 발생 한것과 또 다른 문제) 하도록 권하고 있는 내용이기도 합니다.

    Liked by 1명

    • 네. 공감합니다. 그리고 IL2CPP는 가비지 콜렉터를 교체할 수 있는 구조로 만들었다고 하는데, 아직은 Boehm GC만 지원하네요. 아직 할 일이 많이 보입니다.

      Liked by 1명

  4. 토론을 하고 싶으신건지, 시비를 걸고 싶은지 모를 태클이 있네요
    쥔장님 저런글은 그냥 무시하시는게….

    iOS에서 LINQ를 쓰면 생기는 버그때문에 고생한 사람으로써는 격하게 공감하고 갑니다..
    유니티도 이 버그를 알고있을텐데, 왜 수정하려 들지 않을까요

    좋아요

댓글이 닫혀있습니다.