Musik-Beschleunigung gesucht!!! Wer kann gut Scripten oder kennt was?
Yooo, wieder einmal ist mein RGSS nicht gut genug 
Folgende Probleme... Problem 1 (wichtig):

Folgende Probleme... Problem 1 (wichtig):
Jeder kennt ja das "Anti Event Lagg Script". Es berechnet ja alle lokalen Events im Vorraus, um so Ladezeiten zu verkürzen und so folglich das Spiel zu beschleunigen. Feine Sache, nutz' ich auch liebend gern', ABER...! Bei meinen Games verwende ich viele MP3s, und diese auch mit Intro (ME) und Hauptschleife (BGM). Beim Übergang von BGM zu BGM, oder (am extremsten) von ME zu BGM entstehen dann kleine "Löcher". Die sind nicht nur unschön, sondern stören richtig, und zerren auch mies an der Leistung... ~.~ Meine Frage also: Kennt jemand ein Script (oder hat die Freundlichkeit und Fähigkeit ein solches zu schreiben), dass Audiodateien bereits im Vorraus liest (z.B. 5sec), damit diese Ladelücken wegfallen?
Problem 2 (weniger wichtig):
Gehen wir mal davon aus, es ist grad i-eine Szene, in der eine BGM läuft. Da kommt ein Palaber. Wenn das Palaber vorbei is', soll ein Übergang entstehen, in Form einer ME, um zum Kampflied (BGM2) zu gelangen. Es ist ja sichtlich normal, dass eine BGM erst startet, wenn die ME davor zu Ende ist. Meine Frage nun: Kennt jemand ein Script (oder schreibt hier jemand netter Weise ein solches), dass es ermöglicht, dass MEs erst abspielen, wenn die BGM davor am Schleifenende ist (also kurz vorm Neustarten)? Und am besten noch schalterabhängig, damit in anderen Situationen eine ME weiterhin spontan reinknallen kann... o__O
Danke im Vorraus!
Evrey
P.S.: Weiß hier jemand, wo das "Musik Verschlüsselungs Script" ist? Hier war mal ein solches, aber ich find's nicht. Habe nämlich viele lizenzierte Lieder bei einem meiner Projs, doch will sie nicht rauswerfen. Also muss ich die Lieder quasi schützen, um keinen Ärger mit'm Copyright zu machen.
Problem 2 (weniger wichtig):
Gehen wir mal davon aus, es ist grad i-eine Szene, in der eine BGM läuft. Da kommt ein Palaber. Wenn das Palaber vorbei is', soll ein Übergang entstehen, in Form einer ME, um zum Kampflied (BGM2) zu gelangen. Es ist ja sichtlich normal, dass eine BGM erst startet, wenn die ME davor zu Ende ist. Meine Frage nun: Kennt jemand ein Script (oder schreibt hier jemand netter Weise ein solches), dass es ermöglicht, dass MEs erst abspielen, wenn die BGM davor am Schleifenende ist (also kurz vorm Neustarten)? Und am besten noch schalterabhängig, damit in anderen Situationen eine ME weiterhin spontan reinknallen kann... o__O
Danke im Vorraus!
Evrey
P.S.: Weiß hier jemand, wo das "Musik Verschlüsselungs Script" ist? Hier war mal ein solches, aber ich find's nicht. Habe nämlich viele lizenzierte Lieder bei einem meiner Projs, doch will sie nicht rauswerfen. Also muss ich die Lieder quasi schützen, um keinen Ärger mit'm Copyright zu machen.
-
Werbung -
1plus3
-
Nuuuhminaaah
-
compétences(Dieser Tab ist rein satirisch.)mes compétences
max.
Maps machen
Musik machen
Scripts machen
Story ausdenken
Pixeln und so
Events proggen
-
mes projets-
Silentium
Name: Silentium
Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)
Story
NPCs
Scripts
Ressis
Maps
Gesamt(3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²
(Die Tabelle erfüllt lediglich satirische Zwecke.) -
OnyxEine in C++ implementierte, modulare, plattformunabhängige, virtuelle Maschine. Die Test-Version ist bereits halb fertig. Ab dann gibt es vielleicht mehr Infos. Sie soll die auf dem ersten Blick LISP-artige und eigens dafür konstruierte Sprache Obsidian ausführen können. Experimentell wird auch ein Lua-Compiler für Onyx gebaut. Ziel ist eine leistungsfähige, virtuelle Maschine für beliebige Scriptsprachen. Theoretisch gesehen müsste man bloß noch einen kompatiblen Compiler schreiben, der Quellcode jener Sprache in Onyx-Assembly, oder direkt in Onyx-Bytecode übersetzt. Ob die jemand nutzen wird, ist eine andere Frage und nur ein sekundäres... nein, eher tertiäres Ziel dieser VM. Primär dient es mir lediglich dazu, mein Verständnis von Hardware, ISA, und Assembly zu vertiefen, sowie eigene Grenzen auszutesten.
Warnung!
Das Entwickeln einer virtuellen Maschine oder Programmiersprache (im wahnsinnigsten Fall beides) ist eine höchst komplizierte Tätigkeit, aus der viel Frust und Hirnmatsche hervor gehen. Sollte sich dennoch ein ähnlich wahnsinniger finden, der sowas zusammen schustern will, so lege ich ihm/ihr die folgenden Bücher ans Herz:- Compiler - Das Drachenbuch [978-3-8273-7097-6]
Dieses Buch schlachtet ausführlich und leicht verständlich die Grundlagen bis hoch zu den Experten-Techniken des Compilerbaus aus. Es fängt mit der Automaten-Theorie und formalen Sprachen an, arbeitet sich durch Analysetechniken vor, und landet schließlich bei Techniken wie Optimierung und Register-Zuweisung. Das Buch wiegt 3Kg oder 4Kg. Hab's mal gewogen. Ist also nicht gerade die Lektüre für unterwegs.
- Computerarchitektur [3-8273-7016-7]
Hier werden leicht verständlich die wichtigsten Entwicklungen der Rechnerarchitekturen erklärt (Gut, das Buch ist in die Jahre gekommen, aber der Weg zu heute ist ein winziger Schritt, den man sich nach diesem Buch selbst erdenken kann). Hauptbestandteil des Buchs ist eine relativ umfassende Betrachtung der Funktionsweise dreier gänzlich unterschiedlicher, aber dominierender Prozessor-Typen am Beispiel des Pentium II, UltraSPARC II, sowie picoJava. Die meisten Elemente dieses Buchs sind zwar für die Konstruktion einer virtuellen Maschine irrelevant, oder aufgrund der Tatsache, dass die VM Software ist und z.B. Byte-Grenzen hat, sogar zu Leistungseinbußen führen kann, doch ist ein hinreichendes Verständnis dieser Maschinen, mit denen wir arbeiten, äußerst hilfreich für die Überlegungen, wie die VM arbeiten soll.
Es kann sehr hilfreich und inspirierend sein, den Code quelloffener, virtueller Maschinen anderer Sprachen zu überfliegen. Meine Lieblings-Quelle war und ist stets die VM von Lua. Sie ist schlank, verständlich, in C implementiert, und basiert im Gegensatz zu vielen anderen Scriptsprachen-VMs auf einer Register-Maschine statt einer Stapelmaschine. Es wäre natürlich vorteilhaft, die entsprechende Sprache zu verstehen, in der man auch die eigene VM implementieren will. Weiterhin ist es äußerst vorteilhaft, eine leistungsstarke und bequeme Sprache wie C++ zu beherrschen, um die VM zu implementieren. Und bevor irgendwer auf die Idee kommt: Assembly ist NICHT als dominierende Sprache für den Bau einer VM geeignet. Wer die Frage des "Warum?" nicht beantworten kann, sollte zunächst die gewählte Sprache und Assembly hinreichend verstehen lernen, und es dann erneut mit der Frage versuchen. Es lohnt sich dennoch, Assembly zu lernen. Allein schon, um erneut das Verständnis zu vertiefen, zumal ihr mehr oder weniger gezwungen seid, auch für eure VM eine Assembler-Sprache zu entwickeln (Außer natürlich ihr schreibt eure Test-Programme Bit für Bit ;3). - Compiler - Das Drachenbuch [978-3-8273-7097-6]
-
-
enfinJe ne peux pas parler français.
C'est tout ce que Goodle et les restes de cours de français.
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Hey, Frage 1 und 3 hab ich mich heute auch ständig gefragt xDD
Ich habs nicht getestet, aber vielleicht funzt das hier ja:
http://www.creationasylum.net/index.php?showtopic=22365
Ich habs nicht getestet, aber vielleicht funzt das hier ja:
http://www.creationasylum.net/index.php?showtopic=22365
Events... Vorausberechnet... alles klar.
Zitat
Folgende Probleme... Problem 1 (wichtig):
Das FMOD Ex Audio-Skript besitzt ein wenig mehr Features als das Audio-Modul des RGSS. Ob es die Dateien schneller lädt kann ich nicht sagen, jedoch hab ich vor ein paar Monaten ein wenig mit BASS rumgespielt, dass MIDIs mithilfe von [wikipedia]SoundFont[/wikipedia]s abspielen kann, was natürlich besser als dieses dämliche Standardgedudel klingt und dabei festgestellt, dass BASS schneller eine MP3- und MID-Datei abspielt als die winmm.dll, die vom Audio-Modul verwendet wird. Also es mit dem oben genannten Skript ausprobieren schadet nicht

Um selbst komponierte Lieder zu schützen verstehe ich das, jedoch ist das was du vorhast nichts anders als das runterladen von ROMs, die nach 24 Stunden gelöscht werden müssen - und zwar immer noch illegal, da du kein Recht an dem Lied hast.
Zitat
P.S.: Weiß hier jemand, wo das "Musik Verschlüsselungs Script" ist? Hier war mal ein solches, aber ich find's nicht. Habe nämlich viele lizenzierte Lieder bei einem meiner Projs, doch will sie nicht rauswerfen. Also muss ich die Lieder quasi schützen, um keinen Ärger mit'm Copyright zu machen.
zum Lesen den Text mit der Maus markieren
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 |
=begin Audio Encryption Positives: - Protects your own custom audio files - Gives a point to having a BGM test inside your game Negatives: - Audio files take slightly longer to load - mp3 files do not encrypt - Once encrypted, audio files will not play in rmxp gui, only in the game Simply play the audio in rmxp to encrypt. Backup audio files before using. It's a low security method and this script is more for people who create their own audio files. code: ############################################################################# # Script by: BEHEMOTH # # ####################### # #Version: 1.0 # #Date Created: October 26th 2006 8:42 PM (Eastern Standard Time) # #Description: An encryption script for audio files. # #Thanks goes to thephantom from http://www.phanxgames.com/ for pointing out # #the whole encryption key idea which I was too blind to see. # ############################################################################# ############################################################################# # ***IMPORTANT RESTRICTIONS*** # #1) If the audio file is an .mp3 file, it will NOT encrypt the file and it # #will play it normally. If you wish to have your mp3 file encrypted please # #save it as another compatible audio file, such as .ogg, .mid # #or .wav(compressed of course) or .wma # # # #2) Your audio files must NOT be: read only, or hidden, or protected in # #anyway or it will not encrypt the file and it will play it normally. # # # #3) Audio files should not have the same filename with a different # # extension. # # BAD: "battle01.mid" "battle01.ogg" # # GOOD: "battle01.mid" "battle02.ogg" # # # #4) Files from an RMXP RTP will not be encrypted and will play normally. # ############################################################################# ############################################################################# # ***NOTES*** # #Positives: # # - Protects your own custom audio files # # - Gives a point to having a BGM test inside your game # # - Ummmm.......it's cool # # # #Negatives: # # - Audio files take slightly longer to load # # - mp3 files do not encrypt # # - Once encrypted, audio files will not play in rmxp gui, only in the game # # - The audio file is slightly bigger in file size then the orginal file # # # #If you have problems, suggestions, comments about this script then you can # #currently find me here: http://www.phanxgames.com/forum/ # # # #How to Use: # #To encrypt your audio files play the file in your game at least once. # #The script will handle the rest. MAKE SURE TO BACK UP YOUR ORIGINAL # #AUDIO FILES BEFORE ENCRYPTING IT, because it automatically overwrites # #the original file with the encrypted file. To make this script encrypt # #only certain audio files such as BGM, BGS, ME, SE then change the values # #of the variables below named: # #ENCRYPT_BGM, ENCRYPT_BGS, ENCRYPT_ME, ENCRYPT_SE # # (located below class Game_System) # #changing the value to true means those files will be encrypted and false # #means those files will not be encrypted. Changing these values when an # #audio file is encrypted may cause undesired results. So choose what you # #want first then start encrypting your audio files. Deleting the Encryption # #key file (default = "audio.edat") after encrypting your audio will also # #result in undesired results....so don't delete or move that file once # #you've been encrypting or else you'll have to start encrypting all your # #audio again. This script is more for people who create their own audio # #files. # ############################################################################# =end class Game_System ENCRYPT_EXT = ".eaudio" #Encrypted file extenstion ENCRYPT_FILE = "audio.edat" #File containing encrypted data ENCRYPT_KEY_LENGTH = 16 #Number of characters for encryption key #Change encryption for certain audio files.......HERE!!!!! ENCRYPT_BGM = true #Encrypt bgm? ENCRYPT_BGS = false #Encrypt bgs? ENCRYPT_ME = false #Encrypt me? Yes, please! lol ENCRYPT_SE = false #Encrypt se? #-------------------------------------------------------------------------- # * Play Background Music # bgm : background music to be played #-------------------------------------------------------------------------- def bgm_play(bgm) @playing_bgm = bgm if bgm != nil and bgm.name != "" filename = "Audio/BGM/" + bgm.name if ENCRYPT_BGM decrypt_file(filename) Audio.bgm_play(filename, bgm.volume, bgm.pitch) encrypt_file(filename) else Audio.bgm_play(filename, bgm.volume, bgm.pitch) end else Audio.bgm_stop end Graphics.frame_reset end #-------------------------------------------------------------------------- # * Play Background Sound # bgs : background sound to be played #-------------------------------------------------------------------------- def bgs_play(bgs) @playing_bgs = bgs if bgs != nil and bgs.name != "" filename = "Audio/BGS/" + bgs.name if ENCRYPT_BGS decrypt_file(filename) Audio.bgs_play(filename, bgs.volume, bgs.pitch) encrypt_file(filename) else Audio.bgs_play(filename, bgs.volume, bgs.pitch) end else Audio.bgs_stop end Graphics.frame_reset end #-------------------------------------------------------------------------- # * Play Music Effect # me : music effect to be played #-------------------------------------------------------------------------- def me_play(me) if me != nil and me.name != "" filename = "Audio/ME/" + me.name if ENCRYPT_ME decrypt_file(filename) Audio.me_play(filename, me.volume, me.pitch) encrypt_file(filename) else Audio.me_play(filename, me.volume, me.pitch) end else Audio.me_stop end Graphics.frame_reset end #-------------------------------------------------------------------------- # * Play Sound Effect # se : sound effect to be played #-------------------------------------------------------------------------- def se_play(se) if se != nil and se.name != "" filename = "Audio/SE/" + se.name if ENCRYPT_SE decrypt_file(filename) Audio.se_play(filename, se.volume, se.pitch) encrypt_file(filename) else Audio.se_play(filename, se.volume, se.pitch) end end end #-------------------------------------------------------------------------- # Finds the extension of an audio filename with no extension #-------------------------------------------------------------------------- def get_file_ext(filename) if FileTest.exist?(filename + ".wav") return ".wav" elsif FileTest.exist?(filename + ".mp3") return ".mp3" elsif FileTest.exist?(filename + ".ogg") return ".ogg" elsif FileTest.exist?(filename + ".mid") return ".mid" elsif FileTest.exist?(filename + ".wma") return ".wma" else return ENCRYPT_EXT end end #-------------------------------------------------------------------------- # Encrypts an audio file and saves it with the encrypted extension and # deletes the non encrypted file if it was not already encrypted. #-------------------------------------------------------------------------- def encrypt_file(filename) ext = get_file_ext(filename) filen = filename + ext # If file doesn't not exist in project/audio folder then exit. # File either doesn't exist or is part of the RTP. if (not FileTest.exist?(filen)) return end # Load File afile = File.open(filen, "rb") t = afile.readlines afile.close #If filename was not previously encrypted if ext != ENCRYPT_EXT begin # Test if file is writeable afile = File.open(filen, "wb") afile.close # Delete File File.delete(filen) rescue #File could not be encrypted return end end get_encryption # Save File filen = filename + ENCRYPT_EXT afile = File.open(filen, "wb") for i in 0...t.size s = @encrypt_data + t[i] t[i] = s end Marshal.dump(t, afile) afile.close end #-------------------------------------------------------------------------- # Decrypts a file if it is encrypted. #-------------------------------------------------------------------------- def decrypt_file(filename) filename += ENCRYPT_EXT #If file is not encrypted if (not FileTest.exist?(filename)) return end get_encryption # Load File afile = File.open(filename, "rb") t = Marshal.load(afile) for i in 0...t.size s = t[i] t[i] = s[ENCRYPT_KEY_LENGTH, t[i].size] end afile.close # Save File afile = File.open(filename, "wb") for i in 0...t.size afile.write(t[i]) end afile.close end #-------------------------------------------------------------------------- # * Retrieve's encryption data from file. If file doesn't exist then it # creates an encryption data file. #-------------------------------------------------------------------------- def get_encryption # No encryption data(method) found if @encrypt_data == nil # Encryption data file exists? if FileTest.exist?(ENCRYPT_FILE) # Load Data File afile = File.open(ENCRYPT_FILE, "rb") @encrypt_data = Marshal.load(afile) afile.close else # Create encryption data file afile = File.open(ENCRYPT_FILE, "wb") Marshal.dump(create_key, afile) afile.close end end end #-------------------------------------------------------------------------- # * Returns ENCRYPT_KEY_LENGTH character randomized string used to encrypt # the audio file #-------------------------------------------------------------------------- def create_key key = "" for i in 0...ENCRYPT_KEY_LENGTH key_num = rand(36) key_char = key_num.to_s(36) upper_case = rand(2) == 1 if key_num > 9 && upper_case key_char.upcase! end key += key_char end return key end #-------------------------------------------------------------------------- end |
zum Lesen den Text mit der Maus markieren
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Wie will man nachprüfen, ob man das Lied runtergeladen oder von einer CD kopiert hat? =O
Zitat
Da jedoch von beiden keine MP3s unterstützt werden kannst du die Audiodateien gleich löschen oder unverschlüsselt verwenden. Würde dir aber zum Ersten raten, da heutzutage sehr präzise auf Urheberrechte aufpasst werden sollte.
Das ist egal ob DU es legal oder illegal erworben hast ABER wenn du es unverschlüsselt in ein Makergame reinhaust und später im Forum oder sonst wo zum download anbietest kann jeder sich das Lied von demunddem aus dem Musikordner auf die CD brennen ohne dafür bezahlt zu haben und dies ist ILLEGAL
Zitat
Wie will man nachprüfen, ob man das Lied runtergeladen oder von einer CD kopiert hat? =O
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Dann wären die ganzen Seiten, wo man sich das runterladen kann und mit dem "delete after 24 houres"-Zeug doch auch illegal, oder?
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
So? Soundtrack oder was? ^^
Naja, wenn es diese "So"-Musik ist und das legal ist (sonst wären die RUnterladebedingungen ja auch irgendwie fürn Arsch =O) müsste es ja reicehn, wenn man dieselben Regeln zu seinem Projekt schreibt, oder?
nja, gudd nachd^^
Naja, wenn es diese "So"-Musik ist und das legal ist (sonst wären die RUnterladebedingungen ja auch irgendwie fürn Arsch =O) müsste es ja reicehn, wenn man dieselben Regeln zu seinem Projekt schreibt, oder?
nja, gudd nachd^^
Dann wären die ganzen Seiten, wo man sich das runterladen kann und mit dem "delete after 24 houres"-Zeug doch auch illegal, oder?
Ja sind sie:
http://de.wikipedia.org/wiki/ROM_(Spielmodul)
Skripte:
Animations "Entruckler"
Console
Drunken Mode
Eventskript Debugger
Flat-Events
Impassable Script
Item Shortcut
MSS: Monsta's Shoot System (Neu)
Radius Skript
Random Event Teleport
RMXP Leistungstest
Single Rotate
Split Screen (Beta)
Tutorials:
'alias' Bug beheben
Eigenes RTP
Standard KS komplett Übersetzen
RGSS: Eigener HUD
Programme:
Maker Exchange [ MEX ]
RMXP Skript Explorer
RPGXP Code Converter
Spiele:
[Minispiel] Stampfi V1.5 (Gold)
[Minispiel] Mastermind XP
[Humor] Verfressene Klone
______________________________
[Zukunft] Evil Science
zum Lesen den Text mit der Maus markieren
Benutzerinformationen überspringen
Motto: Wer anderen eine Bratwurst brät, der hat ein Bratwurstbratgerät.
Achso =D
@Monsta: Seite existiert nicht =O
Aber ein paar Spiele hier auf RMXP haben auch solche Musik.
Dark Eternal, z.B.
aber wenn ich mich recht erinnere hat auch Divinitas ein bisschen Game-Musik O.o
@Monsta: Seite existiert nicht =O
Aber ein paar Spiele hier auf RMXP haben auch solche Musik.
Dark Eternal, z.B.
aber wenn ich mich recht erinnere hat auch Divinitas ein bisschen Game-Musik O.o
Achso =D
@Monsta: Seite existiert nicht =O
*hust.. Hilflos...*
Die Klammer war hinterm Link...
Skripte:
Animations "Entruckler"
Console
Drunken Mode
Eventskript Debugger
Flat-Events
Impassable Script
Item Shortcut
MSS: Monsta's Shoot System (Neu)
Radius Skript
Random Event Teleport
RMXP Leistungstest
Single Rotate
Split Screen (Beta)
Tutorials:
'alias' Bug beheben
Eigenes RTP
Standard KS komplett Übersetzen
RGSS: Eigener HUD
Programme:
Maker Exchange [ MEX ]
RMXP Skript Explorer
RPGXP Code Converter
Spiele:
[Minispiel] Stampfi V1.5 (Gold)
[Minispiel] Mastermind XP
[Humor] Verfressene Klone
______________________________
[Zukunft] Evil Science
zum Lesen den Text mit der Maus markieren
Wow, sooo viele antworten^^"
Also... die besagte Musik hab' ich von meinen "The Black Mages" CDs, und von den OSTs von "FFVII" bis "FFX-2", ist das dann nun ganz böse? Andererseits... es stimmt tatsächlich, dass auch ich viele Games mit MP3s hier gefunden hab', die sogar ebenfalls von FFs standen. Würd' mich mal interessieren, wie Böse das nun is o__O" Amsonsten Danke für die Scripte x3 *ausprobier*
-
Werbung -
1plus3
-
Nuuuhminaaah
-
compétences(Dieser Tab ist rein satirisch.)mes compétences
max.
Maps machen
Musik machen
Scripts machen
Story ausdenken
Pixeln und so
Events proggen
-
mes projets-
Silentium
Name: Silentium
Maker: Eigenbau (C++, x86-SSE/AVX-Assembly, Ruby/Lua)
Story
NPCs
Scripts
Ressis
Maps
Gesamt(3+4)% 42 69% 0815 -17.438 103.38% ± 6.3mm²
(Die Tabelle erfüllt lediglich satirische Zwecke.) -
OnyxEine in C++ implementierte, modulare, plattformunabhängige, virtuelle Maschine. Die Test-Version ist bereits halb fertig. Ab dann gibt es vielleicht mehr Infos. Sie soll die auf dem ersten Blick LISP-artige und eigens dafür konstruierte Sprache Obsidian ausführen können. Experimentell wird auch ein Lua-Compiler für Onyx gebaut. Ziel ist eine leistungsfähige, virtuelle Maschine für beliebige Scriptsprachen. Theoretisch gesehen müsste man bloß noch einen kompatiblen Compiler schreiben, der Quellcode jener Sprache in Onyx-Assembly, oder direkt in Onyx-Bytecode übersetzt. Ob die jemand nutzen wird, ist eine andere Frage und nur ein sekundäres... nein, eher tertiäres Ziel dieser VM. Primär dient es mir lediglich dazu, mein Verständnis von Hardware, ISA, und Assembly zu vertiefen, sowie eigene Grenzen auszutesten.
Warnung!
Das Entwickeln einer virtuellen Maschine oder Programmiersprache (im wahnsinnigsten Fall beides) ist eine höchst komplizierte Tätigkeit, aus der viel Frust und Hirnmatsche hervor gehen. Sollte sich dennoch ein ähnlich wahnsinniger finden, der sowas zusammen schustern will, so lege ich ihm/ihr die folgenden Bücher ans Herz:- Compiler - Das Drachenbuch [978-3-8273-7097-6]
Dieses Buch schlachtet ausführlich und leicht verständlich die Grundlagen bis hoch zu den Experten-Techniken des Compilerbaus aus. Es fängt mit der Automaten-Theorie und formalen Sprachen an, arbeitet sich durch Analysetechniken vor, und landet schließlich bei Techniken wie Optimierung und Register-Zuweisung. Das Buch wiegt 3Kg oder 4Kg. Hab's mal gewogen. Ist also nicht gerade die Lektüre für unterwegs.
- Computerarchitektur [3-8273-7016-7]
Hier werden leicht verständlich die wichtigsten Entwicklungen der Rechnerarchitekturen erklärt (Gut, das Buch ist in die Jahre gekommen, aber der Weg zu heute ist ein winziger Schritt, den man sich nach diesem Buch selbst erdenken kann). Hauptbestandteil des Buchs ist eine relativ umfassende Betrachtung der Funktionsweise dreier gänzlich unterschiedlicher, aber dominierender Prozessor-Typen am Beispiel des Pentium II, UltraSPARC II, sowie picoJava. Die meisten Elemente dieses Buchs sind zwar für die Konstruktion einer virtuellen Maschine irrelevant, oder aufgrund der Tatsache, dass die VM Software ist und z.B. Byte-Grenzen hat, sogar zu Leistungseinbußen führen kann, doch ist ein hinreichendes Verständnis dieser Maschinen, mit denen wir arbeiten, äußerst hilfreich für die Überlegungen, wie die VM arbeiten soll.
Es kann sehr hilfreich und inspirierend sein, den Code quelloffener, virtueller Maschinen anderer Sprachen zu überfliegen. Meine Lieblings-Quelle war und ist stets die VM von Lua. Sie ist schlank, verständlich, in C implementiert, und basiert im Gegensatz zu vielen anderen Scriptsprachen-VMs auf einer Register-Maschine statt einer Stapelmaschine. Es wäre natürlich vorteilhaft, die entsprechende Sprache zu verstehen, in der man auch die eigene VM implementieren will. Weiterhin ist es äußerst vorteilhaft, eine leistungsstarke und bequeme Sprache wie C++ zu beherrschen, um die VM zu implementieren. Und bevor irgendwer auf die Idee kommt: Assembly ist NICHT als dominierende Sprache für den Bau einer VM geeignet. Wer die Frage des "Warum?" nicht beantworten kann, sollte zunächst die gewählte Sprache und Assembly hinreichend verstehen lernen, und es dann erneut mit der Frage versuchen. Es lohnt sich dennoch, Assembly zu lernen. Allein schon, um erneut das Verständnis zu vertiefen, zumal ihr mehr oder weniger gezwungen seid, auch für eure VM eine Assembler-Sprache zu entwickeln (Außer natürlich ihr schreibt eure Test-Programme Bit für Bit ;3). - Compiler - Das Drachenbuch [978-3-8273-7097-6]
-
-
enfinJe ne peux pas parler français.
C'est tout ce que Goodle et les restes de cours de français.



