... przeciętny gracz powie pewnie że najwyżej plik *.doc dołączony do gry.
Ale kto obserwuje coś takiego jak demoscena, pewnie wie, że praktycznie wszystko.
Ostatnio robię przegląd demosceny z różnych platform, nie tylko PC. Chciałbym wrzucić dwa filmy, które znawcy sceny pewnie znają, ale które może kogoś zachęcą do zainteresowania się tematem:
Oba filmiki to nagrany zapis demka o wielkości 64k (kilobajty... tak) na PC. Czasami zastanawiam się, jak to możliwe, że w 64kb nawet przy megakompresji mieszczą się same sample czy tekstury użyte w tych demkach.
Gaia Machina - Approximate z 2012
https://www.youtube.com/watch?v=wir8sSDfW5Q
oraz
luma - mercury z 2014
https://www.youtube.com/watch?v=WBuoyegCeXI
Konkluzja jest taka, że twórcy takiego AC: Unity powinni brać lekcje optymalizacji u tych ludzi.
Oba filmy w HD. Miłego oglądania.
Pytanie tylko czy w tych 64 kilo jest też silnik renderujący?
[edit]
Pobrałem - to jest całość, z silnikiem. Wow, to ROBI WRAŻENIE. Choć oczywiście jest tam użyta mocna kompresja i dekodowanie, ale i tak WOW.
A co do sampli i tekstur. To zapewne ich nie ma.
Dźwięk może być w całości oparty o syntezatory (czyli wzory), VTS. Typowa "chipowa" muza, mieszcząca się w 1kb + odpowiednie, "dzisiejsze" efekty.
Tekstury również mogą być oparte o gradienty, wzory, cloudy itp.
Drugie demo wbrew pozorom bardziej "prymitywne", gdzie te wszystkie "kruczki optymalizacyjne" są aż nadto oczywiste. :)
A takie demka i demosceny to już od czasów prehistorycznych, dema na amidze zawsze robiły wrażenie :)
Drugie demo u mnie nie działa :(
W tym demku o ziemi jest trochę tekstur, w tym drugim głownie światła i plamy, czysta matematyka. Ale efekt jaki piękny. Wg mojej wiedzy zasady 64k compo są takie, że w 64k ma mieścić się WSZYSTKO, czyli kod, grafika i dźwięk. I teksty creditsów. :)
Tak, zupdateowałem posta. Jest tam silnik, wszystko. Na moim 9800gt się tnie :D ale i tak robi to na mnie wrażenie...
Faktycznie kilka tekstur raczej musiało się tam znaleźć.
Byla sobie swego czasu gra oparta w 100% o kod matematyczny :] (przypominala q3) to dopiero cudo bylo :] ( w sumie tak samo jak wizualizacje muzyczne oparte o c64 )
Coz przepadly czasy wykladow gdzie mielismy dostepne X cpu X pamieci i trzeba bylo rozwiazac problem :] nastapily czasy... "byle by dzialalo" w koncu mamy tyle mocy pod reka... kto by sie bawil w optymalizacje.... czy szukal
specjalisty od "algorytmow"...
W sumie systemy embeded ostatnim bastionem :)
ps. zaraz przeciez opengl wciaz zyje.... :)
U mnie też się tnie, dlatego lepiej obejrzeć na jutubie. Ale ciekaw jestem, czy nie tnie się dlatego, że może wszystko jest w trybie softwarowym, czyli generowane tylko przez procesor, bez grafiki? Ale pewnie nie.
A jeśli już wykorzystuje grafikę, to pewnie w trybie OpenG, którego gracze nie updejtują od czasów Quaka 2 ;)
Kurde momentami ten krieger ładniejszy od kłejka. Zobaczcie na dynamiczne oświetlenie gdy otwiera się przesłona drzwi ;)
96 kb!
Ah, pamiętam .kkriegera! Kolega mi go pokazywał gdzieś w okolicach 2005 r., nie mogłem uwierzyć, że to wszystko mieści się w parudziesięciu kilobajtach :) Podejrzewałem jakiś podstęp, że odnosi się do jakichś zewnętrznych bibliotek. Coś niesamowitego.
Ale ponoć właśnie ta kompresja wszystkiego na żywo i generowanie dźwięków i tekstur na żywo - to powoduje przerażające wymagania. Procesor liczy 10 x więcej rzeczy.
A jak masz 10 giga tekstur, to gra je sobie spokojnie zaciąga z dysku do pamięci, nie obciążając procesora.
No i przez was "marnuję" moce przerobowe na oglądanie tego:
https://www.youtube.com/watch?v=iRkZcTg1JWU
SZLAG BY WAS!
;)
Właśnie o demach 4kb(!) czy 64kb mówią w około 29 minucie. Mówią tam, że potrafią w 128 bajtach(!!!!!!!) upychać animacje 3D. Z silnikiem.
Interesowałem się jakiś czas temu demkami, ale to co wrzuciłeś mnie pozamiatało, WHAT THE FUCK.
Podobną reakcję wywołał post AnnataR (data ostatniego posta wskazuje na słuszność reakcji). Lurker? :D
4K compo też zrywa beret.
A obczajcie co w 64 potrafią zrobić Razor1911- znani pewnie każdemu graczowi z cracków :)
https://www.youtube.com/watch?v=IFXIGHOElrE
A co potrafi w 4k kompo?
Jeszcze lepsze:
https://www.youtube.com/watch?v=E3qn1RsJlUM
Yep, to optymalizacja - optymalizacja zużycia pamięci dyskowej kosztem zużycia procesora. Stosuje się tutaj technikę generowania proceduralnego - wszystko jest wygenerowane jest w kodzie, łącznie z grafiką. Nie ma tradycyjnych tekstur czy plików z dźwiękiem. Jest to cholernie zasobożerne pod względem zużycia procesora, trzeba się sporo nakodzić i nie da się wygenerować zbyt zaawansowanych tekstur i modeli przy pomocy czegoś takiego (tak, widzę Gaia Machine, ale tam na wielu rzeczy, obiektów nie ma, AI też nie).
Optymalizacja? Jeśli przez to rozumiemy czystą matematykę, to tak. Perfekcyjne wykorzystanie królowej nauk!
zapomina sie o jednej rzeczy to niskopoziomowe programowanie. Mowienie o optymalizacji, odnoszenie do gier i aplikacji nie ma najmniejszego sensu.
o tym ze to procedural, l systemy i inne fraktale wspomniano juz wcześniej
Lutz - gostek na filmiku ewidentnie nie używa assemblera - to jakiś pascal czy cuś?
@Lutz:
Żadne niskopoziomowe programowanie. Takie rzeczy można stworzyć w praktycznie dowolnym języku programowania (oczywiście, wtedy plik wykonywalny może nie zmieścić się w 64KB i mogą być problemy z wydajnością, ale da się).
I jest to forma optymalizacji - w tym procesie najczęściej przyspiesza się/zmniejsza coś względem czegoś. To nie jest taki tani proces jak niektórym się wydaje - że można obniżyć znacząco zużycie pamięci, czas wykonania i wydajność naraz. Może być optymalizacja pamięciowa kosztem np. wydajności, może być optymalizacja wydajności względem zużycia pamięci. Generowanie proceduralne nie jest tanie jeżeli chodzi o moc obliczeniową.
I co z tego, że 64 KB skoro te przykłady to taka zabawa, nawet grywalności to nie ma. Porównajcie to z normalnymi grami, tekstury drewna, obrazów na ścianach i inne rzeczy wyglądają ładnie, a to musi coś ważyć więc sama tekstura na obraz Ostatniej Wieczerzy nie zmieści się w 64 KB. Dodajcie dźwięki wystrzałów z broni, dźwięki chodzenia po podłodze, skrzypienie, wiatr, deszcz, burza, muzyka, dubbing dla postaci, cutscenki, AI, masa animacji, ekwipnek postaci, podnoszenie broni, fizyka, zniszczalne obiekty i masa innych rzeczy. Dlatego te 64 KB projekciki to zabawa by pochwalić się czymś, sensu większego to nie ma.
Nawet zwykłe programy, niezbyt rozbudowane mają z reguły więcej niż 64 KB.
Co wam tak na rozmiarach zależy? 30 mbitowe łącze to koszt ~50 zł, a za parę lat każdy będzie miał 100 mbitów za ~50 zł. Teraz gdy większość pobiera film kinowy w kilka minut (nawet nie w kilkanaście) rozmiary gier nie mają aż tak wielkiego znaczenia, bo i tak każdy w kilka godzin pobierze najnowszą grę ważącą wiele GB. Zauważcie, że nadal wychodzą gry 3d ważące po 200-300 MB, w early access są na razie.
Kompletnie tego nie kumasz i tyle :)
Parę lat temu byłbyś nazwany dzieckiem neostrady ;)
a ty parę lat temu zostałbyś nazwany przedszkolakiem
@Bardzo cwany
To jest trochę taka sztuka dla sztuki, w której zdecydowanie nie chodzi o porównywanie 64kb demówek z grami ważącymi ~ 50GB. Czy nie ma w tym sensu? Zdaje się, że niejedna osoba z demosceny znalazła zatrudnienie w branży gier, właśnie poprzez pokazanie swoich umiejętności w 64 kilobajtach.
takie osoby nawet nie musiały się reklamować, bo już pracowały od dawna gdzieś przez wiele lat i wątpię by płacili im stawkę głodową by musieli szukać roboty. To bardziej pokazywanie kto ma dłuższego wacka w tych 64 KB pseudo grach. A to wy porównujecie te pseudo gry z grami Ubisoftu i innymi, nie mówię o konkretnych osobach, ogólnie. I to była odpowiedź na posty tych ludzi
Tak się składa, że znam osobę, która właśnie dzięki takiemu „pokazywaniu wacka" znalazła zatrudnienie.
Ale co tam, wiesz lepiej.
Chyba EOT.
Ale to właśnie Ty je porównujesz i próbujesz wmówić wszystkim, że to bezcelowe :)
A ci goście fajnie się bawią, znajdują w tym relaks i potrafią skrzyknąć innych tego typu ludzi.
Były czasy, kiedy to właśnie te dema były najbardziej zaawansowane. Teraz to raczej forma pewnej tradycji, podtrzymania rywalizacji itp.
Czy to zawody na najdłuższego? W pewnym sensie tak, tak samo jak wyścigi, czy cokolwiek innego. Zawsze ktoś ma najdłuższego.
Żadne niskopoziomowe programowanie. Takie rzeczy można stworzyć w praktycznie dowolnym języku programowania (oczywiście, wtedy plik wykonywalny może nie zmieścić się w 64KB
czy ty rozumiesz o czym piszesz?
zmudix - pikny landszaft w tych 4 kilo. Patrząc na to, można uwierzyć w system proceduralnego generowania w grze No Man's Land.
A przykład tej gry, niech przemówi właśnie do Bardzo Cwanego. Bez takich umiejętności programistycznych ciężko stworzyć do gry np. właśnie systemy generowania proceduralnego. Ja się nie znam na programowaniu w asemblerze na tyle, żeby o nim pisać jakieś elaboraty, ale o tworzeniu gier jakieśtam pojęcie mam. Wierz mi - jedno z drugim ma większy związek niż Ci się wydaje.
Pssssst... i tak najwieksze wrazenie zrobily na mnie "Komputery" zbudowane w minecrafcie :]
ps. Programista ze mnie zaden :) co najwyzej moge wygrac konkurs na najpiekniejszy kod w perlu ;)
Zasadniczo w tytule jest błąd, bo te rzeczone 64kb to nie objętość kodu w postaci tekstowej, tylko skompresowany i skompilowany program ze wszystkimi materiałami :)
@up ale takbylo od czasowzx spectrum/ c64.
Kiedy robilem jeszcze gry na amige sprity byly 15 kolorow + transparent z palety 256. Ci ktorzy robili na atari st mieli jeszcze bardziej przesrane, ale dzieki temu nie mam problemow z optymalizacja grafiki.
Assemblera o ile dobrze pamietam da sie uzywac tez w jezykach wysokiego poziomu, sek w tym, ze w takich demach nie uzywa sie stadardowych bibliotek. Wszystko jest kompilowane pod konkretny cel. Stad jest to raczej Art (PRZEZ DUZE A) anizeli sztuka uzytkowa. I ja tak to traktuje (inni powiedza sztuka dla sztuki i tez beda mieli racje)
A co do materialow powyzej pewnej wartosci bardziej oplaca sie napisac procedure generujaca pattern, niz wrzucac bitmape "mmaterial"
Kiedy robilem jeszcze gry na amige Czapki z glow :) niestety za mlodym na takie piekne czasy :] eh gdybym urodzil sie 10 lat wczesniej
Pozwol ze zapytam (gdyz zawsze mnie ciekawilo ) jak wygladala sprawa z "Arcadowkami" ? pod wzgledem kodowania :) ?
(tzn co gra to zupelnie inna "plytka hardware" )
.kkriegera nawet kiedyś odpalałem.
Mój wtedy - technologicznie - konkurować z Doomem 3.
[33]
Ja niestety jestem juz stary. A robienie gier na amige w moim wypadku to byla grafika ;) Faktem jest ze glownie platformowki bo byly chyba najprostsze dla ekipy z ktora robilem. Mielismy jedno duze podejscie do infogrames z czyms w stylu spartacusa ale ekipa sie posypala przed czasem.
Kontakt z asemblerem to bylo atari i 6502 ale tam to glownie disasemblowanie a programowac i tak wolalem w action! tylko ze mialem wtedy 16 lat ;)