Unity3D는 매우 훌륭한 게임엔진이고 성공한 게임엔진입니다. 그리고 정말 많은 분야에서 사용중입니다.


그러나 Unity3D로 게임을 개발을 하기 위해선 윈도우나 맥OS환경이 필수 였습니다. 하지만 Unity3D측에서도 실험적으로 리눅스용을 만들고 지원하고 있습니다. 명색이 다용도 엔진이기 때문에 리눅스용 게임도 만들 수 있는데 개발도 리눅스에서 할 수 있게 하기위한 방법인 것입니다.


물론 경쟁자인 Unreal엔진이 비슷한 노선을 취하기 때문인 것도 맞는 것 같습니다.


Unity3D는 버전별로 상이한 방식을 취하기 때문에 여러 버전을 설치하는 것이 당연시 되고 있습니다 .이를 관리하기 위해서 UnityHUB란 것을 만들었고 최근에는 개발 환경을 이것으로 갖추고 있습니다.


https://forum.unity.com/forums/unity-hub.142/


이곳으로 들어가시면 알 게 됩니다.



해당 포럼에 들어가면 UnityHub XXX is available!! 이런 식으로 써 있습니다. 그 글을 클릭 하면..



이렇게 3대 OS용 UnityHub를 다운로드 받을 수 있게 되어있습니다. 여기서 리눅스도 다운로드 받을 수 있게 되어있습니다. 그리고 이를 다운로드 받으면..


Appimage 형태로 다운로드 됩니다. 즉, 리눅스 배포판을 가리지 않고 실행 되는 방식입니다. 속성에서 


그리고 일반적인 프로그램 실행하듯 실행해 주시면 됩니다. 메뉴에 등록할거냐고 물어보는데 저는 그냥 귀찮아서 등록을 안 하는 것을 선호합니다. 그건 알아서 선택하시기 바랍니다.


그리고 계정 로그인을 하고 잠시 기다리시면...



이렇게 엔진 개발환경을 다운로드 받을 수 있습니다. 

심지어 필요한 컴포넌트도 다운로드가 가능합니다. 굉장히 편리하지요. 그러면 Unity3D 개발환경을 구축 할 수 있게 됩니다. 설치 위치는 톱니바퀴 모양을 누른다음 설정에서 건들 수 있습니다. 물론 권한이 있어야 가능하겠지요?


개인적으로 /opt 안에 폴더를 하나 만든 다음 권한을 따로 주는 것을 선호하지만 ~/안에 설치하는 것을 선호하는 사람도 있을 것입니다. 그것은 취향차이라고 합시다.


이제 프로젝트 탭에서 프로젝트를 하나 만들고 실행해 봅시다.


그러면 짜잔!! 이제 리눅스용 unity3D를 설치할 수 있게 되었습니다. 짝짝짝


추가로 만약 에디터 환경이 너무 느리다 싶으면 OpenGL대신 Vulkan을 사용해 볼 수 있습니다. 확실히 Vulkan이 속도가 빠릅니다.


방법은 Edit-Project Settings

한글판의 경우에는 다르게 나올 수 있다. 하지만 보통 이런 툴은 영문판을 쓸 테니 영문으로 설명한다 알아서 따라오자


그 다음에 Player 탭에서 아래로 쭉 찾아서 Rendering을 찾은 다음 Auto Graphic API for Linux에 체크를 해제합니다. 어차피 윈도는 DirectX11로 고정이고 macOS도 Metal로 고정입니다. 리눅스만이 OpenGL과 Vulkan 두가지를 지원합니다.


그리고 나온 창에서 OpenGL Core가 위에 있을 텐데 Vulkan을 OpenGL Core위로 땡겨서 OpenGL보다 Vulkan이 우선되도록 합니다. OpenGL이 위에 있는 이유는 호환성 때문인데 (구형 VGA는 지원이 안 됨) Vulkan이 이러나 저러나 빠르기 때문에 Vulkan을 추천합니다.


이제 리눅스에서도 Unity3D 엔진으로 이용한 게임 개발이 쉬워졌습니다.


참고로 C# 에디터가 필요하다면 개인적으로 VSCode를 설치하시는 것을 추천합니다. MonoDevelop보다 깔끔하더군요. 그리고 VSCode를 cs파일을 열때 기본으로 설정해두면 Unity3D에서 스크립트를 수정할 때 유용합니다.


VSCode를 설치하는 방법은 따로 검색하시는 것을 추천합니다.

,

https://store.steampowered.com/app/704850/Thief_Simulator/


2018. 12. 1. 공식한글화가 되었습니다.


이제 따로 한글패치를 하지 않으셔도 됩니다!


하지만 공식번역이 부자연스러우므로 더 자연스러운 한글패치를 원하다면 이쪽으로!!

https://www.team-freestyle.com/single-post/2018/12/07/도둑-시뮬레이터-한국어-패치


Options-Settings-Langauge Support에서 kr을 선택하세요!


비공식번역은 ko입니다!







이건 초기 번역기 돌린 버전



일명 도둑시뮬레이터입니다.


Car Mechanic Slmulator 같은 시뮬레이터 게임(?)을 만드는 회사입니다. 이번에는 그 중에서도 특이하게 도둑이 되는 게임을 만들었습니다. 사실 저도 누군가의 추천을 보고 했습니다.


일부 사람들은 중학생 수준의 영어만 할 줄 알면 전혀 문제없다라고 하는데 그래도 이왕이면 한글이 좋잖아요?


그래서 만들었습니다.


일단 초벌번역은 구글 번역기를 동원했고 이후에 손번역(?)을 조금 더 해서 일단 말은 되게끔 만들어 두었습니다. 아직 검수 중이니 중간중간 오역과 이상한 부분이 많이 있을겁니다.


한글패치는 아래의 것을 다운로드 받으세요.(2018. 11. 29)


https://drive.google.com/open?id=1iLUP37iLRlx60Lbb9q_HB8WEv5cia5JU




일단 스팀에서 Thief Simulator에 오른쪽 버튼을 눌러서 속성으로 들어갑니다.


그다음 로컬파일 탭에서 로컬컨텐츠 보기 버튼을 누릅니다.


그 다음 thief_Data 폴더로 들어갑니다.


그리고 압축 파일의 내용을 여기에 덮어버리면 됩니다.


그리고 게임내에서 바로 한글이 뜨는 것이 아니라 옵션을 바꿔줘야 합니다. 우선 프로필을 만든 다음 메뉴로 진입합니다.


그리고 Options-Settings-Language에서 ko를 선택합니다.


이제 한글이 뜹니다!!!


게임내 폰트는 Spoqa Hans Sans (NotoSans CJK KR 기반 경량화 폰트)를 사용했습니다. 그래서 왜인지 안드로이드 모바일 게임 느낌이 다분히 날 겁니다.


검수자 : 림뽐 (twitch.tv/limppom)

제가 플레이가 할 수 없는 지경이라 게임 방송으로 검수 중입니다.

,

Steam의 Proton지원으로 인해 리눅스에서 게임하기가 한결 더 쉬워졌습니다.

2018년 현재 주류 게임개발 라이브러리는 DirectX11입니다. 대부분 게임들이 11버전으로 만들어지고 있지요.


SteamPlay는 이러한 DirectX11버전을 Vulkan으로 변환해서 플레이를 할 수 있도록 도와줍니다.

하지만 역시 기본 바탕은 wine이기에 Wine으로 인한 오류는 그대로 나타납니다. 저 같은 경우에는 Thread관련 오류가 많이 났는데 이를 해결하는 방법을 알려드리고자 합니다.


AMD CPU에 Unity3D엔진에서 특히 오류가 잦았는데 원인은 아직도 알지 못합니다. 보나마나 멀티코어활용 문제겠지요.


방법은 thread_submit옵션을 켜서 각 thread를 넘나들때 GIL처럼 잠그는 기능(?)을 활성화 하는 겁니다. 이때 속도 문제가 발생하지만 그래도 게임이 다운되지는 않습니다.


오류가 나는 게임의 속성으로 들어갑니다.


여기서 시작 옵션 설정을 눌러주시고


thread_submit=true %command%


위와 같이 적어줍니다. 그리고 실행하면 Thread관련 오류를 잡을 수 있게 됩니다.

,

이전에 RWBY:Grimm Ecllipse란 게임을 우분투에서 실행 하는 방법에 대해 공개한 적이 있었습니다.

http://moordev.tistory.com/221


이 게임이 일단 영어권에서 만들어진 만큼 언어에 문제가 있었는데 일본어, 중국어 번체, 스페인어 등의 다양한 언어를 지원하더군요. 문제는.. 한국어는 없습니다.


그렇다고 괜찮은 이 게임을 그냥 외국어로만 하기는 좀 그렇더군요. 이 참에 조금 손을 보기로 했습니다.


우선 게임 분석을 해야겠지요. 스팀의 설치된 폴더에 가면 rwby_ge_Data란 폴더가 있습니다. 이 쪽을 들여다보면 assets란 파일들이 주르륵 나와있습니다.


이건 보통 Unity3D 엔진으로 만들었다는 증거가 됩니다. 그렇다면 Unity3D게임의 한글화 기법을 적용하면 되겠군요.


아쉽지만 Unity3D 게임은 한글화가 쉽지 않습니다.

우선 assets파일을 풀어내는 프로그램은 존재합니다. 다시 패킹도 가능하고요. UnityEX란 프로그램인데

UnityEX.rar

이것으로 assets파일을 풀어내고 다시 합칠 수 있습니다.


하지만 풀어냈다고 우리가 아는 그런 포맷이 튀어나오는 것이 아니라 확장자가 *.-숫자 형태로 된 파일이 튀어나옵니다.


물론 이미지는 dds포맷으로 풀 수 있고 일부 텍스트는 txt로 나오기도 합니다.(NGUI같은 라이브러리는 txt를 쓴다고 합니다. 하지만 이 라이브러리를 썼다는 보장이 없다면...) 그럼... 노가다 해서 알아내야지요...


그래서 알아낸 것이 아래와 같습니다.


sharedassets0.assets

resources.resource


이 두 파일이 핵심입니다.


그 중에서 sharedassets0.assets는 안에 TTF 파일을 가지고 있어서 폰트 수정을 위해 필요한 파일이고 resources.resource 파일에는 로컬라이징용 대사파일이 있습니다.


UnityEX로 해당 파일을 풀면 어마어마한 양이 튀어나오는데 sharedassets0.assets에서는 TTF파일만 찾아서 우리가 아는 한글폰트(나눔고딕이나 서울남산체, NotoSans 등...)으로 파일을 바꿔치기 해주면 해당 파일이 할 일은 끝납니다. 그리고 Import all file 버튼을 누르면 한글폰트가 담긴 파일이 나옵니다.


문제는...


resources.resource에 들어있는 스크립트입니다.


이걸 알아내기까지 좀 노가다했습니다.


옆의 사본은 무시. 그냥 내가 작업하다 날려먹을까봐 백업한 것.

resources_00001.-59 이 파일이 핵심입니다.

사실 여기서 제일 스크립트 파일 중에서는 용량이 크거든요. 그래서 헥스에디터로 열어봤더니 다행히도 이것이 Localize 어쩌고 하는 파일이더군요.


같이 들어있는 ARIAL.ttf는 무시해도 좋지만 혹시나 해서 이것도 나눔고딕으로 바꿔치기 했습니다. (ARIAL하고 나눔고딕이 제일 흡사하더군요.)


이걸 헥스에디터로 열고


한글로 덮은 부분은 본래 일본어가 있던 부분

인코딩을 UTF-8로 해 놓으니 온갖 언어가 다 보입니다.


여기서 전 일본어 부분을 덮기로 했습니다. 왜냐하면 UTF-8의 형태 때문인데 ASCII코드와의 호환을 위해 기존 ASCII코드는 1바이트만 차지하지만 나머지 글자는 3바이트를 차지하는 구조로 한글은 UTF-8에서 3바이트를 차지합니다. 그렇다는 것은 영어부분을 덮으면 본래 대사 길이의 1/3만 쓸 수밖에 없지만 일본어는 기존 대사 길이를 거의 다 쓸 수 있습니다. 게다가 특수문자는 ASCII의 반각(1바이트)을 거의 이용하는 한글과 달리 일본어는 전각(3바이트...)를 쓰곤 해서 번역된 문구를 쓸 공간이 매우 넉넉합니다.


이렇게 헥스에디터에서 노가다 작업을 하고 다시 UnityEX에서 패킹을 한 다음 한 번 테스트를 해봤습니다.


일본어 부분을 덮었기에 설정에서 일본어로 설정을 했습니다. 아직 번역이 안 된 부분은 일본어로 나오기에(덕분에 무슨 말인지...) 문제가 있지만 번역을 한 부분은 한국어로 잘 나오네요.


폰트는 서울남산체, 본고딕(NotoSans CJK)을 썼습니다. 헥스에디터로 노가다하면 충분히 한글화가 가능하겠네요.

,



이번에는 Unity에 대해 말할까 합니다.


Unity라고 하면 우분투 사용자분들은 2017년부로 사망하신 Unity Desktop을 생각하실것 같은데 

http://moordev.tistory.com/134

"Unity 게임개발을 우분투에서"


여기에 나온 Unity3D 게임엔진 개발툴을 말하는 것입니다.


https://forum.unity3d.com/threads/unity-on-linux-release-notes-and-known-issues.350256/


Unity3D 엔진은 아마도 전세계에서 사랑받는 엔진이라고 볼 수 있을 것입니다. 가격도 저렴하고 사용자층도 넓어서 도움받기도 쉽기 때문입니다. 게다가 지원하는 디바이스도 많아서 Windows, Mac, Linux 같은 PC영역외에도 Android, iOS, PS4, Web, Xbox One 등 생각할 수있는 대부분 기기는 다 지원을 합니다.


그리고 개발툴이라고 할 수 있는 Unity Editor의 경우 Windows와 Mac을 정식지원하고 있고 Linux는 테스트버전으로 배포중입니다.


내가 굳이 두가지 버전을 다 다운로드 받은이유는?? 읽어보시면 압니다.



네... 테스트버전입니다. 테스트버전이라서 문제가 이래저래 많습니다.


2017년 6월 6일 Unity Editor 2017.1 b8버전이 배포되었습니다.

그런데 이 물건... 중요한 버그가 있습니다.


라이센스 확인이 안 됩니다. 개인용이든 기업용이든 Unity홈페이지에서 회원 가입후 인증을 해야하는데 인증이 진행이 안 되는 중요한 버그가 있습니다.


포럼에 문의하니 이전 버전인 5.6.1버전을 설치한 후 라이센스를 인증하고 업데이트를 하라고 합니다.


그런데 말입니다...



패키지 용량이 3GiB나 된단 말입니다!!!! 게다가 다운로드 속도도 너무 느려서 1시간이 걸리는 경우도 많습니다!!!!!!!


그러니까 5.6.1버전도 다운로드 받고 2017.1b8버전도 다운로드 받으란 의미입니다.


그리고 이걸 우분투 소프트웨어 센터나 Gdebi로 설치하면....


한참 동안 말이 없습니다. 패키지 크기가 어마어마하기 때문에 검사가 오래걸리거든요. 그냥 터미널에서 dpkg를 써도 느립니다.


어쨌건 5.6.1버전을 설치하고 라이센스를 인증한 다음 2017.b8버전을 설치해서 업데이트를 했습니다. 그랬더니...


한가지 더 버그가 더 나오는데 프로젝트를 만들면서 에셋을 추가하면 진행이 안 됩니다. 아니 기본 에셋을 제외한 추가 에셋을 추가하면 에디터가 시스템을 사살(!)합니다.


보통 테스트버전이면 프로그램만 죽고 마는게 보통인데 이 쪽은 그냥 커널패닉을 일으키네요. 중대한 버그를 뛰어 넘었습니다.


이건 그냥 지뢰에요 지뢰.


여기서 프로젝트를 여는 순간 넌 이미 죽어있다. 프로젝트 버전에 2017.1이라고 써있을 것이다...

그러니까 이 버그가 해결되기 전까진 5.6.1버전을 쓰거나 이후에 업데이트된 버전을 쓰시는 것을 추천드립니다.


저도 Xorg가 죽어버릴 줄은 몰랐습니다. 아직도 테스트버전만 나오는 이유를 알 것도 같습니다.


정식버전은 언제 나오는거야

,