cdak és ami mögötte van
cdak nevű 4 kilobyte-os (!) demó 2010. augusztusából (PC) a Quite & orange csapattól:
4096 byte-ban ezt megírni (zenével, mindennel) hogyan lehetséges? Természetesen ötlet kell hozzá. Szeptemberben valaki beposztolta a kódot, ami az effektet elkészíti, persze ebből halandó nem fogja érteni, hogy mi a trükk. Némi vizuális bemutató:
1. lépés — végy egy 3D geometriát!

2. lépés — végy egy kockás mintát!

3. lépés — messed el a 3D geometriádat ezzel a kockás mintával!

4. lépés — add(min)

5. lépés — csináld meg ugyanezt kicsit másik mintával!

6. lépés — 3D-ben most itt járunk:

7. lépés — tegyél rá néhány véletlenszerű generált kocka textúrát!

8. lépés — erre tegyél egy kis edge detection effektet!

9. lépés — némi glow és a 3D scene felépítve:

10. lépés — főzd készre további post effekttel!

(Aki nagyobb méretben kíváncsi a képekre, ide kattintson.)
A demoscene hatalmas dolgokra képes. Íme egy archív felvétel 1993-ból, amikor a Future Crew éppen a “Second Reality” című híres demóját véglegesítette Trug (egyik tag) lakásán. Ez a demó volt az első olyan alkotás, ami véget vetett az Amiga dominanciának és elindította a PC egyeduralmát a játékok és demók terén is:
Bártházi András
Respect, ez igen kemény.
hornos
első értelmes poszt
angelday
Első értelmetlen hozzászólás.
Nike
Second Reality még ma is nagyon jó demó, pláne akkor régen! Mindenki kész volt, amikor látta.
3aTi3
lélegzetelállító.. komolyan.
riviera
Sajnos a PCs demókkal (legalábbis számomra) az a baj, hogy míg a C64/Amiga platformokon vannak/voltak a hardvernek limitációi, PCn “sajnos” nincs. Így lehet dizájnos faszomságokat csinálni, de programozási kihívás az nincs sok benne.
Én akkor vesztettem el végérvényesen az érdeklödésemet ebben az ügyben, mikor találkoztam egyszer egy pár évvel fiatalabb sráccal PC demók kapcsán, és kiderült, hogy turbo pascalban nyomták a “kódot” — és mikor kérdeztem, miért, azt mondta, hogy mert így is gyors.
És erre igazából tényleg nem tudtam mit mondani, mert tényleg az volt.
Mindegy, nekem a C64/Amiga azok “demoképes” platformok voltak, a PC nem az (kivéve ezeket a 64k/4k demókat, ezek teljesen egyfelöl teljesen elmebetegek, másfelöl meg kurva nagy risztekpa — kár hogy nem vágom ezt a z80 vagy milyen assemblyt, de egy fél órát így is elnézegettem annak a skacnak a kódját, aki 256byteban (!) írt tetrist).
A nagy risztekpa pedig azért megy, hogy mindenki lássa, hogy nem kellenek mega/gigabájtok, hogy rendes programot írjunk. Ebben a “mai világban” ez fontos szerintem.
Olyan gépek vannak alattunk, hogy _nem érjük fel ésszel_ a teljesítményüket, és az egész el van pazarékolva a különféle absztrakciós rétegekre, felesleges API layerekre, stb. stb. (Én ezért pl. a Microsoftot hibáztatom, ök terjesztették el szerintem ezt a mentalitást, de javítson ki bárki, ha tévedek, ill. lehet hogy amúgy is bekövetkezett volna. Szóval nem flame-nek szánom.)
hornos
z80-ból nem lesz skynet
9b0
én ugyan nagyon szeretem a haujoob / farbrausch típusú demokat (ez a cucc az orange-tól azért eléggé ez a kategória, bár ők régi motorosok), azért azt mindenképp hozzátenném, hogy a 3D gyorsítók elterjedése óta a demok kevésbé érdekesek technikai szempontból, inkább csak a látvány számít – amiben a renderelt animációkkal elég nehezen versenyeznek, de még a játékok is pipálják őket lefele szépen. maga a kód már csak olyan algoritmusokat tartalmaz, amik objektumokat / hullámformákat / texturákat generálnak, és ezeket összekötik minimális trackerekkkel / kameramozgásokkal (ezek általában szintén procedurális dolgok). nagyobb demoknál meg a zene sem különösebb skill, mert pont ugyanolyan hagyományos technikával készülnek, mint bármely más zenésznél, és pont ugyanúgy egy mp3 sáv az egész (nem úgy, mint a 2nd Realityhez megírt Scream Tracker, vagy a Triton Crystal Dream 2-jéhez megírt FT2). nem mondom, hogy 4K-ban ezt az egészet megcsinálni egyszerű, de sokkal többre értékeltem régebben az olyan dolgokat, mint pl. a Complex – Bill G force 64 K introja ( http://www.youtube.com/watch?v=-OkQ3znOIk0&feature=related ), ahol a megjelenítési rutinokat is bele kellett gyömöszölni a kódba a sok hülyeség mellé. farbrauschnál azért van olyan, amitől leesik az állam, mert szerintük csak procedural texturáknak van értelme, és hát beszarás, miket hoznak ki belőlük látvány szinten:
http://www.youtube.com/watch?v=k_oTQd93eRI
H2CO3
Ezekszerint én örökké fogok élni?
oribali
Ti éreztétek a földregést???? :O
pxl
generate_random_very_nice_3D_fx(sphere(0.8),cube(1),sphere(1.2));
payskin
Egyrészt a Future Crew videót végigmosolyogtam, jó volna egy feliratozás hozzá, hogy miről beszélgetnek, meg ki kicsoda. Az elég valószínű, hogy Skaven tolja a ScreamTrackert, de azon gondolkoztam, hogy 1993-ban mi a franc szólaltatta meg ezt a zenét ilyen minőségben? Brutál jól szól.
A másik meg, riviera, gondolom ez a pascalos sztori ilyen “az idő mindent megszépít” dolog lehet, mert a Pascal sok minden volt, csak gyors nem. Ha valamit gyorsan kellett benne intézni, akkor azt direkt assemblyben kódoltuk már akkor is — más kérdés, hogy erre a Borlan Pascal lehetőséget adott, ki sem kellett lépni belőle.
version
egyetertek rivieraval , ha hozzaszamoljuk a driver dll-eket maris nem 4k-s a demo , ez igy teljesen ertelmetlen
persze hogy ezt a vonalat erositik mert igy kis befektetessel lehet compokat nyomni, egy amiga szintu demo manapsag 100 millio ft-ba kerulne, profi koddal , profi 3d graffal , nem beszelve arrol hogy akik tenyleg mesterei ezeknek a szakmaknak nem ilyen hulyesegekre pazarolja az idejet
hornos
amigából nem lesz skynet
tomzorz
“3. lépés — messed el a 3D geometriádat ezzel a kockás mintával!” akarod mondani “négyzetrácsos”
riviera
@payskin a pascalos srác nem “profi” volt, de pl. egy interferencia effektet megírt pascalban, és az teljesen jó sebességgel futott (tán 486-oson). Mondjuk a képfrissítéssel nem lehetett asszem összeszinkronizálni (nemtom, pc-n lehetett-e ilyet egyáltalán), de persze régen volt a dolog, meg a lényegen nem is változtat.
Mondjuk ezeknél a mai 4k demóknál mindig elfelejtem, hogy a 4k-ba nem tartozik bele a 3d render engine
(4k-ba amúgy meglepö mennyiségü kód belefér, csak hozzá vagyunk szokva hogy mindent megabyte-ban mérünk)
Amúgy félreértés ne essék, nekem nem a driverek meg dll-ek ellen van kifogásom, hanem hogy manapság szó szerint több ezres szorzó van mint processzorteljesítmény, mint memória szintjén, és használni nem gyorsabb, mint mondjuk egy amigát, söt.
A legutolsó Visual C++ pl. felinstallálva 1 giga helyet foglal — és a legdurvább, hogy ez már fel sem tünik senkinek. Az hogy egy szaros Word/Excel szintén ennyi helyet foglal (gondolom) az nem elképesztö?
Ja egen, a 256byteos tetrises csávó a rrrola, az ö cuccaira érdemes rákeresni. Ö DOS alatt nyomja, úgyhogy semmi OpenGL/DX API.
Na most már kimonologizáltam magam, megyek vissza Hellraisert nézni.
riviera
@9b0 a Farbrausch demo az tényleg meleg pite (azt ne mondd, hogy 4k!
még 64-nek is kemény)
Meg még annyit hadd szakmázzak, hogy ha esetleg valakit érdekel a procedurális alapú 3d animáció, akkor a Houdini c. programot nagyon melegen tudom ajánlani. (Meg hogy a Maya egy rakás szar, azt csak a saját jóérzésem végett hadd írjam ide, jajj-de-jólesett! bocs
) Na mostmár tényleg vége a komment-pollúciónak részemröl.
9b0
nem, az nem 64K, hanem nagyobb méretű cucc (már csak a zene miatt is: az nem procedural, hanem mp3). viszont nekik volt anno egy játékuk, a kkrieger, ami 96K, és erősen alázta grafikára az akkoriban XBOX-ra megjelent Doomot (kb azidőtájt kattantak rá a procedural texturákra).
http://www.theprodukkt.com/kkrieger#20
nekem nincs olyan kártyám, amin fut, de egyszer kipróbálnám… bár inkább örülnék, ha végre egy igazi bullethell shmupot fejlesztenének, és nem a chorensha és a hydorah lennének a két értelmes hasonló játékok, amikkel tudok játszani az irodában a kollégám pc-jén.
9b0
ja… a debris is csak 177 Kb volt anno:
http://www.youtube.com/watch?v=wqu_IpkOYBg
H2CO3
Ha már a kilobájtoknál tartunk: nem tudom, az AppStore-fejlesztők nem értenek-e a GCC-hez, vagy mivan, de ha kikapcsolnák a -g opciót, akkor nem generálna rögtön tízszeres mennyiségű debug kódot a kompájler… Így simán 13kb-ból megvan egy app (ha nem nézzük, hogy vannak ~40 megás dylibek, pl. UIKit), úgy meg egy helówörld is soxáz kB. Tényleg az elkényelmesedéssel van a probléma, mivel ha az Xcode helyett maguknak kellene Makefile-okat írniuk, rögtön meggondolnák, hogy mit tesznek bele.
version
H2CO3 : kicsit mult szazadinak tunik ez a makefilozas, a mai technologiat is gyotrelemnek erzem , mar regen ugy kellene programozni mintha az ember rajzolgatna , megfogod az egysegesitett kodbazisbol a kivant programszeletet es behuzod a program grafodba , nem irogatni mint valami idiota
csakhat amikor a visual studiot a m$ ingyen adja hogy a konkurencia meg almaban se gondoljon sajat forditoprogram keszitesre, eselytelen a fejlodes igenyelt uteme
Bandroid
Érdekes. Én vártam a szörnyet a végén.
gabro
Gyá, Skaven a scream trackerrel, mekkora koczkulat arc már
. Nagyon kemény hiánypótló videó. Annak idején a zenéjét fölvettük kazettára és úgy hallgattuk. Valószínűleg sokmindenre gondoltunk közben, de arra biztos nem, hogy a zeneszerző egy szőke vastagszemőldökű gyerek sztk-szemüvegben.
más:
Tegye fel a kezét, aki emlékszik még a titkos részre a second realityből.
Zila
@version: Google csinált egy ilyen fejlesztőeszközt, Android alkalmazásokat lehet vele csinálni:
http://appinventor.googlelabs.com/about/
mukinyúl
A 2nd realitytol a mai napig kiraz a hideg (jo ertelemben), hogy “es ezt igy hogy?”. Maxi risztekpa a future crewnak.
csiga
Nem tudom a pascal-os programban mennyi volt ténylegesen Pascal, mi anno haverokkal szintén Pascal-ban toltuk, ami köbö annyit jelentett, hogy begin asm és ment bele az assembly. Kurva jó volt az interface, könnyen lehetett paramétereket átadni, memóriaterületre hivatkozni, gcc alatt a mai napig kiver ezektől a víz.
sabe
5:35 -nél az FC videóban !! ott a füzetben az arc a demóból!
riviera
@H2CO3 @version Ehhez annyit tudnék hozzáfüzni, hogy a gcc-vel legalább lehet pár kilobyte-os végeredményt produkálni ha jól beállítod, de MSVC-vel még egy helloworld se jön ki 32 kilobyte alatt. A Makefile meg egy kicsit tényleg oldszkúl (de nem az ötlet hanem a megvalósítás) — mi nemrég álltunk át scons-ról waf-ra (amit egy magyar skac fejleszt, és sztem kurva jó
). Nade nagyon offolok már megint.
version
riviera: matematikailag bizonyithato hogy multi processzoros kornyezetben a JIT nyelvek gyorsabbak a nativnal , igy az assemblynek meg a c++-nak meg vannak szamlalva a napjai , igaz ugyan hogy ez a sebesseg novekedes 8 processzor folott jelentkezik
de hat mar a mobilok is lassan 4 maggal jonnek ki ebben az evben…
eFi
version: nem akarok én kötekedni, de mutatnál egy URL-t, ahol ezt valaki matematikailag bizonyítja?
sabe
csatlakozom eFi-hez (érdekelne a téma)
payskin
“Nem tudom a pascal-os programban mennyi volt ténylegesen Pascal, mi anno haverokkal szintén Pascal-ban toltuk, ami köbö annyit jelentett, hogy begin asm és ment bele az assembly.”
Erről beszéltem.
ern0
@version Lehet, hogy most döntöm össze a világképed, de a JIT-es rendszereket (intermission: nem a nyelv JIT, hanem a futtató környezet) is natívban megírt kód futtat. De baszki, hát nehogy már neked kelljen magyarázni.
Szerintem qra nem ezt akartad mondani…
fatso
@H2CO3 az AppStore-t az Apple fejleszti, es nagy valoszinuseggel -g kapcsolo nelkuli forditas fut az eszkozokon. Ugyanigy a Release is kod is -g nelkul fordul, hacsak nem piszkalod, sot az -mthumb kulon ki kell szedni, hogy gyors kod forduljon ne kicsi.
@riveira: x86 assembly amire gondolsz.
A demoscene-t mar `90es evek vegen vegen sirattak, es lasd megis keszulnek erdekes dolgok otletben es technikaban iden is: http://scene.hu/news.php?extend.1203 (pl Agenda Circling Forth).
Az meg hogy egyre erosebb a vas nem fetetlen szab hatart a kreativitasnak, max mar nem a forgo kocka a nehez.
A post temajaban csemege lehet:
http://exceed.hu/h7/woman.htm
Kitekintesnek:
http://www.creativeapplications.net/
greg
a végén előszedem az asm94-es fotókat és beszkennelem.
a future crew-s srácok nagyon jó fejek voltak, igazából tök ismeretlenül felajánlották, hogy ha nincs szállásunk (akkor volt talán az atlétikai eb és semmit nem találtunk amit ki tudtunk volna fizetni) akkor kempeljünk a parti előtt náluk. elvittek ide-oda bulizni, meg ott csöveztünk egy estét Gore-nál. úgy látszik a finn kockáknál standard kiegészítő a fekve nyomó pad, mert nála is találtunk ilyet, mint a fenti filmben. valahogy felénk kevesebben voltak akik a pc + jamo hangfal kombó mellé még két-három tárcsa súlyt is kéznél tartottak, hogy “amíg a gép a kódot fordítja, addig tolok a súlyokba párat”…
H2CO3
Fatso: nem a /Applications/AppStore.app-ra gondoltam, hanem a 3rd party appokat, amelyek láthatóan felesleges megabájtokat tartalmaznak…
rept_ai
riviera: azert azok az API-k nem annyira feleslegesek – nelkuluk most nem lenne pld 3d rendereles olyan platformokon, ahol mondjuk az elerheto GPU tipusok szama nagyobb, mint egy. Regen, mikor meg csak a linearis framebufferbe irogattuk a byteokat, meg elment, hogy $a000-on van a 320×200, aztan uccu, de mar 1-2 evvel utana is kezdett horrorba atfordulni a dolog. SVGA-t akarsz? semmi gond, tridenten modszer “A”, tseng-en “B”, oak-on “C” – biztos sokan lattak mar itt Terror News inditokepernyot, kethasabnyi videokartya listajaval, hogy nesze bmeg, valassz
Utana jott a vesa, mint szabvany, ezt mar tekinthetjuk API-nak, orultunk is neki, mint kutya a farkanak. (vagy macska?)
Ajanlo rovatomban egy mostanaban felkapott, uj effekt eddigi legjobb megvalositasa kovetkezik. Maga a demo kicsit oldschool design teren, de a mandelbulb allat:
http://pouet.net/prod.php?which=56458 (quadcore ajanlott, de nem kotelezo)
angelday
Megnéztem a demót (YouTube-on), indokolatlan.
Annak idején a demoscene teenagerek terepe volt, akik átmentek az industry-ba. Erről a demóról nem tudom ugyanezt elképzelni. Kérdésem az, hogy az ilyeneket kik csinálják? És ha igen, nincs elég munkájuk a napi életben, nekiállnak physics simulation valós idejű megírásának, meg ezek a szarok? Indokolatlan.
rept_ai
Azert csinaljak, mert szeretik csinalni. Jo sok melo, de nagy elvezet osszerakni egy ilyet, es utana mutogatni a haveroknak, meg a tobbieknek a scenen. Nem mellesleg egy demoban ki lehet probalni olyan otleteket, effekteket, amit a napi meloban nem feltetlenul, mert vagy nem praktikusak, vagy ott feleslegesek, vagy egyszeruen maceras lenne beleeroltetni egy letezo keretrendszerbe.
A demoscene egy hobbi.
angelday
Ezek a csávók viszont nem tinik, ugye?
rept_ai
Nem, ezt a demot nem tinik csinaltak.
HoBa
“3. lépés — messed el a 3D geometriádat ezzel a kockás mintával!” akarod mondani “négyzetrácsos”
Akarod mondani: metszed
HoBa
Kedd 0:08-kor miért kell még hétfőt mondani szervernek…
Debugging needed…
megélhetési bűnöző
és ez?
http://www.scene.org/file.php?file=/parties/2007/breakpoint07/demo/fr-041_debris.zip&fileinfo