Programme < 100k
-
Hallo,
ich hab schon ein paar Mal Programme gefunden, die eine erstaunlich kleinen Größe haben. Das Spiel kkrieger benötigt z.B. gerade einmal 96k Speicher.
Wie schafft man es das Programm auf so einen winzige Größe zu packen? Das Spiel ist wahrscheinlich sehr stark gepackt/komprimiert - bei mir braucht das zumindest eine gefühlte halbe Stunde bis der Ladebalken mal verschwunden ist. Aber ich kann mir das einfach nicht vorstellen, die ganzen Texturen/Soundeffekte/Objektkoordinaten auf so eine geringe Größe zu bekommen.
Hat sich schon mal jemand damit befasst und kann mir sagen wie man so etwas hinbekommt?
-
Da gibt es eine ganze Szene, die sich mit solchen Dingen befasst: http://en.wikipedia.org/wiki/Demoscene http://en.wikipedia.org/wiki/Demo_(computer_programming)#Size_restrictions
Die geringe Größe erreicht man zB in dem man "Texturen/Soundeffekte/Objektkoordinaten" im Programm berechnet und nicht vorgefertigt abspeichert.
-
Erstmal wird nur das nötige mitkompiliert. Die Texturen und Modelle sind "prozedural" hinterlegt, also nicht die Textur als einfaches Bild gemalt und gepackt, sondern über "Erstellungsanweisungen" (nur irgendwelche Koeffizienten für irgendwelche Formeln) abgelegt. Genau das macht der lange Ladebalken am Anfang, eben aus den "Erstellungsanweisungen" eine reale Textur berechnen. Am Ende wird das binary halt noch irgendwie gepackt.
Lass dir das nochmal von einem erklären der sich damit auskennt.
-
Danke für eure Antworten. Hab jetzt über das Schlüsselwort "Procedural Content Generation" Informationen gefunden, mit denen ich weiterarbeiten kann.
-
rein soundtechnisch gesehen ein Vergleich zwischen Samplern und Synthesizern. Im Rechner: Midi-files vs Wav-Files. Damals(eigentlich wie heute) als der Arbeitsspeicher noch sehr klein war (so zwischen 64k und 16MB) hatte man sich Psychoeffekte (wie in MP3s oder beim Fernsehen oder im Radio) zunutze gemacht.
Heute werden komplette Instumentengattungen über ausgefeilte Syntheseverfahren und -Modelle berechnet. Gerade die neuren Rechner (>1000ghz) bieten tolle Möglichkeiten und Automationen für komplexere Berechnungen mit vielen Stimmen (Morphing oder Echtzeitdigitalfilter, Effektplugins und so Zeugs)Die Demoscener wissen aber womöglich oft selber nicht mehr genau, wie sie was Gezeigtes gemacht haben. Und in Spielen Morrorwind und anderen find ich es extrem abtörnend, wenn die Gegner oder Freunde das gleiche Gesicht haben oder schlimmer noch, wenn ganze Gegnergruppen oder Wachgruppen nur aus einem Gesicht bestehen...;)
ganz nette infoseiten:
http://www.demoscene.info/die-demoszene
http://www.pouet.net/
(Stichwort 4kb)(naja, und naklar: http://de.wikipedia.org/wiki/Demoszene)
Das tolle bei Wiki ist ja, das man auch viele Grundlagenartikel zu spezifischem Coder Know How finden kann.
-
nachtfeuer schrieb:
Die Demoscener wissen aber womöglich oft selber nicht mehr genau, wie sie was Gezeigtes gemacht haben.
Ist nicht verwunderlich. Heutige Software ist so komplex, da muss man irgendwann ja den Überblick verlieren.
Eine nette Seite ist z.B. noch pcg.wikidot.com. Da sind nur leider keine Source-Codes dabei. Kennt jemand noch ne Seite, auf der man Sources findet? Am Anfang ist es nämlich schwer nur anhand von Artikeln und Algorithmen sich einen funktionierenden Code daraus zu basteln.
-
Antoras schrieb:
nachtfeuer schrieb:
Die Demoscener wissen aber womöglich oft selber nicht mehr genau, wie sie was Gezeigtes gemacht haben.
Ist nicht verwunderlich. Heutige Software ist so komplex, da muss man irgendwann ja den Überblick verlieren.
Yep. Hilft ein bißchen: Open Source, gute Doku, einfache + leistungsfähige Entwicklungs/Reversertools (wie Fasm oder Ida Pro und co), Gute Asm-Bücher, bessere Ausbildungsbasis für Kinder, Linux, braindebugging, socialdebugging und -coding, Verzicht auf live reinschluderhacking, usw.
Antoras schrieb:
Kennt jemand noch ne Seite, auf der man Sources findet?
Suchst du sowas hier?
http://www.doomworld.com/idgames/
(oder eher sowat?)
http://sourceforge.net/projects/rocket/
-
http://in4k.untergrund.net/index.php?title=Main_Page
Hast du dir denn einfach mal das Toolset angeschaut, mit dem kkrieger gemacht wurde? Ansonsten koennte ich dir seitenweise davon schreiben, aber was erstens hab ich nicht soviel Zeit und zweitens weiss ich nicht, was du hoeren willst und verstehen wuerdest. Ansonsten war ich hier http://www.devmania.org/devmania-2009/videos/ mal an einem Vortrag beteiligt, der aber zu ueber 50% aus Videos abspielen besteht.
-
oder hier wäre auch noch eine Auswahlseite mit Know How (Klangsynthese auf höherem Level):
-
Ich hab mir die Tools mit denen .kkrieger erstellt wurde mal angeguckt, aber mehr auch nicht. Hat mich auch nicht wirklich interessiert, da ich wissen will wie die Algos funktionieren mit denen man z.B. aus ein paar Bytes ein komplettes Bild berechnet. Und dafür scheinen mir fertige Tools ungeeignet.
Interessant sind für mich am Anfang daher Codestücke in Umfang wie man sie z.B. von nehe.gamedev.net kennt. Also, falls ihr da etwas kennt.
Ich muss mir da aber sowieso erst noch einen Überblick über das Thema verschaffen. Ich denke mit der Zeit findet sich da schon der ein oder andere Beispielcode. Man muss nur lange genug suchen können.
-
Wie gesagt, ich weiss ja ich nicht, was du hoeren willst und verstehen wuerdest. Ich wuerde sagen, aus den Beispielprojekten koenntest du lernen wie es geht. Aus dem Code von Photoshop hat auch noch nie jemand gelernt, wie man Bilder macht. Die NeHe Codestuecke sind vielleicht 100-200 Byte gross, von daher hat das nicht viel miteinander zu tun. f'`8k
Gruß, TGGC (der kostenlose DMC Download)
-
schreib ma bitte ein buch darüber
-
Alle kleinen Demos arbeiten heute mit Exe-Packern, teilweise in speziellen Linkern (z.B. Crinkler).
Schau Dir mal die Infos und Demos von Inigo Quilez an (Programmierer bei RGBA, z.B. 4K Demo "Elevated" - hat in der Kategorie 4K PC-Intro bei der Breakpoint 2009 gewonnen, und gehört imho zu den ästhetisch gelungensten Micro-Intros).
http://www.iquilezles.org/www/
Hier direkter Link zu den 4K-Demo-Templates:
http://www.iquilezles.org/www/material/isystem1k4k/isystem1k4k.htmhttp://www.pouet.net/prod.php?which=52938
http://www.crinkler.net/