ภาพรวม Linux
ในขณะนี้ Steam สำหรับ Linux พร้อมใช้งานแก่ผู้ใช้งาน Steam ทุกท่านแล้ว ด้วยการมีรายชื่อเกมที่รองรับ Linux เพิ่มขึ้นอย่างต่อเนื่อง กับกลุ่มชุมชน Steam สำหรับ Linux ที่มีความตื่นตัว ก็ถือเป็นเวลาที่ดีที่จะพอร์ตเกมของคุณมาลง Linux แล้ว
การพัฒนาเกมสำหรับ Steam ลงบน Linux นั้นถือเป็นความท้าทายสำหรับผู้พัฒนาที่มาจากระบบปฏิบัติการ Windows หรือ macOS ข้อมูลดังต่อไปนี้จะช่วยให้คุณสามารถพอร์ตเกมของคุณมาลง Steam สำหรับ Linux ได้อย่างประสบความสำเร็จ
การเริ่มต้นใช้งาน
ในการสร้างเกมสำหรับ Linux นั้นจำเป็นจะต้องใช้องค์ประกอบดังต่อไปนี้:
- เครื่องสำหรับการพัฒนาที่ใช้งาน Linux เวอร์ชันที่ได้อัปเดตล่าสุด โดยจะเป็นเครื่องประเภท dual-boot ก็ได้ เป็นเครื่องสำหรับ Linux โดยเฉพาะก็ได้ หรือจะเป็น Virtual Machine ที่รัน Linux ก็ได้ นอกจากนั้น ก็ยังให้การรองรับการพัฒนาและจัดจำหน่ายบน Linux ทั้ง 32 และ 64 บิต ขอแนะนำให้ใช้ Linux Ubuntu LTS รีลีสล่าสุด เพราะได้รับการทดสอบมากที่สุดจากทาง Valve และชุมชน Linux Ubuntu สามารถติดตั้งได้จากที่นี่
- Steam สำหรับไคลเอนต์ Linux
- ชุดเครื่องมือพัฒนา Linux พื้นฐาน (เช่น g++, gcc, และ make utility) จะบรรจุเอาไว้ในแพ็กเกจพื้นฐานสำหรับการบิลด์ ให้ติดตั้งแพ็กเกจดังกล่าวนี้ด้วยการใช้ Ubuntu Software Center หรือเปิดจากหน้าต่างเทอร์มินัลด้วยคำสั่ง apt-get: sudo apt-get install build-essential
- เวอร์ชันล่าสุดของ Steam Linux Runtime จะบรรจุเอาไว้ด้วยเครื่องมือและชุดไลบรารีครบชุดที่จำเป็นในการนำส่งเกม Linux ผ่านทาง Steam สามารถดูวิธีการใช้งานรันไทม์เหล่านี้ได้ใน README.md ที่บรรจุไว้ภายในเรโพสิทอรี่
ถ้าคุณมีคำถามทั่วไปเกี่ยวกับ Linux Steamworks หรือต้องการจะแจ้งปัญหาเกี่ยวกับรันไทม์ โปรดเข้าร่วม กลุ่มการพัฒนา Steamworks แล้วโพสต์ลงไปบนกระดานสนทนา Linux
เครื่องมือ Linux
There is a vast array of Linux development tools ranging from command-line interfaces to graphical developer IDEs. ข้อมูลดังต่อไปนี้จะอิงตามประสบการณ์การใช้งานของทีม Linux ของ Valve
For those with Windows development tool experience, the easiest route to Linux development is Visual Studio on Windows and
WinGDB - a Visual C++ extension that allows debugging of remote Linux processes, using the Visual Studio debugging interface.
สำหรับการพัฒนาบน Linux ทีม Linux ของ Valve ได้ใช้เครื่องมือดังต่อไปนี้:
- QtCreator - a debugger and IDE with familiar Visual Studio key bindings.
- SlickEdit - ให้ GUI แบบกำหนดเองพื้นฐานพร้อมการเชื่อมโยงคีย์ที่ผู้ใช้กำหนด
- gdb - เครื่องมือดีบักแบบบรรทัดคำสั่งที่นิยม
- cgdb - แรปเปอร์ gdb ที่ให้มุมมองแบบแยกจอของตำแหน่งปัจจุบันในซอร์ซโค้ดในเวลาที่ใช้งาน
- Eclipse - IDE อีกแบบหนึ่งที่สามารถกำหนดค่าสำหรับการพัฒนา Linux พร้อมใช้งานบน Windows,
macOS และ Linux
- vim - a basic command-line text editor.
ทีม Linux ของ Valve จะใช้งานเครื่องมือดีบักและเครื่องมือติดตามต่อไปนี้:
- QtCreator - โปรดดูด้านบน
- เซิร์ฟเวอร์สัญลักษณ์
- PerfStudio - a fully-featured, frame-based debugger with support
for API-tracing for games running on AMD graphics cards. พร้อมใช้งานบน Windows
- Telemetry - ตัวสร้างโปรไฟล์ที่มีคุณสมบัติเต็มรูปแบบสำหรับเกมที่ทำงานบนการ์ดกราฟิก พร้อมใช้งานบน
Linux, Windows, และ macOS
- gDEBugger - เครื่องมือดีบักที่ดีบัก สร้างโปรไฟล์ และวิเคราะห์รหัส OpenGL การพัฒนาที่ใช้งานอยู่ได้เปลี่ยนไปเป็น
CodeXL
- perf - เครื่องมือแบบบรรทัดคำสั่งพร้อมคุณสมบัติประสิทธิภาพต่าง ๆ พร้อมใช้งานบน Linux
- NVIDIA Nsight - ส่วนขยายสำหรับ Visual Studio สำหรับการดีบักเกมที่ทำงาน
บนการ์ดกราฟิก Nvidia
- lTTng - เครื่องมือติดตาม Linux
- apitrace project - ชุดเครื่องมือติดตามและรีเพลย์การเรียก OpenGL และ OpenGL ES จากเกมของคุณ
- Zoom - เครื่องสร้างโปรไฟล์ CPU ซึ่งมีอินเตอร์เฟซที่ทรงพลังและใช้งานง่าย
Linux API
Vulkan เป็นไลบรารีที่แนะนำสำหรับการเรนเดอร์กราฟิกประสิทธิภาพสูง เป็นแบบเปิดเทียบเท่า DirectX12 และ Metal
OpenGL เป็นการเรนเดอร์กราฟิกมาตรฐานแบบเก่า เกมส่วนมากจะทำการเรียกไปยัง OpenGL โดยตรง แต่ว่ายังมีเกมอื่นที่ใช้กระบวนการแปลงวิธีการโดยแปลโค้ดเรนเดอร์แบบดั้งเดิมไปเป็นการเรียก OpenGL This is the approach used by older Valve Source games such as Team Fortress 2 and Counter-Strike: Source. ถ้าคุณเลือกใช้ OpenGL เราขอแนะนำให้คุณใช้ฟังก์ชันการใช้งานหลักใน OpenGL 3.0 สำหรับเกมของคุณ
Simple DirectMedia Layer (SDL) เวอร์ชัน 2.0 จะให้การเข้าถึงเสียงและการจัดหน้าต่างระดับต่ำและการใช้งานอื่น ๆ อีกมากมาย ใช้ OpenGL ในการรองรับการเรนเดอร์แบบ 3D คำแนะนำในการติดตั้งสามารถอ่านได้
ที่นี่ For more information and documentation, see the SDL
wiki. Valve uses this in Steam and most of our games to handle windowing and it provides the backend which powers the
Steam Input API.
คลังต่อไปนี้จะให้การรองรับการพัฒนาเกมในด้านอื่น ๆ:
- FreeType - การเรนเดอร์ (ทั้งฟอนต์แบบ vector และ bitmap) บน Linux
- Fontconfig - การกำหนดค่าและการปรับแต่งสิทธิ์การเข้าถึงฟอนต์
- Miles Sound System - เอนจินเสียงมิดเดิลแวร์สำหรับการพัฒนา Linux
- Bink Video - a video codec designed for game developers
- WebM - รูปแบบไฟล์ประเภทโอเพนมีเดียใช้สำหรับบันทึกวิดีโอ Team Fortress 2 แทน QuickTime
เรโพสิทอรี่ของ GitHub
ที่เก็บต่อไปนี้เป็นที่เก็บสาธารณะ และใช้สำหรับงานที่เกี่ยวข้องกับ Steam สำหรับ Linux