Jak zdobyć PS3 / Xbox 360 bez dostępu do zestawów deweloperskich?

24

Jestem początkującym programistą gier, próbującym dostać się do programowania branżowego na PS3, Xbox 360. Główny problem, jaki widzę, to potrzeba wykazania się umiejętnościom potencjalnemu pracodawcy, ale bez dostępu do zestawów deweloperskich na PS3 lub Xbox 360, robiąc jest to bezpośrednio niemożliwe.

Moje pytanie brzmi: jaki jest najlepszy alternatywny sposób pokazania programistom konsoli moich umiejętności?

Programowanie w C ++ w DirectX dla Windows wydaje się bliskie pokazania umiejętności programowania na Xbox 360, a programowanie w C ++ w OpenGL wydaje się stosunkowo bliskie pokazania umiejętności programowania na PS3. Niestety z badań internetowych wynika, że ​​zarówno Xbox 360, jak i PS3 rzeczywiście mają własne biblioteki własności, przez co wydaje się, że nie jest to w 100% owocne przedsięwzięcie. To podejście wydaje się najbliższe, ale także najbardziej czasochłonne. Ponadto nie uruchamiasz niczego na konsoli.

Z drugiej strony programowanie w XNA ma tę zaletę, że twoje gry są w rzeczywistości na konsoli, choć mam wrażenie, że nie jest to „prawdziwa okazja”, ponieważ jest to tylko opakowanie wokół DirectX i używa C # zamiast C ++.

Czy ktoś ma wiedzę lub doświadczenie z branży, aby wiedzieć, jakie pokazy gier byłyby najbardziej przydatne, aby pokazać potencjalnemu pracodawcy? C ++ w DirectX, OpenGL, XNA, Unreal Engine, Unity3d, Flash itp. Itd. Itd.? Jest tylko tyle godzin w ciągu dnia i chciałbym wiedzieć, jak kierować moimi wysiłkami.

Mam przeczucie, że DirectX byłby najlepszym wyborem, ponieważ wydaje się bliższy temu, co jest używane na Xbox 360, ale jeśli dobra wersja demonstracyjna w innym języku / silniku jest równie dobra, to oczywiście poświęcenie mniej czasu będzie potrzebne inna trasa.

Z góry dziękuję za pomoc i porady!

jcurrie33
źródło

Odpowiedzi:

17

Zależy od tego, którą ścieżką podążasz, szczerze mówiąc, większość ludzi nie spodziewa się określonych umiejętności platformy u juniorów.

Jeśli jesteś programistą gier, rób dużo gier.

Jeśli jesteś programistą technicznym, wykonaj wiele demonstracji technicznych. Przeczytaj ciekawe oficjalne dokumenty i wypróbuj nowe rzeczy. Jeśli zrobisz coś interesującego, co zmusi programistów do przejścia na OOOoo, CHCEMY z tobą porozmawiać. Chcemy porozmawiać o tej małej ciekawej rzeczy, którą zrobiłeś. To nie musi być gra.

KLUCZOWY FAKT: Twoje demo powinno działać na szerokiej gamie maszyn, w tym nagrać wideo jako kopię zapasową. Edytowane nie surowe.

Kimau
źródło
8

W przypadku młodszej roli nie szukam dużego doświadczenia w żadnym konkretnym interfejsie API, ale zamiast tego dobrze rozumiem związane z tym koncepcje.

Jeśli jest to grafika stanowiska związane których szukasz, wykazać wiesz 3D matematyki, i jak używać API dobrze (OpenGL czy D3D, nie obchodzi co naprawdę - po prostu upewnij się zoptymalizować go dobrze). Szczerze mówiąc, wszystkie interfejsy API w mniejszym lub większym stopniu sprowadzają się do tworzenia list rzeczy do rysowania, przesyłania ich i zarządzania stanem - i istnieją dobre sposoby i złe sposoby na robienie tych rzeczy, więc zrozum to.

W celu bardziej ogólnego programowania konsoli upewnij się, że znasz konkretne problemy związane z platformą osadzoną. Ograniczona pamięć (brak zamiany, słaba fragmentacja itp.), Surowe zasady radzenia sobie z awariami, ograniczona przepustowość we / wy, brak (lub ograniczona) możliwość łatania / aktualizacji itp.

Chodzi o styl kodowania, a nie o szczegóły.

Właściwie unikałbym XNA, jeśli szukasz pozycji komercyjnej, ponieważ w rzeczywistości nie jest tak przydatna na tej arenie.

JasonD
źródło
7

FWIW, uważam programowanie na Xbox 360 w C # / XNA za bardzo dobry substytut „prawdziwej oferty”.

Rozważać:

  • W XNA na 360 musisz zajmować się zbieraniem śmieci; w szczególności należy unikać dokonywania zbyt wielu, jeśli w ogóle, przydziałów na ramkę. Choć w C ++ na 360, że nie mają do czynienia z gromadzeniem śmieci (chyba, że masz do czynienia z językiem skryptowym, jak Lua), ale czy nadal chcą uniknąć wiele, jeśli w ogóle, przydziały na klatce.
  • Aby skorzystać z dużej mocy przetwarzania 360, musisz uczynić swój kod wielowątkowy. Jest to tak samo prawdziwe, jeśli nie bardziej, w XNA, jak w C ++, ponieważ chęć uzupełnienia kodu zarządzanego jest nieco mniej wydajna niż w C ++.
  • Oprócz wielu funkcji pomocniczych i klas, które zapewnia XNA, graficzny interfejs API w XNA, biorąc pod uwagę, że jest oparty na DirectX, jest bardzo podobny do DirectX / C ++ na 360.

Cudowną rzeczą w XNA jest to, że pozwala on mniej skupić się na kwestiach technicznych związanych z otrzymywaniem czegoś na ekranie, a więcej na tworzeniu gry. Po prostu stworzenie gry (dowolnej gry!), Która jest względnie wolna od błędów i działa z przyzwoitą liczbą klatek na sekundę - szczególnie w ograniczonym środowisku, które zapewnia XNA - da ci dużo doświadczenia, demonstrację, którą możesz zademonstrować, i miejmy nadzieję stopę w drzwiach.

Blair Holloway
źródło
5

Jeśli potrzebujesz umiejętności programowania na PS3, możesz poszukać:

  • znajomość architektury PPC; można to uzyskać, wykonując programowanie C / C ++ na komputerze PowerPC, czy to OS X na starym komputerze Mac G5, czy Linux na dowolnym komputerze PowerPC, w tym na PS3.
  • znajomość AltiVec; znowu możesz to uzyskać na komputerze Mac lub Linux na najnowszej maszynie PowerPC, ale znajomość SSE3 może być wystarczająca.
  • znajomość SPU: możesz ćwiczyć to tylko na PS3 używając Linuksa.

Nie nauczy Cię to, jak programować układ wideo PS3 ani jak korzystać z oficjalnych zestawów SDK. Chociaż do programowania wideo prawdopodobnie wystarczą ogólne umiejętności OpenGL i DirectX, również w przypadku niektórych HLSL. W Internecie znajduje się również wiele informacji i materiałów, których uzyskanie nie jest nielegalne (na przykład zmodyfikowana wersja Sony GCC dla PS3 jest objęta GPL).

Jeśli chcesz umiejętności programowania w X360, poszukaj:

  • znajomość architektury PPC: patrz wyżej

  • znajomość AltiVec: patrz wyżej

  • znajomość DirectX: możesz ćwiczyć w systemie Windows.

  • znajomość zestawu SDK dla konsoli Xbox 360: podobieństwa są takie, że ćwiczenie XNA bardzo pomoże.

Inne ważne umiejętności prawdopodobnie obejmują programowanie wielowątkowe (ogólna wiedza, ale także operacje atomowe, algorytmy bez blokady), przenośność (endianness, rozmiary wskaźników, funkcje sprzętu wideo itp.).

Tak więc, jak już wspomniałeś, uważam, że DirectX będzie najbardziej satysfakcjonującą umiejętnością, jaką możesz opanować. Pamiętaj jednak, że konkurencja również pójdzie w tym kierunku, a kilka dodatków może mieć znaczenie.

Źródło : Zrobiłem wszystkie powyższe i dostałem świetną pracę w branży.

sam hocevar
źródło
3

To pytanie (a raczej twoje aspiracje) potrzebuje zakresu. Obecnie w branży nie ma czegoś takiego jak „programista gier”. Jeśli nie zamierzasz wybrać bardzo małego studia lub programisty renderowania, DirectX lub OpenGl nie ma tak naprawdę znaczenia. To, co odróżnia konsole od komputerów, to ograniczona wydajność, ograniczona pamięć i problemy z wielordzeniowością. Bez względu na to, jakiej gałęzi programowania w branży aspirujesz, są one ważne, więc pokazanie, że wiesz, jak sobie z nimi poradzić, imo, pomoże. Poznaj swój C ++. Poznaj pułapki C ++. Wiedz, jak nie używać STL. Upewnij się, że kod jest niezależny od liczby klatek na sekundę, wielowątkowy i używa niestandardowych alokatorów pamięci. Podkreśl to oczywiście. Myślę, że naprawdę ważne jest to, że twoje demo zostało ukończone. Wielu programistów zatrzymuje się, gdy działa podstawowa mechanika, podczas gdy przeciąganie programowania w grach jest finalne - pokaż, że wiesz, jak to zrobić.

Większość studiów chce wiedzieć, jakie masz umiejętności, AI, rozgrywka, renderowanie, systemy, audio, fizyka i tak dalej. Spróbuj to rozgryźć. Bycie generalistą bez doświadczenia w branży będzie trudną sprzedażą.

Powodzenia!

Kaj
źródło
Świetna uwaga na temat wyboru obszaru, na którym należy się skupić.
jcurrie33
1

DirectX to świetny wybór. To najłatwiejsza wersja demonstracyjna dla nas, ponieważ mamy już komputery z systemem Windows. Jeśli zdecydujesz się skorzystać z opcji konsoli, wideo jest fajną demonstracją. Ale nic nie przebije patrzenia na Twój działający kod.

Spróbuj uruchomić swój kod na kilku komputerach, aby upewnić się, że zezwalasz na różne karty graficzne itp. W dzisiejszych czasach jest to w większości automatyczne, ale mogą wystąpić pewne różnice.

Seffyroff
źródło
0

Znajomość dowolnego interfejsu API 3D jest dobra. Nie powinno mieć znaczenia, czy jest to DirectX, czy OpenGL. Koncepcje 3D są wszędzie takie same, tylko interfejsy API są różne. Znajomość OpenGL nie stawia cię w niekorzystnej sytuacji dla kogoś, kto zna Direct3D podczas rywalizacji o pracę na XBOX-ie dla młodszych poziomów. Musisz wykazać się umiejętnością kodowania i rozumienia C ++ (lub dowolnego innego języka), standardowych bibliotek, struktur danych i algorytmów. Znajomość silnika gry, takiego jak UDK lub Unity, jest bonusem. To pokazuje Twoją umiejętność pracy z oprogramowaniem pośrednim, co jest powszechne w firmach produkujących gry. Flash został wykorzystany w rozwoju front-end, jest to także umiejętność, której nie można przeoczyć.

Najważniejsze jest to, że po prostu zbudujesz wersję demonstracyjną (w dowolnym języku), sprawisz, że będzie dobra i przejrzysz ją do końca. Powodzenia!

5 funtów
źródło