Autor Wątek: jak to wlasciwie jest z tymi konsolami...?  (Przeczytany 14883 razy)

RageX

  • Gość
# Styczeń 11, 2007, 21:05:13
a konsole "starej" generacji? bo z tego co wiem to, jak juz Esidar wspomnial, dla xbox'a 360 jest dostepny direct, dla ps3 opengl (ES zdaje sie). to dosyc bliskie narzedzia dla nas, programistow grafiki na PC'ty :) i wlasnie interesuje mnie jak wygladaja dev-pak'i dla ps2 i xbox'a

Offline Mr. Spam

  • Miłośnik przetworów mięsnych


RageX

  • Gość
# Styczeń 11, 2007, 21:09:22
a konsole "starej" generacji? bo z tego co wiem to, jak juz Esidar wspomnial, dla xbox'a 360 jest dostepny direct, dla ps3 opengl (ES zdaje sie). to dosyc bliskie narzedzia dla nas, programistow grafiki na PC'ty :) i wlasnie interesuje mnie jak wygladaja dev-pak'i dla ps2 i xbox'a

z tego co czytałem - dla ps2 : nieciekawie tzn. żadnych ogólnych standardów i niskiego poziomu abstrakcji, ale gcc zapewne jest dla ps1 był gcc

Offline fenix

  • Użytkownik

# Styczeń 14, 2007, 15:24:37
jeszcze trzeba uwzglednic wydawce i przejsc sito zeby mozna bylo cos wydac a to tez troche kosztuje...

// EDIT by Q8 - Dobra ten watek jest o czyms torche innym, wiec zazarta dyskusje o systemie PAL wydzielilem tutaj: http://forum.warsztat.gd/index.php/topic,2633.0.html
« Ostatnia zmiana: Styczeń 17, 2007, 14:41:10 wysłana przez Queight »

Offline human

  • Użytkownik

# Luty 18, 2008, 18:49:36
A jak to jest z portowaniem gry z PC na xbox 360 ?
Załóżmy że chce portowac gre napisaną w C++ (Visual Studio 2005) + directx 9.

Czy trzeba dokonywac jakis modyfikacji w kodzie, czy wystarczy skompilowac to w visualu i za pomoca jakiegos programu z devkita wrzucic exe'ka z calym kontentem na konsole ?

Offline yarpen

  • Użytkownik

# Luty 18, 2008, 19:40:09
Oj, tak to by bylo za fajnie. XBox to inna platforma. Zblizona, owszem, ale inna.

Offline human

  • Użytkownik

# Luty 18, 2008, 21:22:13
A co trzeba brać pod uwagę pisząc silnik na peceta, żeby później bylo jak najmniej problemów z portowaniem gry na xboxa 360?

Offline Złośliwiec

  • Użytkownik
    • Dark Cult

# Luty 18, 2008, 21:32:24
A co trzeba brać pod uwagę pisząc silnik na peceta, żeby później bylo jak najmniej problemów z portowaniem gry na xboxa 360?

Mniej więcej to samo, co ogólnie przy pisaniu wieloplatformowego kodu :). A jeśli chcesz znać szczegóły, to znajdziesz je pewnie w oficjalnej dokumentacji Xbox-a.

Offline Esidar

  • Użytkownik

# Luty 18, 2008, 22:01:54
Nie wystarczy skompilować :) Jest tam Windows i DirectX ale się różnią od wersji z PC. Niektóre metody w klasach DX przyjmują inne parametry więc kod z "biegu" się nie skompiluje. Są dziwne ograniczenia co do wyrównań adresów. Np. mipmapy o wielkości powyżej 64x64 muszą, się zaczynać od adresów podzielnych przez 4kB. Dlatego trzeba stosować mip-map interleaving czyli przeplatanie mip-map z różnych tekstur. DirectX oczywiście tym nie zarządza i trzeba samemu to robić. Musisz pamiętać że pamięć ma tylko 512MB (właściwie to 480MB bo resztę bierze system) bez swap-file'a, więc pamięć dość szybko się kurczy. Jest inny byte-order, więc pliki binarne wygenerowane na PC się nie wczytają tak poprostu na X360. Wydajność X360 też jakaś porażająca nie jest. Nie zoptymalizowany kod na pojedyńczym rdzeniu (pojedyńczym wątku) ma wydajność podobną do P4 1GHz. Więc trzeba zacząć używać AltiVec (odpowiednik SSE), wyrównywanie adresów, układanie danych tak aby ładnie się mieściły w cache, itp itd.

A to dopiero początek :) Ale za to ile przyjemności ;)

Offline human

  • Użytkownik

# Luty 18, 2008, 22:22:57
Wow. Dzieki Esidar. :)
A znasz może jakies linki gdzie mozna o tym szerzej za free poczytac, bo szukalem, ale ciezko jest cos znaleźć. Ty pewnie pracujesz w CD Project, to dostep do takich informacji masz ułatwiony, ale zwykly smiertelnik to ma raczej ciezko. Istnieje wogóle jakis devkit na xboxa 360 przeznaczony tylko do celów edukacyjnych dostepny za free ? Pewnie nie ale spytac zawsze mozna  :D

Offline Esidar

  • Użytkownik

# Luty 18, 2008, 23:34:12
Jest trochę dostępnych publicznych dokumentów :) Tutaj możesz znaleźć kilka prezentacji dot. zarówno programowania na kilka platform jak i optymalizacji kodu i grafiki pod Xbox360  http://msdn2.microsoft.com/en-us/xna/aa937787.aspx

A darmowego devkitu nie ma :)

RageX

  • Gość
# Luty 19, 2008, 01:14:48
No ja bym przy rozróżnianiu różnic między x360 a pc, zaczął od tego że to PowerPC jest, a nie x86 jak standardowe piece... stąd te różnice: byte-order inny, kod wyjściowy w ogóle inny, hehe.
Także jakbyś chciał pieca jak x360... możliwe. Tyle że, sprzętowo to taki Mac, oprogramowany przez Microsoft.

Offline vashpan

  • Użytkownik
    • Strona

# Luty 19, 2008, 01:18:42
Maki od 3 lat maja procesory x86 ;) ( a co ciekawe, binarki sa wieloarchitekturowe - x86/AMD64/PPC32/PPC64 - w najbardziej wypasionym przypadku ;p Tzn, ze plik wykonywalny posiada tak naprawde 4 wersje skompilowane dla kazdej z tych architektur. Nie wiem czemu MS nie zastosuje podobnego rozwiazania aby latwiej bylo przejsc z platformy 32 na 64 bit ? Oczywiscie starsze programy na PowerPC pod x86 rowniez da sie odpalic. OS X ma wewnetrzny emulator PPC - Rosetta. Swoja droga, calkiem wydajny. )

No dobra, ale co ja chcialem :D. Aha, taka mala dygresja, ze dla amatorow chcacych pisac pod x360 jest przeciez XNA. Wiadomo ze nie wszystkich to zadowoli, ale coz ;)


« Ostatnia zmiana: Luty 19, 2008, 01:21:31 wysłana przez vashpan »

Offline Krzysiek K.

  • Moderator
    • DevKK.net

# Luty 19, 2008, 03:16:19
Cytuj
A co trzeba brać pod uwagę pisząc silnik na peceta, żeby później bylo jak najmniej problemów z portowaniem gry na xboxa 360?
Jeżeli chcesz mieć najmniej problemów, to napisz silnik w XNA. :)

Cytuj
Nie wiem czemu MS nie zastosuje podobnego rozwiazania aby latwiej bylo przejsc z platformy 32 na 64 bit ?
Bo problem nie jest na tyle poważny, co kompletna zmiana procka. Jeżeli chcesz pisać różne wersje na x86 i x64, to nikt Ci przecież nie broni napisać stuba, który w zależności od potrzeb odpali właściwą binarkę. :)

Offline skoti

  • Użytkownik

# Luty 19, 2008, 08:45:18
Maki od 3 lat maja procesory x86 ;) ( a co ciekawe, binarki sa wieloarchitekturowe - x86/AMD64/PPC32/PPC64 - w najbardziej wypasionym przypadku ;p Tzn, ze plik wykonywalny posiada tak naprawde 4 wersje skompilowane dla kazdej z tych architektur. Nie wiem czemu MS nie zastosuje podobnego rozwiazania aby latwiej bylo przejsc z platformy 32 na 64 bit ? Oczywiscie starsze programy na PowerPC pod x86 rowniez da sie odpalic. OS X ma wewnetrzny emulator PPC - Rosetta. Swoja droga, calkiem wydajny. )

No dobra, ale co ja chcialem :D. Aha, taka mala dygresja, ze dla amatorow chcacych pisac pod x360 jest przeciez XNA. Wiadomo ze nie wszystkich to zadowoli, ale coz ;)



W MacOS programy są dystrybuowane w formie obrazów dmg (takie iso tylko z systemem plików hfs) razem z wszystkimi innymi plikami i wersje dla różnych arch musi zrobić i tak programista, więc niewiele to zmienia poza tym, że pakuje się do jednego pliku zamiast do instalatorów na każdą z arch poza większym rozmiarem instalki (bo instalujesz biblioteki i binarki dla kilku arch używając jednej ;p)