Birkaç yıl önce, C ve bazı C ++ alt kümeleri yazdıysanız ve yeterli sayıda platform soyutlaması kullandıysanız (SDL veya her neyse), bir indieğin bulabileceği her platformda çalışabilirsiniz - Linux, Windows, Mac OS, çeşitli sürümlerde , BeOS gibi karanlık şeyleri ve GP2X ve ölüm sonrası Dreamcast gibi açık konsolları. Bir noktada kapalı bir platform için bir sözleşmeniz varsa, “minimum” kod değişikliği ile oyununuzu o platforma taşıyabilirsiniz.
Bugün, bağımsız geliştiriciler, Xbox 360'a (ve yaklaşmakta olan Windows telefonuna) erişmek için XNA'yı kullanmalıdır; Windows dışında başka bir yerde çalışmak için XNA kullanmamalısınız; yakın zamana kadar Java'yı Android'de kullanmak zorunda kaldı; Flash telefonlarda çalışmıyor, HTML5 IE'de çalışmıyor. Örneğin DirectX - OpenGL veya Windows vs. Unix'ten farklı olarak, bunlar kodunuzu yazdığınız ana dilde yapılan değişikliklerdir ve temelde bir derleyici yazmadan kağıtlara alınamaz. Bazı oyun mantıklarını komut dosyalarına taşıyabilir ve tercüman içerebilir - yapamadığınız durumlar hariç, çünkü iPhone SDK buna izin vermiyor ve hiç kimse JIT'ye izin vermediğinden performans düşüyor.
Peki, gerçekten platformlar arası bir taşınabilir oyun veya sadece önemli bir motor ve mantık kodu gövdesi istiyorsanız ne yapabilirsiniz?
Bu bir sorun değil mi çünkü platformlar temelde birbirinden ayrıldı - böyle bir oyun kötü olacağından, hem iPhone hem de Xbox 360'ı paylaşılan bir kodla hedeflemeye çalışmanın faydası yoktur. (Bunu çok düşük bir ihtimal buluyorum. Bir oyunun Windows Mobile telefonu ve Android veya Xbox 360 ve iPad arasında paylaşılmasını istediğini kolayca görebiliyorum.) Arabirim süresi artık bu kadar yüksek değil mi? (İş uygulamaları için buna inanabilirim, ancak sıkı performans gereksinimleri olan oyunlar için değil.)
Bu gelecekte daha belirgin hale gelecek mi? Bölünme, biraz kısıtlayıcı bir şekilde hala satıcı çizgisinde mi olacak? Çapraz platformda herhangi bir şey yapmak için Flash veya Unity gibi üst düzey katman yazılımlarına güvenebilir miyiz?
tl; dr - Bir problemi taşımak mı, gelecekte daha büyük bir problem mi olacak ve eğer öyleyse bunu nasıl çözeceğiz?