Autor Wątek: FPP shooter... bez tekstur!  (Przeczytany 10764 razy)

Offline really

  • Użytkownik

# Sierpień 04, 2006, 14:34:33
Pewnie chodzi ci o .kriegera (sorry jeśli przekręciłem nazwę), tam wszystko było generowane przy uruchomieniu. Kiedyś chyba nawet na jakimś party autorzy omawiali techniki użyte w gierce.

//Edit
Gierka nazywa się .kkrieger (przez dwa 'k') i zajmuje 96kb - nie wiem czy o to samo ci chodziło
« Ostatnia zmiana: Sierpień 04, 2006, 14:37:25 wysłana przez really »

Offline Mr. Spam

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

Offline Smetana

  • Użytkownik

# Sierpień 04, 2006, 14:45:47
No raczej na pewno, to jedyny taki projekt, o którym wiele osób słyszało. Sporo o technologii pisze na ich stronie głównej. Dodam, że sami autorzy przyznali, że nie stworzyli żadnej rewolucyjnej technologii, lecz połączyli te istniejące i udało im się 'zmieścić' tak wiele w tak małym pliku.

edit: Zastanawia mnie jedno. Jak skompiluje najprostszy program inicjalizujący dx to plik ma ponad 100kb, więc nie wiem jak oni to wszystko ograniczyli i jeszcze zmieścili te wszystkie generatory :/. Oświeci mnie ktoś? :)
« Ostatnia zmiana: Sierpień 04, 2006, 14:49:42 wysłana przez Smetana »

Offline really

  • Użytkownik

# Sierpień 04, 2006, 15:08:15
W którymś topicu była już o tym mowa, masz to dobrze opisane w Hugi Special Edition #1 - http://www.hugi.scene.org/fate.php?page=hugise - poszukaj artów o pisaniu intr (inter?) 4k i 64k

Offline Sebastian

  • Użytkownik

# Sierpień 04, 2006, 15:10:49
Zastanawia mnie jedno. Jak skompiluje najprostszy program inicjalizujący dx to plik ma ponad 100kb, więc nie wiem jak oni to wszystko ograniczyli i jeszcze zmieścili te wszystkie generatory :/. Oświeci mnie ktoś? :)

Też mnie kiedyś to zainteresowało i trochę posiedziałem przy tym za bardzo się nie zagłębiając. Wbrew pozorom nie jest to, AŻ taka magia  ;)

Okazuje się, że można otrzymać kilku kilobajtowy program inicjujący DX, który nawet coś wyświetla. Wszystko sprowadza się, niestety do wielu odpowiednich ustawień kompilatora, oraz co ważniejse, linkera w Visualu, a także pisania kodu w nieco inny sposób, niż robi się to standartowo. Dochodzą do tego liczne techniki naginania wyglądu pliku EXE, np. kosztem będzie brak zgodności z Windowsami z serii 9x.

Jeżeli zdecydujemy się wyłączyć domyślnie dołączany kod inicjujący wejście, to brak WinMain jest tylko początkiem gehenny. Musimy sami sobie przeładować globalnie operatory new oraz delete ( Stos alokacji podlinkowany do kernel32.dll ), a także rzutowania mogą wygenerować dziwne ostrzeżenia i błędy. Takich kruczków jest sporo, ale raczej nie zniechęcają, raczej motywują  ;D

W efekcie, to czy odbieramy HRESULT po każdym wywołaniu jakiejś procedury DXa od razu przenosi się na kilka, kilkanaście bajtów większego kodu, więc rezygnuje sie nawet z takich rzeczy ( bądź tworzy 2 pliki wkonywalne , normalny i safe-mode ).

Na koniec dochodzą jeszcze programy kompresujące pliki EXE takie jak np. UPX. No to by było tyle ile moge przekazać w krótkim poscie. W internecie można znaleść dokładnie jak się to robi.

Deus

  • Gość
# Sierpień 04, 2006, 15:13:03
.
« Ostatnia zmiana: Kwiecień 21, 2008, 20:37:18 wysłana przez Szalonuki »

Offline nameczanin

  • Użytkownik
    • devlog

# Sierpień 04, 2006, 15:15:37
Pewnie chodzi ci o .kriegera (sorry jeśli przekręciłem nazwę), tam wszystko było generowane przy uruchomieniu. Kiedyś chyba nawet na jakimś party autorzy omawiali techniki użyte w gierce.

//Edit
Gierka nazywa się .kkrieger (przez dwa 'k') i zajmuje 96kb - nie wiem czy o to samo ci chodziło

OT: Dokladnie o to mi chodzilo :)

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Sierpień 04, 2006, 16:00:06
Sebastian:
- w 4k obecnie nie korzysta się z visualowego linkera, tylko z crinklera :)
- w 4k brak new i delete nie jest problemem, bo rzadko korzysta się z dynamicznej allokacji pamięci (statyczne tablice rulez)
- w 64k można sobie pozwolić na dołączenie runtime'u z MSVCRT.DLL (visual 6.0), który jest standardowo praktycznie w każdym Windowsie XP i w którym jest wszystko, co potrzeba
- UPX ma cienką kompresję, znacznie lepiej sprawuje się kkrunchy, MuCruncher i UPack (a zwłaszcza to pierwsze) :)

Offline Sebastian

  • Użytkownik

# Sierpień 04, 2006, 16:50:37
Krzysiek K.: Mówiłem, że temat porzuciłem, więc na czasie już nie jestem :) Nie mniej jednak miło, że wzmiankowałeś nowe rozwiązania i trendy. Będę musiał nadrobić zaległości.

Offline Asmodeusz

  • Użytkownik
    • Bogumił Wiatrowski: Blog

# Wrzesień 27, 2006, 23:28:55
Gra bez tekstur rzeczywiście byłaby lżejsza, poza tym w trakcie działania oszczędza takie rozwiązanie znaczną ilość pamięci RAM, którą można przeznaczyć np. na wierzchołki, dodatkowe dane dla AI, dokładną fizykę. W końcu nie każdy gracz dysponuje kilkoma GB RAMu, a zaoszczędzone 100MB można użyć do zachowania 100MB mapy powierzchni do celów obliczeń fizyki (wiem, to zużywa olbrzymią ilość cykli procesora, ale można do tego celu wykorzystać dual-core / 2 niezależne procesory w komputerze).

Inna możliwość: jako gra online byłaby wręcz nie do pobicia - wszystkie informacje n/t grafiki wysyłane bezpośrednio przez net, klient zajmuje maksymalnie kilka MB.

Gdyby się komuś chciało napisać taką grę, chętnie zagram. Sam akurat szkolę się w używaniu tekstur, więc tego typu projekt w moim wykonaniu odpada.

Deus

  • Gość
# Wrzesień 28, 2006, 08:52:15
.
« Ostatnia zmiana: Kwiecień 21, 2008, 20:50:51 wysłana przez Szalonuki »

Offline h45h

  • Użytkownik

# Październik 13, 2006, 21:21:29
Ja tam nie widzę sensu nieużywania tekstur. Po pierwsze całe samplowanie tekstury przebiega 100% hardwarowo (w tych standardowych formatach ;D), więc wiele czasu na inne obliczenia by się nie zaoszczędziło. W obecnych czasach karty graficzne (nawet te średnich rzędów) są w stanie obsłużyć bardzo dużą ilość wszelakich danych, także i jednostek teksturujących jest już nieco więcej (conajmniej 4 :)). Podsumowując na teksturach nie zaoszczędzisz praktycznie nic (no, prócz miejsca w pamięci, ale od czego teraz karty graficzne mają po 256MB).

bez textur, stroche shaderów, bumpmaps, dobre światło, klimatyczny ciemny cell shading i mamy mroczny klimacik rodem z komiksów Silent Hill.

zawsze myślałem, że bumpmapy są teksturami i że ich przetwarzanie jest nieco wolniejsze od zwykłych map.