https://forum.paradoxplaza.com/forum/index.php?threads/eu4-development-diary-9th-of-april-2019.1164749/
여러분 앙뇽하세용! 프랑스에서 온 역설사 직원이 쓰는 개발일지에 오신 것을 환영합니다.
이번 시간에는 기술적 문제(Tech Debt)를 이야기할 것입니다. 전에도 @DDRJake가 말씀드렸듯이, 이 문제는 가장 최근에 있었던 패치인 1.28.3 핫픽스 배포 이후로 저희에게 가장 중요한 부분으로 자리잡았습니다. 디자이너들이 올 연말 출시 예정인 대형 확장팩에 대한 아이디어를 떠올리느라 바쁘다면, 저희 프로그래머들은 EU4의 코드를 깔끔하게 정리하느라 바쁘게 지내고 있답니다.
마이크로소프트는 넷플릭스와 협업해서 이런 프로를 만들어내야 합니다
농담은 나중에 하고, 지금 우리가 얘기하고 있는 기술적 문제는 프로그래밍과 관련 없는 일을 하는 분들에게 다소 어렵게 느껴질 수도 있음을 알려드립니다.
게임스콘 2012에서 처음 공개된 EU4는 클라우제비츠 3.0을 기반으로 하여 2011년부터 이미 개발되고 있었습니다. 그러다보니 당시의 개발진들은 여러가지 면에서 봐도 달라진 모습을 보여주지 못 해 EU3에서 몇몇 요소들을 차용했고, 그 중 일부가 오늘날까지도 쓰이는 데 이르렀습니다. '그 요소'들이 뭔지 댓글로 한 번 추측해보세요.
아시다시피 기술이라는 것은 급속도로 발전하는 분야이고, 소프트웨어 공학도 그것에서 벗어날 수 없는 '기술'입니다. 지난 10년 간 개발 환경은 문제를 해결할 새로운 방법을 찾으려 끊임없이 연구하고 분석한 산업 현장의 노고와 하드웨어/소프트웨어의 발전을 통해 개선되어 왔습니다. 불과 10년 전만 해도 SSD는 지금만큼 널리 쓰이지 않았고, 1080P는 완전 신기술이었으며, 다이렉트X 10도 큰 호응을 얻지 못한데다 당시 사람들은 윈도우 비스타에 대단히 적대적이어서 32비트 XP를 계속 쓸 정도였으니까요.
그러나 이것은 EU4가 00년대 후반~10년대 초반에나 쓰이던 기술만으로 만들어진 게임임을 의미하지 않습니다. 저희들은 시간이 지나도 게임이 최신 상태를 유지하도록 최선을 다하지만, 그럼에도 말썽을 일으키는 부분들이 필연적으로 나타납니다. 시간이 흐르면서 쌓여온 기술적 문제(*)가 발생하는 것입니다.
(*: 단순하게 '기술적 문제'라고만 부르기에는 조금 복잡한 문제이지만 여기에서는 이렇게 부르겠습니다 - 개발자 주)
그럼 기술적 문제의 대표적인 사례와 저희들의 해결방식을 소개하겠습니다.
64비트
예전에 @Duplo가 쓴 개발일지에서도 언급되었다시피 EU4가 처음 개발됐을 때는 32비트를 쓰는 것이 합리적인 선택이었으나, 지금은 64비트가 표준이 되었습니다.
EU4에 64비트를 덧입힘으로써 MacOS(32비트 사용을 완전히 중단함)를 계속 사용할 수 있음은 물론 메모리도 더 많이 써먹을 수 있게 될 것입니다. 그렇다고 해서 당장 게임의 메모리 사용량을 크게 늘리지는 않을 것이지만, 많은 프로빈스와 국가를 추가한 모드의 경우에는 이전보다 확실히 많은 메모리를 쓸 수 있게 될 겁니다.
렌더링
이 게임이 최신 그래픽을 사용하지 않는 것은 모두가 아는 사실입니다. 원조가 되는 보드게임을 충실히 반영한 유로파 유니버셜리스는 멋진 군인들과 코끼리들이 세계지도 위에서 싸우는 모습을 보여주는 게임입니다. 하지만 임페라토르: 롬의 프리뷰를 보면 우리의 그래픽 전문가들이 EU4 출시 이후 2가지 꼼수를 배웠음을 알 수 있습니다.
사진 속 보로미르의 말처럼 저희는 지금이라도 임롬 개발진이 만든 개선사항의 일부를 가져올 수 있습니다. 그 중에서 중요한 점은 판도학 박사들이 기겁할 판도를 CPU로 보여주던 과거와는 달리 지금은 대부분 그래픽카드를 통해 지도를 보여준다는 것입니다.
현 버전과 이 스샷 사이의 차이점을 찾아봅시다
버그 보고
이 게임은 절대 튕기지 않습니다. 전략적으로 종료할 뿐이죠(......). 하지만 그런 현상이 생긴다면 저희는 그에 대한 모든 것을 알아내려 합니다. QA팀과 프로그래머들이 문제를 해결하는 데 도움을 주기 때문입니다.
EU4 출시 이후 역설사의 엔진 개발팀은 업그레이드된 버그 보고 프로그램을 만들어 저희가 더 많은 데이터를 수집하여 문제를 더 빠르게 해결할 수 있게 해주었습니다. 가장 좋은 점은 리눅스나 MacOS에서도 문제 해결을 원활하게 할 수 있다는 것입니다. 또한 플레이 년도, 활성화된 모드, 사냥 나간 6/6/6 후계자들의 총원 등 문제 원인을 찾는 데 도움이 되는 메타데이터를 더 많이 확보할 수 있게 된 것도 좋은 점이라 할 수 있습니다.
로딩 시간
로딩 시간을 빠르게 하는 것은 우리 모두가 원하는 일입니다. 사실 아주 쉽게 해결할 수 있는 방법(윈도우 지원 중단(...): 이 겜은 리눅스나 맥에서 더 빨리 돌아감. 진짜로)이 있긴 하지만, 그보다는 현실적이면서도 합리적인 방법을 찾기 위해 노력하고 있습니다.
가장 흔한 방법은 대부분의 게임들이 리소스(게임 파일, 모드, DLC 등)를 불러오기 위해 사용하는 서드파티 소프트웨어인 PhysFS를 업그레이드하는 것입니다. 하지만 윈도우에서의 로딩 시간 단축 효과가 그리 크지는 않습니다.
비잔틴 고수들은 빠른 리겜을 위해 리눅스나 맥에서 게임을 하는 것이 좋습니다
일반 성능
당연한 얘기겠지만 게임의 속도는 언제나 걱정거리로 남아있습니다. 저희들은 매일 밤마다 여러 게임들을 대상으로 벤치마크를 돌려 평균값이 특정 수치보다 낮은 지를 확인합니다(현재 최대값은 게임 시간으로 하루 당 80ms). 시간이 지나면(새로운 하드웨어가 나오면) 성능도 자연히 향상되리라 생각할 수도 있지만, 실제로는 새로운 DLC의 개발 과정에서 평균값이 상승한 것을 정상 범위로 돌려놓으려 애쓰다 보니 마치 성능이 좋아진 것처럼 느껴지는 것입니다.
또한 흔한 통념과는 달리, 새로운 기능 추가'만'이 성능 하락의 주요 원인이라고 할 수는 없습니다. 진짜 원인은 새로운 국가와 프로빈스를 추가하는 데 있습니다. 자세히 설명하자면, 본 게임은 게임 상의 날짜가 바뀔 때마다 각각의 국가들과 관련된 수많은 변수들(관계도, 태도 등)을 계산해야 합니다. 프로빈스의 경우에는 한 프로빈스에서 다른 프로빈스로 이동하는 경로를 알아내야 합니다.
하지만 이것은 부수적인 문제일 뿐입니다. 수학에 흥미가 없는 분들을 위해 간단히 말씀드리자면, 프로빈스를 X배로 늘리면 문제는 X의 제곱만큼 복잡해집니다. 그러니까 프로빈스의 개수를 2배로 늘리면 계산량이 2배가 아닌 4배로 늘어난다는 것입니다. 그래서 저희들은 그 동안 이 게임의 프로빈스를 2000개에서 4000개 이상으로 늘려도 현 상태를 유지할 수 있도록 노력해왔습니다.
여기서 명심하셔야 할 것이 있는데, 소프트웨어 공학에서는 최적화를 통해 0.1%라도 성능을 향상시키면 괜찮은 것으로 치고, 1% 향상시키면 엄청난 결과로, 10% 향상시키면 엄청난 버그를 만들었거나 고쳤다는 것으로 받아들입니다. 이 숫자들로 뭘 어떻게 개선시킬 거냐구요? 지켜보면 아실 겁니다.
이번 시간은 여기까집니다! 기술적인 부분에 대해 더 자세히 알고싶으시다면 제 블로그로 오셔서 고급 정보를 얻어가시기 바랍니다.
다음 시간에는 우리의 디자이너들이 작성한 클래식한 개발일지로 돌아가려 합니다. 제가 Jake를 설득하여 와인 생산량에 포도의 종류와 토양의 비옥도를 반영함으로써 부르고뉴 와인과 보르도 와인 중 어느 쪽이 와인 만들기에 가장 좋은지 해결하는 것을 여러분들이 도와주시지 않는다면 말이죠.
첫댓글 내가이래서 인도 아메리카는 삭제하고겜함
백엔드 개발자가 문제인건지 기획이 문제인건지...
심각한 문제를 쓸데없는 드립과 함께 꺼내니 더 짜증나는 글이군요.
그러게 말입니다. 번역하면서도 느꼈지만 사람 약올리는 것도 아니고 '꼬우면 윈도우 쓰지 말던가' 따위의 망발을 드립이랍시고 치는게...
@화면조정 tactical exit은 딱히 드립이 아닐텐데요.
이전 개발일지에서도 유저들 사이에서 반응이 나쁘면 disagree 폭탄이 되는 경우를 더러 봤는데 위의 개발일지는 그런 상황도 아니지 않습니까. 전반적인 내용도 꼬우면 윈도우쓰지 마세요도 아니고요.
@선비욜롱 전략적 종료 말고 맥이나 리눅스 어쩌고 하는 부분을 말한 것이었습니다. 개인적으로는 이건 좀 아니지 않나 싶었는데 그게 과민반응이었다면 딱히 드릴 말씀은 없네요.
@화면조정 전략적 종료는 본문에 없는 (....)가 있어서 언급했습니다.
만약에 해결방식이 윈도우 지원 끝이었다면 모를까 그게 아니고 거기서도 문제의식이 있고 해결방식을 추구하고 있다는 점을 명시하니까 말이죠. 아무래도 저도 컴공이다보니 환경에 따른 한계에 대해서 공감하는게 더 많기야 하겠죠.
잘만 튕겨...
실제 프로그래밍하는 입장이면 그 둘의 차이가 큽니다. 유저 입장에서는 동일하겠지만 아무런 예상없이 크래시하는 것과 조건 일치에 따른 크래시는 사후처리에 있어서 차이가 커서요.
이놈들은 윈도우에선 아주 리타디드 한 개발자들 이고만
이자식들은 게임을 업데이트나 픽스 한다는게아니라 이렇고 이래서 안됩니다를 포장해서 말하네
포럼에서는 반응이 어떤가요?
그나저나 그래픽 업데이트도 한 만큼 스킨 업데이트좀 해줘라 초창기 모델은 완전 찰흙인데
대체로 괜찮게들 보는 듯 합니다
그럼 땅쪼개기좀 고만하지... 땅만 줄여도 렉 엄청 줄어들겠네
사실 프로빈스 쪼개는 건 고증+컨텐츠 추가라서 긍정적인데, 문제는 그에 따른 최적화가 같이 따라오질 않아서 욕을 오지게 먹는거죠...
그럼 재미가 없어지죠. 그게 문제. 사람들이 괜히 맵모드 찾는게 아니니까요.
개인적으로 패독겜은 잘 튕기지는 않던데, 다른 경우도 많은가 보군요.
사냥 나간 후계자들의 수는 왜 구합- 어억!
털썩!
12년에 나온 게임인데 19년에 dlc 만들어 팔아먹는 회사가 있다?
그런데, 쨔잔! 절대라는건 없군요
일주일에 1-2번은 강제종료되던데
제대로된 경쟁사가 있었다면 이따위로 굴수 있었을까 싶네요.
없다는 것 자체가 이 장르 제작의 어려움을 뜻하죠. 비교적 비슷한 게임을 만드는 AGEOD의 경우에도 대전략 게임에서 턴제를 버리지 못하는 이유 자체가 대개로 보드게임 기반이라는 점 외에도 반실시간으로 굴러갈 만큼의 최적화가 어렵기 때문일겁니다.
역설사만큼 이 장르에서 완성도가 있으면서 본문에서 언급한, 그리고 여타 역설사의 문제점까지 해소한 게임이 나온다면 그건 역대 게임사에 손꼽힐 정도의 걸작이 되지 않을까요 ㅎㅎ
이런저런 노력은 계속 하고있다. 지금껏 열심히 해서 이정도라도 유지된 거다. 극적으로 향상되기는 어렵다. 정도인데 이해는 가면서도 좀 실망이네요.
컴공출신으로선 98프로 공감되는 말들인데요... 흠...
6~7년간 쌓인 코드 + 그에 맞게 짜여진 로직 + 유로파특유의연산처리 + 수많은 dlc들...
누구라도 이걸 뒤집어엎는다는 생각은.. (예를들자면 까페분들이 종종 말씀하시는 64비트전환, 게임엔진교체 등등..)
생각하시는것보다 15배정도 어려운 일들.. 크흠..
네. 솔직히 말해 그럴때 보통 차기작을 내는데... 그걸 안내고 4로 주욱 끌어온게 문제라면 문제
사실 새 엔진 만들고 새겜 만드는게 낫지 않나 싶은데
DLC 팔아먹느라 안하려나..
그많은 식구들 먹여살리랴 투자자 만족시키랴 하다보면 새로운 엔진 연구 개발 + 새 게임 개발 + 기존 시리즈 개발 모두 하기에 힘든건 사실이죠.. 그냥 적당한 팀 꾸려서 새로운 ip 확장하다가 기존 시리즈 확장이 기술적으로 어렵고 자금여유 있을때 착수할듯..
윈도우 사용자에게는 뭔가 좀 우울한 개발일지네요...
뻔뻔스럽기 짝이 없네 렉의 원인을 그리 잘아는 인간들이 프로빈스를 머하러 그리 나눳냐 몇년째 최적화 문제가 어찌 진전이 없을수가 잇나 그래놓고 대형 디엘시?
비잔틴고수들은 맥에서 흠흠...메...모..
역시 프로그래머들의 개그는 받아들일만한게 아니에요 (절레)