Linux - Genel Bakış
Linux için Steam, şimdi tüm Steam kullanıcıları tarafından erişilebilir. Linux desteğine sahip oyunların her geçen gün büyüyen kataloğu ve aktif bir Linux için Steam topluluk grubu ile, şimdi oyununuzu Linux'a uyarlamanın tam sırası.
Steam için bir Linux oyunu geliştirmek, Windows veya macOS geliştirme geçmişine sahip olan geliştiriciler için zorlu olabilir. Aşağıdaki bilgiler oyununuzu Linux için Steam'e başarıyla uyarlamanıza yardımcı olacaktır.
Başlarken
Oyununuzu Linux için derlemek aşağıdakileri gerektirir:
- Linux'un tamamen güncellenmiş bir sürümünü çalıştıran geliştirme makinesi. Bu çift ön yüklemeli bir makine, tamamen adanmış bir Linux makinesi veya Linux çalıştıran sanal bir makine bile olabilir. Ek olarak, geliştirme hem 32-bit hem de 64-bit Linux dağıtımlarınca desteklenmelidir. Önerilen Linux dağıtımı en güncel Ubuntu yayını olan Ubuntu LTS'dir. Bu sürüm hem Valve hem de Linux topluluğu tarafından en çok test edilmiş sürümdür. Ubuntu buradan yüklenebilir.
- Linux için Steam istemcisi.
- Derleme temeli paketi ile alınan temel Linux geliştirme araç seti (örn. g++, gcc ve bir kullanım aracı). Bu paketi ister Ubuntu Yazılım Merkezinden isterseniz de bir açık terminal penceresinde apt-get komutu: "sudo apt-get install build-essential" ile yükleyin.
- Linux oyunlarının Steam'de yayınlanabilmesi için gerekli olan bütün kütüphane setlerini ve araçları içeren Steam Linux Çalışma Zamanının son sürümünü indirin. Çalışma Zamanını nasıl kullanacağınız konusundaki yönergeleri dizinde bulunan README.md dosyasında bulabilirsiniz.
Eğer Linux Steamworks hakkında genel sorularınız varsa veya çalışma zamanı ile ilgili sorunları bildirmek istiyorsanız lütfen Steamworks Geliştirici Grubuna katılın ve Linux Tartışmalarında bizimle paylaşın.
Linux Araçları
Komut satırı arayüzlerinden grafiksel geliştirici IDE'lerine kadar çeşitli bir Linux geliştirici araçları bulunmakta. Aşağıdaki bilgiler Valve Linux takımının tecrübeleri temel alınarak yazılmıştır.
Windows geliştirme araçlarında tecrübesi olanlar için Linux'ta geliştirmenin en kolay yolu Windows'taki Visual Studio veya Visual Studio hata ayıklama arayüzünü kullanarak uzak Linux işlemlerinde hata ayıklama yapabilmenizi sağlayan bir Visual C++ uzantısı olan
WinGDB programıdır.
Linux'ta geliştirme için aşağıdaki araçlar Valve Linux takımı tarafından kullanılmıştır:
- QtCreator - Visual Studio ile benzer tuş atamalarına sahip bir hata ayıklama ve IDE programı.
- SlickEdit - kullanıcıların tuş atamalarına izin veren temel, ayarlanabilir bir GUI sunar.
- gdb - popüler bir komut satırı hata ayıklama programı.
- cgdb - gdb sarmalıyıcısı; yürütme sırasında mevcut konumu kaynak kodda bölünmüş ekranda gösterir.
- Eclipse - Windows, macOS ve Linux'ta erişilebilen, Linux'ta geliştirmeye ayarlanabilecek bir başka IDE programı. Windows, macOS ve Linux'ta erişilebilir.
- vim - temel bir komut satırı metin editörü.
Aşağıdaki hata ayıklama ve izleme araçları Valve Linux takımı tarafından kullanılmaktadır:
- QtCreator - yukarıya bakın.
- Symbol Servers
- PerfStudio - Tam özellikli, çerçeve temelli AMD grafik kartlarında çalışan oyunlar için API izleme desteğine sahip bir hata ayıklama programı. Windows'ta erişilebilir.
- Telemetry - tam özellikli, grafik kartlarında çalışan oyunlar için bir profilleme programı. Windows, Linux ve macOS'te erişilebilir.
- gDEBugger - OpenGL kodunu analiz eden, profilleyen ve hatalarını ayıklayan bir hata ayıklama programı. Aktif geliştirme CodeXL'e taşındı.
- perf - Çeşitli performans özellikleri sunan bir komut satırı aracı. Linux'ta erişilebilir.
- NVIDIA Nsight - NVIDIA ekran kartlarında çalışan oyunlar için hata ayıklama yapabilen bir Visual Studio uzantısı.
- lTTng - Bir Linux izleme aracı
- apitrace project - Oyununuzdaki OpenGL ve OpenGL çağrıları için tekrar ve izleme sağlayan bir araç seti
- Zoom - güçlü ve kullanımı kolay kullanıcı arayüzüne sahip bir CPU profilleme programı
Linux API'ları
Vulkan yüksek performans grafik çizimleri için tercih edilen kütüphanedir. DirectX12 ve Metal'in açık eşdeğeridir.
OpenGL eskiden kullanılan grafik işleme standartı idi. Oyunların pek çoğu OpenGL'e direkt çağrı yapar ancak bazı diğer oyunlar eski çizim kodunu OpenGL çağrılarına çeviren bir çeviri yöntemi de kullanabilirler. Bu yaklaşım eski Valve Source oyunları olan Team Fortress 2 ve Counter-Strike: Source'da kullanılmıştır. Eğer OpenGL kullanmayı tercih ederseniz, OpenGL 3.0'daki çekirdek fonksiyonelliği oyununuz için kullanmanızı öneririz.
Simple DirectMedia Layer (SDL) sürüm 2.0 diğer pek çok şeyin yanı sıra ses ve pencereleme erişimi sağlıyor. 3B çizim desteği OpenGL kullanılarak sağlanılıyor. Yükleme yönergeleri
burada bulunabilir. Ayrıntılı bilgi ve belge için SDL
wikiye başvurun. Valve bunu Steam'de ve pek çok oyununda pencereleme için kullanıyor. Bu özellik aynı zamanda
Steam Girdisi API'ının çalışmasını sağlayan arka ucu sağlıyor.
Aşağıdaki kütüphaneler oyun geliştirmenin diğer yönlerinde destek sağlarlar:
- FreeType - Linux'ta font çizimi (hem vektör temelli hem de bitmap fontları için)
- Fontconfig - Font erişiminin ayarlanması ve özelleştirilmesi
- Miles Sound System - Linux'ta geliştirme için kullanılabilecek bir ara yazılım ses motoru
- Bink Video - oyun geliştiricileri için tasarlanmış bir video codec'i
- WebM - Bir açık medya dosya formatı. Team Fortress 2'de QuickTime yerine video kayıt için kullanıldı.
Linux Runtime
Yerel Linux desteğine sahip uygulamalar, çalıştırılacak Linux için Steam runtime'ının belirli bir sürümünü seçebilir. Bu, her dal için ayrıca ayarlanabilir. Seçtiğiniz runtime'ın, yürütülebilir dosyalarınızı derlemek için kullandığınız Linux SDK için Steam ile eşleşmesi gerektiğini lütfen aklınızda bulundurun. Daha fazla bilgi için
steam-runtime-guide belgesine bakın.
Bu özelliği kullanabilmeniz için öncelikle uygulamanızın Linux'u destekleyen bir başlatma seçeneği olmalıdır. Bunu yaptıktan sonra "Kurulum > Linux Runtime" menü öğesine gidebilirsiniz.
GitHub Depoları
Aşağıdaki depolar herkese açıktır ve Linux'ta Steam ile alakalı projelerde kullanılmışlardır: