Runner
리눅스에서 게임을 하려면 많은 고난과 역경을 이겨내야 한다. 대부분의 자료는 영어로 되어있고 몇 년만 지나도 지금과는 맞지 않는 내용들이 많다. 이 글 또한 그럴 것이다. 그럼에도 불구하고 이 글을 본다는 것은 Bottles를 어떻게든 이해하고 사용하려고 하는 것인데, 성공하길 바란다.
1. Wine Prefix란 무엇인가
WINE(Wine Is Not Emulator)이라는 프로그램을 사용하면 윈도우 프로그램을 리눅스에서 실행할 수 있다. Wine은 리눅스 파일시스템 아래에 윈도우의 C 드라이브처럼 보이는 디렉토리를 만드는데, 이것을 Wine Prefix라고 부른다.
2. Bottles에서 사용할 수 있는 Runner
- Wine
- Wine-GE
- Proton
- Proton-GE
- Soda
- Caffe
- Vaniglia
종류가 다양하다. Runner 사이에 어떤 차이가 있는지 모르기 때문에 어떤 것을 선택해야 하는지 알 수 없다. 각 Runner 마다 버전을 표시해 놓은 것도 제각각이다.
3. Wine vs Proton
Proton은 밸브(VALVe)에서 개발하는 Wine이라고 이해하면 편하다. Wine은 DXVK와 VKD3D을 포함하고 있지 않은데, Proton은 두 가지를 포함하고 있어서 게임에 특화되어 있다고 할 수 있다.
Proton incorporates several libraries that improve 3D performance. These include Direct3D-to-Vulkan translation layers, namely DXVK for Direct3D 9, 10 and 11, and VKD3D-Proton for Direct3D 12. A separate library known as D9VK handled Direct3D 9 support until it was merged into DXVK in December 2019.
Proton(software) - Wikipedia
하지만 Proton은 비스팀게임을 실행할 때는 문제가 생기기도 하는데, 이는 Proton에 포함된 DXVK와 VKD3D가 스팀게임에 알맞도록 수정되었기 때문이다. 이 때는 아래에서 설명하는 Wine-GE를 사용하면 좋다.
4. Wine-GE vs Proton-GE
Wine-GE와 Proton-GE가 있다. GloriousEggroll이라는 개발자가 관리하는 Wine과 Proton이라고 생각하면 편하다. Wine-GE는 Wine을 기반으로 하고있고, Proton-GE는 Proton을 기반으로 하고 있음을 어렵지 않게 추론할 수 있다. 하지만 위에서 Proton은 게임용 그리고 Wine은 비게임용이라고 정리하던 것과 달리, Wine-GE와 Proton-GE 모두 게임에서 사용되도록 구성한 Runner이다.
- Use Proton-GE only for Steam games inside Steam.
- Use Wine-GE only for non-Steam games.
- There are currently two games that require custom builds, and no other build should be used for them:
- League of Legend (ex. Wine-GE-Proton8-27-LoL)
- Star Citizen (ex. Wine-GE-Proton7-15-SC)
Wine-GE도 DXVK와 VKD3D를 포함하고 있지만 스팀게임 최적화 패치를 적용하지 않았기 때문에 비스팀게임을 실행하는데 알맞는 Runner라고 할 수 있다.
- Proton-GE uses the proton-packaged version of DXVK, DXVK-NVAPI, and VKD3D whereas Wine-GE relies on the Lutris and/or Heroic builds of them.- Proton-GE's DXVK is patched with the async option. Wine-GE relies on the DXVK version packaged with Lutris/Heroic.
A thread about using Proton-GE and Wine-GE builds - Reddit comment
그 다음엔 Proton과 Proton-GE 사이에는 어떤 차이가 있는가라는 질문이 남는다. 간단히 말하면 Proton-GE는 Proton보다 불안정하지만 새로운 기능이 추가되거나 패치가 적용된 버전이다. winetricks를 사용할 필요가 있을 때는 Proton-GE를 사용하는게 좋을 것 같다.
- By default, the majority of proton's /windows/system32 files are generated as read-only in the proton prefixes, which actually makes it MORE difficult to apply winetricks to them. We have to specify a list of overwritable DLLs in the proton script for exemptions to this in order for protonfixes/winetricks to work.
A thread about using Proton-GE and Wine-GE builds - Reddit comment
5. Wine-GE-Proton
위에서 Wine-GE와 Proton-GE를 신나게 비교했지만 최근에는 Wine-GE 대신에 Wine-GE-Proton이라는 이름으로 출시가 된다.
Wine-GE-Proton7-1 Released
Why the new naming scheme?
The base for WINE was changed from wine upstream to Proton experimental, and staging currently is not used in this new build. There are several reasons this was done, which are explained in detail in the post above.
I needed a way to express that the base is all Proton7 and to reset the minor versions. Additionally, from previous discussions I've had with some other devs on official proton, they requested that I modify the name so that the GE versions were easier to differentiate, which is why the GE prefix has been moved to the front of the name.What exactly has changed?
- WINE upstream repo has been changed to Proton experimental bleeding edge.
- Wine-staging is no longer used, but we keep it within the repository in case it is discovered that patches are needed from it later on.
요지는, Wine-GE는 wine upstream을 기반으로 개발되었는데 Wine-GE-Proton은 Proton experimental을 기반으로 개발된다는 것이다. 이게 기술적으로 어떤 의미인지는 모르지만 이제는 Wine-GE-Proton을 사용하면 된다고 이해하고 있다.
6. Soda vs Caffe vs Vaniglia
Bottles에서 관리하는 Runner다. 이름에서 기능을 유추할 수 없기 때문에 가장 이해하기 힘들었다. 심지어 Soda는 Bottles 공식 문서에서 설명되어 있지도 않다 (2024-02-07 기준). Reddit의 jntesteves에 따르면 Soda와 Caffe는 각각 Bottles에서 개발하는 Wine-GE-Proton와 Wine-GE이다. Soda가 Caffe를 대체한다.
Vaniglia는 Bottles에서 개발하는 Wine이라고 이해하면 된다. 게임이 아닌 프로그램을 실행할 때 사용하면 될 것이다.
TLDR: Soda is similar to current Wine-GE. Caffe is similar to older Wine-GE.
For gaming, use Soda, it's the new one that "replaced" Caffe. Just like Wine-GE migrated from a Wine base to a Proton base, Soda over Caffe was Bottles' devs doing the same. Soda is very similar to current Wine-GE, it generally has the same great performance and compatibility for games.
Caffe is still there if you have games that worked with that, that don't work with Soda. It's a backup.
For non-game apps, you can use Vaniglia, or, if you're using the Flatpak version of Bottles, it already pulls the Flatpak version of upstream Wine as a dependency, so you don't need to install anything and can just use that.
7. Lutris
Bottles에서 Lutris에서 개발하는 Runner도 사용할 수 있는데 대부분 Soda로 해결할 수 있어서 사용해본 적은 없다.