OBS Studio(ใหม่) มองไม่เห็นเกม Timelie

Parimeth Wongsatayanon
Urnique Studio TH
Published in
2 min readMay 23, 2020

จากโพสต์เฟซบุ๊คของ Archan Soonthornarom, Developer เกม Timelie ครับ

วันนี้ขอแชร์การงมหาวิธีแก้ปัญหาที่ถูก Report มากับเกม Timelie จาก streamers หลายๆ ท่าน

“OBS Studio มองไม่เห็นเกม Timelie อัดไม่ได้”

ทางเราเองก็สงสัยว่า ทำไมกันนะ เราไม่ได้เซ็ตอัพอะไรประหลาดนี่นา

  1. ลองโหลด OBS Studio เวอร์ชั่นล่าสุดมา แล้วลองดู… เออไม่เห็นจริงด้วย
  2. ลองไปเปิดเกมชาวบ้านที่ทำจาก 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 รับทราบเรียบร้อยแล้ว

--

--