OBS Studio(ใหม่) มองไม่เห็นเกม Timelie
จากโพสต์เฟซบุ๊คของ Archan Soonthornarom, Developer เกม Timelie ครับ
วันนี้ขอแชร์การงมหาวิธีแก้ปัญหาที่ถูก Report มากับเกม Timelie จาก streamers หลายๆ ท่าน
“OBS Studio มองไม่เห็นเกม Timelie อัดไม่ได้”
ทางเราเองก็สงสัยว่า ทำไมกันนะ เราไม่ได้เซ็ตอัพอะไรประหลาดนี่นา
- ลองโหลด OBS Studio เวอร์ชั่นล่าสุดมา แล้วลองดู… เออไม่เห็นจริงด้วย
- ลองไปเปิดเกมชาวบ้านที่ทำจาก Unity เช่น Lara Croft Go, Hearthstone, etc เห้ย! พวกนี้ก็เห็นหนิ ทำไมของเราไม่เห็นวะ
3. เอ หรือจะเป็นเพราะ Unity version ใหม่
ก็ลอง Build แบบใช้ version 2019 ….ก็ไม่ได้
2020 ก็ไม่ได้….
4. ลองปรับ Setting หลายๆ อย่างของเกมที่เกี่ยวกับ Graphics… ไม่เกี่ยว
5. ก็เลยแบบ เอ๊ะหรือเป็นที่โปรเจคเรามันพังไรสักอย่าง
เลยลองสร้างโปรเจคใหม่ แบบเปล่าๆ เลยแล้ว Build ดู…. เห้ย เจอแฮะ ทำไมกัน
(ตอนนี้เริ่มสิ้นหวัง)
6.ลองแบบไสยศาสตร์หลายอย่างมาก คือลอง
- เปลี่ยนชื่อ project
- เปลี่ยนชื่อ company
- เปลี่ยน icon เกม
- เปลี่ยน logo
…
ลอง Build มารัน เห้ย ทำไมตอนนี้มันหาเจอแล้ว…
ก็เลยนั่งไล่เก็บหาดูว่า อันไหนคือตัวการกันแน่!
7.ลองตั้งชื่อเป็น UnityWTF เห้ยหาเจอ แสดงว่าเป็นที่ชื่อเกมหรอ
Timelie.exe หาไม่เจอ?????
8.ก็เลยลองไป Build project เปล่าๆ ให้ชื่อ Timelie.exe ด้วย
ผลออกมาคือ เห้ย OBS หาไม่เจอว่ะ
9.เริ่มรู้สึกว่า เห้ย กูต้องเปลี่ยนชื่อเกมจริงๆ หรอ นานิ
10.เลยลองตั้งชื่อเป็น Timelie2…เห้ย หาไม่เจออยู่ดี วอท
11.ลองตั้งเป็น Time;kajsdlfijasdlifjasopidjf ก็ไม่เจอ
12.ลองตั้งเป็น Time เฉยๆ เห้ยไม่เจอ
13.ลองตั้งเป็น Tim เจอ!!!
14.เริ่มงงใหญ่ ทำไมการตั้งชื่อเกมถึงเกี่ยวกันเนี่ย ไม่ make sense สักนิด
15.ด้วยความที่เป็นโปรแกรมเมอร์ เลยเริ่มสงสัยว่า เห้ย หรือโปรแกรม OBS จะ exclude โปรแกรมที่ขึ้นต้นด้วย Time…
16.เลยลองโหลดเกม Steam ชื่อ TimeClicker มา (ฟรี) เพราะขึ้นด้วย Time มาลอง
เห้ย ไม่เจอเหมือนกัน
17.ลองเปลี่ยนชื่อโปรแกรมอื่นเป็น Timelie.exe แล้วรัน
เห้ย ไม่เจอ
18. โอเค เริ่มมั่นใจละ เป็นที่ OBS แน่ๆ
คราวนี้ลองเปลี่ยนเกม Timelie ของเราเป็น ATimelie.exe… เจอครับ!
19.มั่นใจมากว่าเป็นที่ OBS Studio เลยไปเซิร์ชในฟอรั่ม… แต่ก็ไม่เห็นมีใคร report เรื่องนี้เลย!
20.เมื่อหาไม่เจอ เลยไปเซิชใน source code ของ OBS Studio (เพราะเป็น opensource)
https://github.com/obsproject/obs-studio
แล้วก็ค้นพบคำตอบของทุกอย่างที่นี่!
21.สุดท้ายค้นไปเจอโค้ด https://github.com/…/…/plugins/win-capture/window-helpers.c…
ซึ่งไว้ exclude microsoft program ที่อยู่ใน list ไม่ให้มาแสดงปะปนกับเกม
จะเห็นว่ามี keyword “time” อยู่ใน array excluded listฃ
กลายเป็นว่ามันมีบรรทัด “if (astrcmpi_n(exe, *vals, strlen(*vals)) == 0)”
ซึ่ง astrcmpi_n ไปเปิดใน api doc ของเค้าก็พบว่า เป็นการ compare string n ตัวแรกว่าตรงกันไหม
แสดงว่าโปรแกรมใดๆ ที่ขึ้นต้นด้วยคำว่า time* จะไม่ถูกแสดงใน list รวมทั้งโปรแกรมอื่นที่คำนำหน้าด้วยพวกคำในลิสต์ด้วย
22.เมคชัวร์อีกหน่อย… ลองเปลี่ยนโปรแกรมอื่น เป็น cortana-jung.exe…. ไม่เจอ!
23.มั่นใจ 100% ละว่าเป็นที่ตัวนี้ เลยไปหาต้นตอว่ามันถูกแก้ตั้งแต่ตอนไหน เลยไปเจอ pull request https://github.com/obsproject/obs-studio/pull/2129
ที่มีการเพิ่มโค้ดพวกนี้มา ซึ่งเป็นตั้งแต่ OBS Studio v25.0.0-rc1
ดังนั้นถ้าใช้เวอร์ชั่นต่ำกว่านั้นก็ควรจะใช้ได้
24.เลยลองโหลดเวอร์ชั่นก่อนหน้ามา นั่นคือ v24.0.3 มาลงในเครื่อง
แล้วรัน… ค้นพบว่า เจอเกม Timelie แล้วครับ !
สรุปคือ
คนที่ใช้ OBS Studio V25.0.0-rc1 เป็นต้นไป จะมองไม่เห็นเกม Timelie ใน Game Capture / Window Capture
ต้องใช้เวอร์ชั่น 24.0.3 ลงมาถึงจะเห็น
ขอจบการบ่นเพียงเท่านี้…
Update: ล่าสุดทางเราได้ประสานเรื่องนี้กับทางทีมพัฒนา OBS Studio รับทราบเรียบร้อยแล้ว