Dev kitlerine erişmeden PS3 / Xbox 360 deneyimini nasıl edinirim?


24

PS3, Xbox 360 için endüstri programlamasına girmeye çalışan bir oyun programı programcısıyım. Gördüğüm en büyük sorun, yeteneklerimi potansiyel bir işveren için gösterme gereği, ancak PS3 veya Xbox 360 için Dev kitlerine erişemem. bu doğrudan mümkün değildir.

Sorum şu: Konsol geliştiricilere yeteneklerimi göstermenin en iyi alternatif yolu nedir?

DirectX for Windows'da C ++ programlama, Xbox 360 programlama becerilerini göstermeye yakın görünüyor ve OpenGL'de C ++ programlama, PS3 programlama becerilerini göstermeye nispeten yakın görünüyor. Ne yazık ki, web araştırmasından, hem Xbox 360 hem de PS3'ün aslında kendi özel kitaplıklarına sahip olduğu anlaşılıyor, bu nedenle bunu% 100 verimli bir çaba haline getirmiyor gibi görünüyor. Bu yaklaşım en yakın, ancak aynı zamanda çoğu zaman alıcı görünüyor. Ayrıca aslında konsolda hiçbir şey çalıştırmıyorsunuz.

Öte yandan, XNA’da programlama, oyunlarınızın aslında konsolda olması avantajına sahip olsa da, bunun DirectX’in etrafındaki bir sarmalayıcı olduğu ve bunun yerine "gerçek anlaşma" olarak görünmediği izlenimini edindim. C ++.

Potansiyel bir işverene en çok ne tür oyun demolarının gösterilmesinin yararlı olacağını bilmek için sektörün içinden herhangi bir bilgisi olan veya tecrübesi olan var mı? DirectX C ++, OpenGL, XNA, Unreal Engine, Unity3d, Flash, vb vb? Günde sadece çok saatler var ve çabalarımı nasıl yönlendireceğimi bilmek isterim.

İçimdeki his, DirectX'in Xbox 360'ta kullanılana daha yakın göründüğü için en iyi seçenek olacağı yönünde, ancak başka bir dilde / motorda iyi bir demoya sahip olmak da aynı derecede iyi ise, kesinlikle daha az zaman harcayacaktı. başka bir rota.

Yardımlarınız ve tavsiyeleriniz için şimdiden teşekkür ederiz!

Yanıtlar:


17

Hangi yoldan geçeceğinize bağlı olarak, açıkçası çoğu insan bir juniorda özel platform becerileri beklemiyor.

Eğer bir oyun programcınız varsa, çok fazla oyun yapın.

Teknik bir programlayıcınız teknik demolar yüklerse. İlginç makaleleri okuyun ve yeni şeyler deneyin. Programcıları OOOoo'ya yönlendiren ilginç bir şey yaparsanız, sizinle konuşmak isteyeceğiz. Yaptığın bu küçük ilginç şey hakkında sohbet etmek istiyoruz. Oyun olması gerekmez.

ANAHTAR GERÇEK: Demolarınız çok çeşitli makinelerde yayınlanmalı, yedek olarak bir video kaydı içermelidir. Ham değil düzenlendi.


8

Küçük bir rol için belirli bir API'de çok fazla deneyim aramıyorum, bunun yerine ilgili kavramları iyi anladım.

Aradığınız bir grafik konumuysa, 3D matematiğini bildiğinizi ve bir API'yi nasıl iyi kullandığınızı gösterin (OpenGL veya D3D, hangisini gerçekten umursamayın - sadece onu en iyi duruma getirdiğinizden emin olun). Açıkçası, tüm API'ler, çizilecek şeylerin listesini yapmak, bunları göndermek ve durumu yönetmek için aşağı yukarı kaynayan - ve bu şeyleri yapmanın iyi ve kötü yolları vardır, bu yüzden bunu anlayın.

Daha genel konsol programlaması için, gömülü bir platformun gerektirdiği belirli problemleri ele aldığınızdan emin olun. Sınırlı hafıza (takas yok, kötü parçalanma, vb.), Çarpışmalarla başa çıkma konusunda katı kurallar, sınırlı G / Ç bant genişliği, yama / güncelleme, vb.

Kodlama tarzıyla ilgili, detaylarla değil.

Aslında ediyorum kaçınmak bir ticari pozisyon arıyorsanız aslında o arenada bu kullanışlı değil çünkü, XNA.


7

FWIW, "gerçek anlaşma" için çok iyi bir alternatif olarak C # / XNA'daki Xbox 360'ta programlamayı düşünürdüm .

Düşünmek:

  • 360'taki XNA'da, çöp toplama ile uğraşmanız gerekir; özellikle, çerçeve başına ayırma işlemlerini yapmaktan kaçınmanız gerekir. 360 C ++ içinde, (eğer Lua gibi bir komut dosyası dili ile uğraşıyoruz sürece) çöp toplama ile uğraşmak zorunda değilsiniz, ancak ederken do hala başına kare varsa birçok tahsisleri bulunmaktan kaçınmak isteriz.
  • 360'ın işlem gücünün çoğundan yararlanabilmek için kodunuzu çok parçalı hale getirmeniz gerekir. Yönetilen kodun C ++ 'dan biraz daha az performans gösterme arzusundan dolayı, CNA'da olduğu gibi, XNA’da olduğu kadar doğrudur.
  • XNA'nın sağladığı pek çok yardımcı işlev ve sınıf dışında, DirectX'e dayanması koşuluyla XNA'daki grafik API, 360'taki DirectX / C ++ ile oldukça benzer.

XNA'nın harika yanı, ekranda bir şey edinmenin teknik sorunlarına daha az odaklanmanıza ve daha fazlasını oyununuzu yapmanıza izin vermesidir. Basitçe bir oyun (herhangi bir oyun)! ve umarım, kapıdan bir ayak.


5

PS3 programlama becerilerini istiyorsanız, şunlara bakabilirsiniz:

  • PPC mimarisi bilgisi; Bu, bir PowerPC makinesinde C / C ++ geliştirme yaparak elde edersiniz, eski bir G5 Mac'te OS X veya PS3 dahil olmak üzere herhangi bir PowerPC makinesinde Linux olabilir.
  • AltiVec bilgisi; Yine, bunu yeni bir PowerPC makinesinde Mac ile veya Linux ile alabilirsiniz, ancak SSE3'ün bilgisi yeterli olabilir.
  • SPU bilgisi: Linux kullanarak PS3'te bunu pratik yapabilirsiniz.

Bu size PS3 video çipini nasıl programlayacağınızı veya resmi SDK'ların nasıl kullanılacağını öğretmeyecektir. Video programlamasına rağmen, genel OpenGL ve DirectX becerileri, bazı HLSL'lerde de yeterli olacaktır. Ayrıca, Internet’in her yerinde (tümü için, Sony’nin PS3’e yönelik GCC’nin değiştirilmiş sürümü GPL’nin kapsamı altındadır) değiştirilmesine izin vermeyen yasadışı olmayan birçok bilgi ve materyal vardır.

X360 programlama becerilerini istiyorsanız, aradığınız:

  • PPC mimarisi bilgisi: yukarıya bakınız

  • AltiVec bilgisi: yukarıya bakınız

  • DirectX bilgisi: Windows üzerinde pratik yapabilirsiniz.

  • Xbox 360 SDK bilgisi: benzerlikler, XNA uygulamasının çok yardımcı olacağı şekildedir.

Diğer önemli beceriler muhtemelen çok iş parçacıklı programlama (genel bilgi, fakat aynı zamanda atomik işlemler, kilitsiz algoritmalar), taşınabilirlik (endianness, işaretçi boyutları, video donanım özellikleri vb.) İçerir.

Yani evet, bahsettiğiniz gibi, DirectX'in ustalaşabileceğiniz en değerli yetenek olacağına inanıyorum. Ancak, rekabetin de bu şekilde devam edeceğini unutmayın ve birkaç ekstra fark yaratabilir.

Kaynak : Yukarıdakilerin hepsini yaptım ve kendime endüstride harika bir iş buldum.


3

Bu soru (veya daha doğrusu, beklentileriniz) kapsam gerektiriyor. Günümüzde sektörde neredeyse 'oyun programcısı' diye bir şey yoktur. Çok küçük bir stüdyoya gitmeyi veya programcı oluşturmayı hedeflemediğiniz sürece, DirectX veya OpenGl gerçekten önemli değil. Konsolları PC'lerden ayrı kılan şeyler sınırlı performans, sınırlı hafıza ve çok çekirdekli konulardır. Endüstride hangi programlama dalını arzu ederseniz edin, bunlar önemlidir, bu nedenle bununla nasıl başa çıkacağınızın farkında olduğunuzu göstererek, yardımcı olacaktır. C ++ 'nı bilin. C ++ 'nın tuzaklarını bilin. STL'yi nasıl kullanmayacağınızı bilin. Kodunuzun kare oranlı bağımsız, çoklu iş parçacıklı olduğundan ve özel bellek ayırıcı kullandığından emin olun. Elbette, onu vurgula. Bence asıl önemli olan, demonuzun bitmiş olmasıdır.. Çekirdek tamirci çalıştığında birçok programcı dururken, oyun programlamasındaki sürükleme son derece iyidir - nasıl yapılacağını bildiğinizi gösterin.

Çoğu stüdyo senin yeteneğinin ne olduğunu bilmek istiyor, AI, Oynanış, Rendering, Sistemler, Ses, Fizik. Bunu anlamaya çalış. Sektörde deneyim sahibi olmadan bir general olmak, zor bir satış olacaktır.

İyi şanslar!


Odaklanılacak alanı seçme konusunda harika bir nokta.
jcurrie33

1

DirectX mükemmel bir seçimdir. Zaten Windows'lu bilgisayarlarımız olduğu için çalıştırmamız en kolay demo. Konsol seçeneği ile gitmek isterseniz, bir video yerine güzel bir demo. Fakat hiçbir şey canlı kodunuzu izlemekten daha iyi olamaz

Farklı video kartlarına vs. izin verdiğinizden emin olmak için kodunuzu birkaç makinede çalıştırmaya çalışın. Bugünlerde çoğunlukla otomatik olan ancak bazı farklılıklar görülebilir.


0

Herhangi bir 3B API bilgisi iyidir. DirectX veya OpenGL olup olmaması önemli olmamalıdır. 3D konseptler her yerde aynı, sadece API'ler farklı. OpenGL'yi tanımak sizi, bir üst düzey XBOX işi için yarışırken Direct3D'yi bilen birinin dezavantajına düşürmez. Göstermeniz gereken şey, bir şeyi kodlama kabiliyetiniz ve C ++ (veya başka bir dili), standart kütüphaneleri, veri yapılarını ve algoritmaları anladığınızdır. UDK veya Birlik gibi bir oyun motoru bilgisi bir bonus. Bu, oyun şirketlerinde yaygın olan katman yazılımlarıyla çalışma yeteneğinizi gösterir. Flash ön uç geliştirmede kullanılmış, aynı zamanda gözden kaçırmamak bir beceridir.

En önemlisi, sadece bir demo (herhangi bir dilde) oluşturup, onu iyi yapmak ve sonuna kadar görmek. İyi şanslar!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.