Playonlinux - Steam游戏无法启动

我正在使用Ubuntu gnome 14.04操作系统。
我通过Playonlinux安装了Steam,一切都很顺利。
我通过Steam安装了一些Windows游戏。
当我点击“播放”来启动游戏时,会弹出一个窗口显示“准备启动(游戏名称)”,但只持续一两秒钟,然后窗口关闭,什么也没有发生。
我看到了许多关于这个问题的帖子,但没有一个解决方案适用于我,并且其中许多帖子已经无效了。
我尝试过的其中一件事是在Wine库中添加gameoverlayrenderer.dll并将其设置为禁用,但没有起作用。
编辑:根据Ducky的建议,以下是Playonlinux日志(通过调试模式可访问)
urns a fake device notification handle!
fixme:win:EnumDisplayDevicesW ((null),0,0x33d6d8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33d6d8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33d870,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x33d870,0x00000000), stub!
fixme:win:RegisterDeviceNotificationW (hwnd=0x10118, filter=0xe1fe92c,flags=0x00000000) returns a fake device notification handle!
fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
fixme:win:RegisterDeviceNotificationW (hwnd=0x20118, filter=0xe1fe92c,flags=0x00000000) returns a fake device notification handle!
fixme:advapi:RegisterTraceGuidsW (0x100a3de0, 0x12035da0, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x11faf518, (null), (null), 0x12035db8): stub
fixme:process:SetProcessDEPPolicy (3): stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:advapi:RegisterTraceGuidsW (0x100a3de0, 0x12035da0, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x11faf518, (null), (null), 0x12035db8): stub
fixme:gdi:GdiInitializeLanguagePack stub
[0821/165518:ERROR:renderer_main.cc(227)] Running without renderer sandbox
fixme:module:load_library unsupported flag(s) used (flags: 0x00000800)
fixme:ver:GetCurrentPackageId (0x1f5e9f8 (nil)): stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventRegister {47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x10056360, 0x100d7648, 0x100d7640
fixme:advapi:EventRegister {58a9201e-73b0-42ce-9821-7e134361bc70}, 0x10056360, 0x100d7680, 0x100d7678
fixme:advapi:EventRegister {3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x10056360, 0x100d7610, 0x100d7608
fixme:advapi:EventRegister {1432afee-73b0-42ce-9821-7e134361b433}, 0x10056360, 0x100d76b8, 0x100d76b0
fixme:advapi:EventRegister {4372afee-73b0-42ce-9821-7e134361b519}, 0x10056360, 0x100d76f0, 0x100d76e8
fixme:imm:ImmGetOpenStatus (0x135a48): semi-stub
fixme:ver:GetCurrentPackageId (0x33f15c (nil)): stub
fixme:mscoree:parse_supported_runtime sku=L".NETFramework,Version=v4.0,Profile=Client" not implemented
fixme:mscoree:CLRMetaHost_GetRuntime Unrecognized version L"v4.0"
The entry point method could not be loaded
fixme:imm:ImmReleaseContext ((nil), (nil)): stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventRegister {47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x10056360, 0x100d7648, 0x100d7640
fixme:advapi:EventRegister {58a9201e-73b0-42ce-9821-7e134361bc70}, 0x10056360, 0x100d7680, 0x100d7678
fixme:advapi:EventRegister {3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x10056360, 0x100d7610, 0x100d7608
fixme:advapi:EventRegister {1432afee-73b0-42ce-9821-7e134361b433}, 0x10056360, 0x100d76b8, 0x100d76b0
fixme:advapi:EventRegister {4372afee-73b0-42ce-9821-7e134361b519}, 0x10056360, 0x100d76f0, 0x100d76e8
fixme:imm:ImmGetOpenStatus (0x135a48): semi-stub
fixme:ver:GetCurrentPackageId (0x33f15c (nil)): stub
fixme:mscoree:parse_supported_runtime sku=L".NETFramework,Version=v4.0,Profile=Client" not implemented
fixme:mscoree:CLRMetaHost_GetRuntime Unrecognized version L"v4.0"
The entry point method could not be loaded
fixme:imm:ImmReleaseContext ((nil), (nil)): stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:system:SystemParametersInfoW Unknown action: 116
fixme:advapi:EventRegister {47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x10056360, 0x100d7648, 0x100d7640
fixme:advapi:EventRegister {58a9201e-73b0-42ce-9821-7e134361bc70}, 0x10056360, 0x100d7680, 0x100d7678
fixme:advapi:EventRegister {3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x10056360, 0x100d7610, 0x100d7608
fixme:advapi:EventRegister {1432afee-73b0-42ce-9821-7e134361b433}, 0x10056360, 0x100d76b8, 0x100d76b0
fixme:advapi:EventRegister {4372afee-73b0-42ce-9821-7e134361b519}, 0x10056360, 0x100d76f0, 0x100d76e8
fixme:imm:ImmGetOpenStatus (0x135a48): semi-stub
fixme:ver:GetCurrentPackageId (0x33f15c (nil)): stub
fixme:mscoree:parse_supported_runtime sku=L".NETFramework,Version=v4.0,Profile=Client" not implemented
fixme:mscoree:CLRMetaHost_GetRuntime Unrecognized version L"v4.0"
The entry point method could not be loaded
fixme:imm:ImmReleaseContext ((nil), (nil)): stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventRegister {47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x10056360, 0x100d7648, 0x100d7640
fixme:advapi:EventRegister {58a9201e-73b0-42ce-9821-7e134361bc70}, 0x10056360, 0x100d7680, 0x100d7678
fixme:advapi:EventRegister {3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x10056360, 0x100d7610, 0x100d7608
fixme:advapi:EventRegister {1432afee-73b0-42ce-9821-7e134361b433}, 0x10056360, 0x100d76b8, 0x100d76b0
fixme:advapi:EventRegister {4372afee-73b0-42ce-9821-7e134361b519}, 0x10056360, 0x100d76f0, 0x100d76e8
fixme:imm:ImmGetOpenStatus (0x135a48): semi-stub
fixme:ver:GetCurrentPackageId (0x33f15c (nil)): stub
fixme:mscoree:parse_supported_runtime sku=L".NETFramework,Version=v4.0,Profile=Client" not implemented
fixme:mscoree:CLRMetaHost_GetRuntime Unrecognized version L"v4.0"
The entry point method could not be loaded
fixme:imm:ImmReleaseContext ((nil), (nil)): stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
fixme:win:UnregisterDeviceNotification (handle=0xcafecafe), STUB!
fixme:advapi:UnregisterTraceGuids 0: stub
fixme:win:UnregisterDeviceNotification (handle=0xcafecafe), STUB!
IPC client is in my process, could/should be using an in-process pipe.IPC client is in my process, could/should be using an in-process pipe.fixme:iphlpapi:CancelIPChangeNotify (overlapped 0x9e103d0): fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
fixme:iphlpapi:CancelIPChangeNotify (overlapped 0xb25f28): stub
fixme:advapi:UnregisterTraceGuids 0: stub
Forced create of Win32Mutex but it already existed
Forced create of Win32Event but it already existed
Forced create of Win32Event but it already existed
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
[2014-08-21 16:55:11] Startup - updater built Aug 13 2014 14:18:40
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2014-08-21 16:55:11] Checking for update on startup
[2014-08-21 16:55:11] Checking for available updates...
[2014-08-21 16:55:12] Download skipped: /client/steam_client_win32 version 1407966480, installed version 1407966480
[2014-08-21 16:55:12] Nothing to do
[2014-08-21 16:55:12] Verifying installation...
[2014-08-21 16:55:12] Performing checksum verification of executable files
[2014-08-21 16:55:12] Verification complete
[2014-08-21 16:57:50] Shutdown
[08/21/14 16:59:48] - Running wine-1.7.22 Steam.exe (Working directory : /home/nils/.PlayOnLinux/wineprefix/Steam_wine/drive_c/Program Files/Steam)
[0821/165951:ERROR:network_change_notifier_win.cc(174)] WSALookupServiceBegin failed with: 8
[0821/165951:ERROR:gpu_info_collector_win.cc(103)] Can't retrieve a valid WinSAT assessment.
[0821/165957:ERROR:renderer_main.cc(227)] Running without renderer sandbox
The entry point method could not be loaded
IPC client is in my process, could/should be using an in-process pipe.IPC client is in my process, could/should be using an in-process pipe.Forced create of Win32Mutex but it already existed
Forced create of Win32Event but it already existed
Forced create of Win32Event but it already existed
[2014-08-21 16:59:49] Startup - updater built Aug 13 2014 14:18:40
Looks like steam didn't shutdown cleanly, scheduling immediate update check
[2014-08-21 16:59:49] Checking for update on startup
[2014-08-21 16:59:49] Checking for available updates...
[2014-08-21 16:59:50] Download skipped: /client/steam_client_win32 version 1407966480, installed version 1407966480
[2014-08-21 16:59:50] Nothing to do
[2014-08-21 16:59:50] Verifying installation...
[2014-08-21 16:59:50] Performing checksum verification of executable files
[2014-08-21 16:59:50] Verification complete
[2014-08-21 17:00:12] Shutdown
[08/21/14 17:00:22] - Running wine-1.7.22 winecfg (Working directory : /usr/share/playonlinux/python)
[08/21/14 17:00:58] - Running wine-1.7.22 Steam.exe (Working directory : /home/nils/.PlayOnLinux/wineprefix/Steam_wine/drive_c/Program Files/Steam)
[0821/170100:ERROR:network_change_notifier_win.cc(174)] WSALookupServiceBegin failed with: 8
[0821/170100:ERROR:gpu_info_collector_win.cc(103)] Can't retrieve a valid WinSAT assessment.
[0821/170106:ERROR:renderer_main.cc(227)] Running without renderer sandbox
The entry point method could not be loaded
IPC client is in my process, could/should be using an in-process pipe.IPC client is in my process, could/should be using an in-process pipe.Forced create of Win32Mutex but it already existed
Forced create of Win32Event but it already existed
Forced create of Win32Event but it already existed
[2014-08-21 17:00:59] Startup - updater built Aug 13 2014 14:18:40
[2014-08-21 17:00:59] Verifying installation...
[2014-08-21 17:01:00] Verification complete
[2014-08-21 17:01:20] Shutdown
[08/21/14 17:01:30] - Running wine-1.7.22 Steam.exe (Working directory : /home/nils/.PlayOnLinux/wineprefix/Steam_wine/drive_c/Program Files/Steam)
fixme:ver:GetCurrentPackageId (0x33e490 (nil)): stub
fixme:advapi:EventRegister {47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x3f006c60, 0x3f03fce8, 0x3f03fce0
fixme:advapi:EventRegister {58a9201e-73b0-42ce-9821-7e134361bc70}, 0x3f006c60, 0x3f03fd20, 0x3f03fd18
fixme:advapi:EventRegister {3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x3f006c60, 0x3f03fcb0, 0x3f03fca8
fixme:advapi:EventRegister {1432afee-73b0-42ce-9821-7e134361b433}, 0x3f006c60, 0x3f03fd58, 0x3f03fd50
fixme:advapi:EventRegister {4372afee-73b0-42ce-9821-7e134361b519}, 0x3f006c60, 0x3f03fd90, 0x3f03fd88
fixme:advapi:EventRegister {47a9201e-73b0-42ce-9821-7e134361bc6f}, 0x3f006c60, 0x3f03fce8, 0x3f03fce0
fixme:advapi:EventRegister {58a9201e-73b0-42ce-9821-7e134361bc70}, 0x3f006c60, 0x3f03fd20, 0x3f03fd18
fixme:advapi:EventRegister {3fa9201e-73b0-43fe-9821-7e145359bc6f}, 0x3f006c60, 0x3f03fcb0, 0x3f03fca8
fixme:advapi:EventRegister {1432afee-73b0-42ce-9821-7e134361b433}, 0x3f006c60, 0x3f03fd58, 0x3f03fd50
fixme:advapi:EventRegister {4372afee-73b0-42ce-9821-7e134361b519}, 0x3f006c60, 0x3f03fd90, 0x3f03fd88
fixme:process:SetProcessShutdownParameters (00000100, 00000000): partial stub.
fixme:imm:ImmGetOpenStatus (0x1f9c70): semi-stub
fixme:ver:GetCurrentPackageId (0x33e368 (nil)): stub
fixme:process:SetProcessDEPPolicy (3): stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:imm:ImmDisableTextFrameService Stub
fixme:thread:GetThreadPreferredUILanguages 56, 0x33f77c, (nil) 0x33f780
fixme:winsock:WSALookupServiceBeginW (0x33f668 0x00000ff0 0x33f6a4) Stub!
[0821/170132:ERROR:network_change_notifier_win.cc(174)] WSALookupServiceBegin failed with: 8
fixme:iphlpapi:NotifyAddrChange (Handle 0x33f7b0, overlapped 0xb25f28): stub
fixme:win:RegisterDeviceNotificationW (hwnd=0x1009a, filter=0x33f7bc,flags=0x00000000) returns a fake device notification handle!
fixme:win:RegisterDeviceNotificationW (hwnd=0x1009a, filter=0x33f7bc,flags=0x00000000) returns a fake device notification handle!
[0821/170132:ERROR:gpu_info_collector_win.cc(103)] Can't retrieve a valid WinSAT assessment.
fixme:win:EnumDisplayDevicesW ((null),0,0x33f08c,0x00000000), stub!
fixme:ver:GetCurrentPackageId (0x270dff4 (nil)): stub
fixme:ole:RemUnknown_QueryInterface No interface for iid {00000019-0000-0000-c000-000000000046}
fixme:ver:GetCurrentPackageId (0x31e5d0 (nil)): stub
fixme:hnetcfg:fw_apps_get__NewEnum 0x338cd60, 0x7ffe0d4
fixme:hnetcfg:fw_app_put_ProcessImageFileName 0x338d3d0, L"C:\\Program Files\\Steam\\steam.exe"
fixme:hnetcfg:fw_app_put_Name 0x338d3d0, L"Steam"
fixme:hnetcfg:fw_app_put_Enabled 0x338d3d0, -1
fixme:hnetcfg:fw_apps_Add 0x338d3b8, 0x338d3d0
err:ole:CoGetClassObject class {e2b3c97f-6ae1-41ac-817a-f6f92166d7dd} not registered
err:ole:CoGetClassObject no class object {e2b3c97f-6ae1-41ac-817a-f6f92166d7dd} could be created for context 0x1
fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_HANDLE_INFORMATION
fixme:iphlpapi:NotifyAddrChange (Handle 0x15103cc, overlapped 0x15103d0): stub
fixme:win:RegisterDeviceNotificationA (hwnd=0x100a6, filter=0x8bee4ec,flags=0x00000004) returns a fake device notification handle!
err:ole:CoGetClassObject class {77f10cf0-3db5-4966-b520-b7c54fd35ed6} not registered
err:ole:CoGetClassObject no class object {77f10cf0-3db5-4966-b520-b7c54fd35ed6} could be created for context 0x1
fixme:wbemprox:wbem_locator_ConnectServer unsupported flags
fixme:wbemprox:client_security_SetBlanket 0x7c6d1270, 0x35630b8, 10, 0, (null), 3, 3, (nil), 0x00000000
fixme:wbemprox:client_security_Release 0x7c6d1270
fixme:wbemprox:wbem_locator_ConnectServer unsupported flags
fixme:wbemprox:client_security_SetBlanket 0x7c6d1270, 0x35630d0, 10, 0, (null), 3, 3, (nil), 0x00000000
fixme:wbemprox:client_security_Release 0x7c6d1270
fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled
fixme:wbemprox:enum_class_object_Next timeout not supported
fixme:mountmgr:harddisk_ioctl The DISK_PARTITION_INFO and DISK_DETECTION_INFO structures will not be filled
fixme:wbemprox:enum_class_object_Next timeout not supported
fixme:wbemprox:enum_class_object_Next timeout not supported
fixme:wbemprox:enum_class_object_Next timeout not supported
fixme:wbemprox:enum_class_object_Next timeout not supported
fixme:ntdll:NtLockFile I/O completion on lock not implemented yet
fixme:imm:ImmReleaseContext (0x100a8, 0x34d7540): stub
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
fixme:winhttp:WinHttpDetectAutoProxyConfigUrl discovery via DHCP not supported
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
fixme:win:RegisterDeviceNotificationA (hwnd=0x100c0, filter=0x33e1f4,flags=0x00000004) returns a fake device notification handle!
fixme:win:EnumDisplayDevicesW ((null),0,0x33d6d8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33d6d8,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),0,0x33d870,0x00000000), stub!
fixme:win:EnumDisplayDevicesW ((null),1,0x33d870,0x00000000), stub!
fixme:win:RegisterDeviceNotificationW (hwnd=0x10118, filter=0x9bfe92c,flags=0x00000000) returns a fake device notification handle!
fixme:win:UnregisterDeviceNotification (handle=0xcafeaffe), STUB!
fixme:win:RegisterDeviceNotificationW (hwnd=0x20118, filter=0x9bfe92c,flags=0x00000000) returns a fake device notification handle!
fixme:advapi:RegisterTraceGuidsW (0x100a3de0, 0x12035da0, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x11faf518, (null), (null), 0x12035db8): stub
fixme:process:SetProcessDEPPolicy (3): stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:advapi:RegisterTraceGuidsW (0x100a3de0, 0x12035da0, {3dada31d-19ef-4dc1-b345-037927193422}, 1, 0x11faf518, (null), (null), 0x12035db8): stub
fixme:gdi:GdiInitializeLanguagePack stub
[0821/170138:ERROR:renderer_main.cc(227)] Running without renderer sandbox
fixme:module:load_library unsupported flag(s) used (flags: 0x00000800)
fixme:ver:GetCurrentPackageId (0x1f5e9f8 (nil)): stub
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub
fixme:advapi:EventUnregister deadbeef: stub

当我点击某个游戏的“播放”按钮时:
fixme:mscoree:parse_supported_runtime sku=L".NETFramework,Version=v4.0,Profile=Client" not implemented
fixme:mscoree:CLRMetaHost_GetRuntime Unrecognized version L"v4.0"
The entry point method could not be loaded
fixme:system:SystemParametersInfoW Unknown action: 116
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform
1个回答

酒——即使在PlayOnLinux的帮助下,也不能很好地处理3D内容。而且,你并没有提供太多信息:可能缺少库文件,显卡不好(例如,Wine真的不喜欢集成的英特尔显卡),声音有问题等等。
你可以尝试从终端启动Steam Wine,并查看是否输出任何信息。像这样:
wine "~/.wine/drive_c/Program Files/Steam/steam.exe"

尽管在您的情况下,您需要使用PlayOnLinux决定使用的路径,因为我记得它为不同的安装使用单独的配置文件(请查看~/.playonlinux/)。
WineHQ AppDB也是关于特定程序的信息的一个非常好的来源:https://appdb.winehq.org/
此外,Steam已经在Linux上可用,已经有大量转移或原生编写的游戏可供选择。 编辑: 别指望它会工作。永远都不会。
问题在于WINE中缺少对.NET 4.0的支持,而很多游戏都是基于它构建的(很可能是使用C#)。本机.NET从未是Wine的强项之一;几年来它只能部分工作。虽然有Mono,但它与已编译代码的兼容性不太好。
另一个问题是fixme:winhttp:get_system_proxy_autoconfig_url no support on this platform,一些人已经成功解决了这个问题(例如:https://forum.winehq.org/viewtopic.php?f=8&t=22732 -- 通过从Ubuntu仓库安装winbind:i386并更新OP所使用的专有非免费nVidia驱动程序)。
然而,我强烈建议您查看上面提到的AppDB。搜索您尝试运行的游戏,可能会有一些建议。

感谢您的建议。我已经在问题中添加了Playonlinux的日志。另外,我确实使用Steam for Linux,只是想尝试一下通过Wine成功运行Windows游戏,因为有些人报告说他们可以这样做。 - SpidrJeru
@SpidrJeru 我更新了我的回答。 - Ducky
实际上,在使用WINEPREFIX="/path/to/prefix/" winetricks dotnet40安装时,dotnet40在Wine上运行得非常好。 - QwertyChouskie