프로그래밍 언어 입문서가 아닌 프로그래밍 기초 개념 입문서
문과생, 비전공자를 위한 프로그래밍 입문책입니다.
jobGuid 꽃미남 프로그래머 "Pope Kim"님의 이론이나 수학에 치우치지 않고 실무에 곧바로 쓸 수 있는 실용적인 셰이더 프로그래밍 입문서 #겁나친절 jobGuid "1판의내용"에 "새로바뀐북미게임업계분위기"와 "비자관련정보", "1판을 기반으로 북미취업에 성공하신 분들의 생생한 경험담"을 담았습니다.
Posted by 김포프

요즘들어 Unity가 인기를 많이 끌고 있고, 저도 어쩌다 유니티를 주무르는 동안에 발견한 내용들을 짧게짧게 블로그에 올려볼 생각입니다. 유니티를 체계적으로 배우시고 싶다면 아마 게임개발포에버에서 도플광어님이 연재하시는 글을 보시는게 젤 좋을겁니다.


자, 그렇다면 오늘의 짧은 정보는... 과연 Unity는 어떤 언어로 작성되었나? 입니다. Unity가 Mono를 이용해서 .NET 프레임워크를 자체적으로 지원하고, 저희가 유니티에서 사용할 수 있는 스크립트 언어도 C# 이다보니


'유니티가 C#으로 작성 되었구나. 그럼 이 엔진이 속도가 너무 느리지 않을까?'


라는 걱정을 하는 분들이 계실겁니다. (저도 그랬다는..)


그래서 그에 대한 답을 좀 찾아보니 영문 질답란에 이미 유니티 개발자가 답을 해놨더군요.



이걸 대충 번역하면...


"유니티는 C++로 작성되었으나 다음과 같은 예외가 있습니다.


.NET API를 노출시켜서 여러분들이 C++로 게임을 짤 필요를 없게 만든 것 뿐이지요. 자바스크립트나 C# 또는 Boo를 이용해서 코딩을 할 수 있는 이유가 바로 .NET API 덕분입니다.


에디터 프로그램의 UI는 C#으로 작성했습니다. 유니티를 사용하시는 게임 개발자들에게 공개된 API와 거의 동일한 API를 쓰지요. (아직 공개되지 않는 API를 조금 쓰기도 합니다만 그리 많진 않습니다.)


이것이 바로 "UnityEngine.dll 파일을 다른 C# 프로젝트에서 사용할 수 있나요?"라는 질문에 대한 답이 언제나 "아니요"인 이유입니다. UnityEngine.dll에는 거의 아무 기능도 들어있지 않습니다. 이건 그저 C#/자바스크립트 호출들을 C++ 엔진에 연결해줄 뿐입니다. C++ 엔진이 없이는 그냥 속빈강정이랄까요?"




한마디로 대충 정리하면:

  • 유니티 내부는 C++이여서 C#보단 성능이 빠릅니다. 단, C#/C++ 컨텍스트 스위치 되는 부분에서 약간의 성능저하는 있을수 있습니다만 언리얼엔진에 비해 크게 문제는 안될거 같습니다.
  • 유니티 에디터는 C#으로 작성되어 있습니다. (에디터에서 리플렉션을 자동으로 지원해주는것도 이때문일듯...)
  • 유니티를 사랑합니다.. (응?)



참조:


TAG , ,

댓글을 달아 주세요

  1. 익티크 2012.06.17 20:18 신고  댓글주소  수정/삭제  댓글쓰기

    유니티 소스 라이센스 사면 C++로 작성되어있는 코드를 확인할수있습니다.
    제가 알기로는 우리나라에서는 삼국지품다 팀에서 산걸로 알고있습니다.

  2. Favicon of http://cafe.naver.com/jcga 도플광어 2012.06.17 21:24 신고  댓글주소  수정/삭제  댓글쓰기

    일리히트엔진도 C#버전이있었는데 irrNet.DLL이라는 형태로 배포가 되었습니다.
    근데 이놈은 다시 c++용 DLL인 irrlicht.dll 내용을 C#에서 접근하도록 도와주는 놈이였죠.
    irrNet.DLL이 왜 맥이나 리눅스 안드로이드 아이폰에서는 왜안돼죠 이런 질문이 많이올라왔었죠.
    결론은 아이폰이나 안드로이드에서 하고싶으면 해당 플랫폼전용 irrlicht.dll을 만들어주어야했었죠 ㅡ.ㅡ;;
    근데 문제는 비졀슈튜디오로만든 irrNet.DLL 과 호환되는 맥이나 리눅스 용 irrlicht.dll 을 만들 방법이 없었죠. 왜냐면 맥용 리눅스용 닷넷은 이세상에 없으니깐요 ㅜ.ㅜ;

    모노이야기가 나왔는데 바로 매장당하는 모습이 ㅡ.ㅡ;;; 암튼 결론은 결국 나지는 않았었죠 ㅜ.ㅜ;
    관련내용...
    http://irrlicht.sourceforge.net/forum/viewtopic.php?f=3&t=44725

    결론은...
    머 어쩼든 암튼 일단은 저도 사랑해요 유니티~

  3. Favicon of http://Junios.net Junios 2012.07.10 09:53 신고  댓글주소  수정/삭제  댓글쓰기

    저두 유니티 사랑해요 -_- 안되는게 있어서 짜증은 나지만 ㄷㄷ

  4. Favicon of https://teraphonia.tistory.com Teraphonia 2013.04.22 14:03 신고  댓글주소  수정/삭제  댓글쓰기

    우와.... 좋은 정보 감사합니다.
    담아갈게요