Ich habe einen Bug in Ocarina of Time gefixt | SambZockt Show
HTML-код
- Опубликовано: 26 авг 2024
- Bugs kennen wir alle. Aber wie wird man sie los? Darum soll es heute gehen!
🕹 Hol dir den Browser, der in Allem besser ist: operagx.gg/Sam... Gesponsort von Opera GX!
Unterstützt mich auf Patreon: / sambzockt
Mein Merch-Shop: www.salsasharks...
Der offizielle SambZockt Discord Server: / discord
Drinks, Dev, Games Podcast auf..
Spotify: open.spotify.c...
PodBean: drinksdevgames...
BlobCat auf...
Nintendo Switch:
www.nintendo.d...
Steam:
store.steampowe...
Dein Browser hält dich zurück. Level up, mit Opera GX: operagx.gg/SambZockt
Hätte gerade von dir eher gedacht, dass du dich vor einem Placement informierst.
Der Opera GX Browser ist alles andere als 'ne gute Wahl aus verschiedenen Gründen.
Opera GX ist einfach der schlechteste Browser ever....grade von der performance her. Selbst Firefox läuft besser und das will schon etwas heißen.
@@iiakito8582 Genau darum benutze ich seit Jahren das Browseraddon: "Sponsorblock" damit hab ich meine Ruhe, vor solchen nervigen Sponsoren. :D
@Samb ich hab dich super gern aber opera zu promoten geht garnicht hätte erwartet das du dich vorher informierst bevor du Placements machst 😢
@@Technicktendo Das Problem ist eher, dass diese Firmen (soviel ich weis) so viel zahlen, dass es den Creatorn quasi egal ist, was sie da genau bewerben.
Also dass du dich extra durch den Code von Zelda durchwühlst, "nur" um das Thema bugfixing zu behandeln, hat auf jeden Fall Respekt verdient. Das Video ist schon extrem kreativ... und genau wegen sowas liebe ich den Kanal.
Danke! Tatsächlich bin ich seit März dran dieses Video zu machen.. Es gab sogar einen Tweet, den ich damals verfasste, als ich noch auf Twitter war :D ( twitter.com/Samb_88/status/1634178787020619776 ) Habe tatsächlich paar Sachen gelernt durch das angucken des Codes und übernommen, für meine eigenen Spiele. Darüber rede ich mal in nem anderen Video :)
Ich kann @stielart hier nur recht geben. Mega kreativ und interessant gestaltetest Video
Kleine Korrektur zum Thema init-Funktion für rote Rubine bei ca 5:53 : Da die grünen und blauen Rubin-cases kein break haben, ist das ein "fall-through"-case. Das heißt: Die blauen und grünen Rubine werden genauso initialisiert, wie die roten, weil RUPEE_GREEN und RUPEE_BLUE den code bis zum nächsten break ausführen werden.
Hast komplett recht, habe ich übersehen 😅
c/c++/java switch sind echt übel. gut, dass neuere sprachen mit pattern matching ein moderneres system dafür haben. weniger fehleranfällig
@@paulklein649Was soll daran übel sein? Siehst doch die cases und das break dick hervorgehoben?
Das mit dem davor genannten if gilt auch für alle Rubine, da
Sehr cooles Video. Bugjagd ist immer mühsam 🙂
Eine kleine Anmerkung bei 5:55 : Das ist ein Switch Fallthrough, der alle 3 Rubinarten betrifft, nicht nur die Roten 🙂
Hat er wahrscheinlich übersehen, weil sowas soweit ich weiß in C# nicht möglich ist.
@@realtheo6882 es ist möglich. Der Compiler gibt aber (zumindest in neueren versionen) eine warnung aus das es nicht empfohlen ist und bitte mit einer goto case anweisung gelöst werden soll.
doch ist möglich @@realtheo6882 man kann jedoch keinen case mit body haben der trotzdem fallthrough ist (ohne break;) da meckert der Compiler
Ich wollte das gleiche anmerken :D
Das Video ist bei mir vor einer Stunde veröffentlicht und der Kommentar vor 51 Minuten. Es hat gerade einmal 9 Minuten gebraucht, bis jemand mit einem "well, ackchyually" kommt. Diese Developer smh
@@realtheo6882 Es ist in C# absolut möglich, aber nur wenn hinter dem case kein weiterer Code steht. Wenn code dahinter steht und versucht wird einen fallthrough zu haben dann wird ein error geworfen dass das break; fehlt. Du kannst sogar mit goto in einen anderen case springen
Super Video! Bin selbst als Softwareentwickler (keine Spiele) tätig und zocke leidenschaftlich gern. Des Öfteren kommt es dann vor, dass sich einer meiner Freunde mal über einen shippable Bug beschwert oder generelle, vernachlässigbare, Bugs. Ich versuche dann immer ein bisschen mehr Einsicht in die Gründe, wieso dieser Bug evtl. noch im Spiel ist, zu geben und auch zu erläutern, dass ein Bugfix oft andere, schwerwiegendere Bugs zur Folge haben könnte, an die man so gar nicht gedacht hat.
Das Ganze aber mal eben so nebenbei im Detail zu erklären ist, je nach Umstand, gar nicht so simpel, oft auch, weil man sich dann in Details verliert und die Aufmerksamkeit des Freundes verliert.
In Zukunft werde ich einfach dieses Video teilen, weil es einfach perfekt illustriert wieso manche Bugs einfach "erstmal" nicht gefixed werden und wieso es auch so oft vorkommt, dass Spiele nach Bugfixes dann plötzlich ganz andere Bugs haben.
Mensch, du weißt garnnicht, wie toll ich dieses Video finde! Hat mich echt ein paar Jahre nach hinten geworfen, als ich selber mich zum Lernen durch den Code von OoT durchgewühlt hab, um Spieleentwicklung besser zu verstehen. Danke für den Nostalgietrip, ganz abgesehen von dem geilem Konzept und der Umsetzung :D
Den Sponsor find ich ja etwas fragwürdig. Opera hat seit der Beteiligung durch China einiges an Besorgnis erregt, was Datensicherheit angeht. Jedenfalls passt meine Situation echt gut zu 1:54, nur ists halt nicht Nintendo und 1998.
Gx habe ich erst kürzlich vom pc geschmissen, als ich erfahren habe, was der alles für daten in china speichert...
In die anderen in den USA same shit
@@EtnaV2China = ein verrückter Diktator; USA = Ein alter Mann der gefühlt Demenz hat. Beides scheiße, aber da nehm ich dann doch lieber die USA :/
generell Opera speichert alle deine Tabs und Seiten die du besucht hast.. Wollte ich gerade auch schreiben, obwohl ich Opera schon seit Jahren benutze^^
@@EtnaV2deshalb firefox, alle anderen sind chrome in einem trenchcoat
@@EtnaV2gut das es andere Option gibt: Mozilla Clear Forks oder Chromium ohne Google Forks ;)
Die Projekte haben aber natürlich kein Geld für solche Werbung
Hätte nicht gedacht, dass gerade auf diesem Kanal, chinesische Spyware beworben wird.
Warum müssen immer Chinesische Sponsoren so Problematisch sein. 🌚
Ok Spaß, ich habe kein Ahnung was das Problem von Opera GX ist.
Opera kommt aus Norwegen.
@@nicsem98 Das Unternehmen Opera Software, dass ursprünglich in Norwegen gegründet war, wurde 2016 von irgendeinem Chinesischen Konzern gekauft. Also ja, es ist Chinesisch.
Aber genauso wie alle anderen Produkte die hier in Europa vermarktet werden muss sich auch Opera an die geltenden Regeln halten und kann nicht einfach Spionagesoftware einbauen. Ganz sicher kann man sich aber nie sein.
@@cankurt1696 The Morpheus hat vor ca. einem Monat ein Video gemacht, opera ist tatsächlich an vielen stellen problematisch.
Hast du dir mal genauer angeschaut, welche Daten bei welchen Einstellungen gesammelt werden, oder sagst du das einfach, weil mal jemand was behauptet hat?
Oh man, schade. Ich hätte gedacht du wärst von opera erspart gewesen
Hallo Christian, ich kenne mich nicht sonderlich gut aus mit dem Browser den du da bewirbst, oder das ich mich näher damit befasst habe, aber der Kanal "The Morpheus" hat mal ein Video zu dem Browser gemacht, dass es eine Spyware aus China wäre. Keine Ahnung wie weit das Ganze stimmt, aber wollte es nur mal erwähnt haben, damit du evtl. so etwas nicht weiter bewirbst, falls es doch so sein sollte. ❤
sory aber das video von The Morpheus ist Nicht gut und auch nicht gut reschechiert. deswegen werde ich es nicht empfählen
Das video von The Morpheus war ein wenig überzogen finde ich. Nicht jedes Produkt, was einen (von mehreren) Investment-Sponsor aus China hat ist automatisch Spyware.
@@slinc_hd8552 Der Kommentar macht in sich nicht viel Sinn, da er wiedersprüchlich ist und auch der Satzbau ist seltsam. Klingt beinahe nach einem China-Bot der das Produkt verteidigen soll.
@@MrBeatBonesjup ist save ein bot.
nein :c bin kein bot bin nur schlecht in deutsch, aber ja das video von The Morpheous benutz uhralte quellen und ist auch sehr oft factisch falsch. Ist kein gutes video -5/10
Finde bemerkenswert, dass du den Zuschauer in eine Art fiktive Story einbeziehst, um das Thema lebhafter zu erklären! Das hilft um selbst trockene Materie spannend und anschaulich zu vermitteln. Gutes Video.
Woah, das ist ja mal ein absolut geniales Video! :0
Ein Glück hab ich das doch noch gesehen, ist auch für mich als Software-Entwickler trotzdem einfach cool anzuschauen.
Richtig toll wie du das mit der fiktiven Story erklärt hast 😊
Hammerfett!
Deine Videos sind allgemein immer spannend, aber das hier hat sich richtig hervorgehoben in seiner Stärke! :D
Sehr gute Arbeit und vielen Dank für den Einblick! :)
warum lässt du dich von Opera GX sponsoren? Ich empfehle dazu mal ein video von Morpheus. GX is wirklich nicht gut.
Das Beispiel zeigt wieder wie wichtig es vor allem ist, Requirements richtig zu definieren -> Was soll in einem bestimmten Zustand geschehen? In sofern war das nicht mal ein richtiger Bug, sondern ein Workaround aufgrund fehlender Spezifikation. Es ist manchmal nicht einfach die Grenze zu ziehen. Wann ist es ein Bug und wann ein Feature?
Die Opera Spionage bubble kommt in Deckung ! 😂😂
Mies dass du Koop mit Opera GX (Malware) machst...
Opera GX als Sponsor? Echt fraglich …
Mega interssant lieb solche Hintergrund Infos. Bin selber kein Programierer aber ist trotzdem Mega spannend zu erfahren wie in der Branche gearbeitet wird
Cooler Einblick und immer wieder beeindruckend, wie logisch erschließbar der Code sein kann
Mal wieder ein sehr interessantes Video. Schöner Einblick in den Blick eines Bugfixers. Weiter so, Christian!
5:57: Der Code im switch-Statement wird für alle 3 Typen von Rubinen ausgeführt, es steht ja kein break dazwischen. Switch-Anweisungen in C funktionieren eher wie ein goto-Befehl.
Hast komplett recht, habe ich beim Stress übersehen 🥲
@@SambDas passiert... Es war sicher ein Haufen Arbeit den ganzen Code zu schreiben.
@@moatl6945 Zelda Ocarina of Time wurde vor ein paar Jahren von Fans komplett Reverse-Engineered / Dekompiliert, das ist quasi der Original-Code von Nintendo (bzw. halt ein exaktes Äquivalent mit allen Bugs etc.). Samb hat da wohl kaum irgendwas dazugeschrieben :D
@@Mimi.1001 OK, das erklärt, warum der Code sehr clean ausschaut und die englischen Kommentare im Code.
Ich wäre mir auch nicht sicher, ob Nintendo 1998 tatsächlich in C programmiert hat.
Sowohl Zelda, als auch Mario 64 wurden beide in C gecodet. @@moatl6945
Cool gemachtes Video 💪
Die Art und Weise, wie ein Bug gesucht und gefixt wird fand ich ziemlich spannend 👍
Sehr schön gestaltetes Video und sehr interessant. Hattest mich von Anfang bis Ende.
Ich arbeite aktuell seit einigen Wochen in einem Spiele Start-up an einem RTS Spiel. Ich kann den Aspekten allgemein zustimmen. Auch wenn es einiges an Zeit in Anspruch nimmt, ein Gefühl zu entwickeln, wo der Bug ist (Speziell dann, wenn es sich um fremden, nicht selbst Code handelt). Zumindest aus der Perspektive eines Neulings ^^" Es ist danach immer faszinierend zu überlegen, warum es ursprünglich so gelöst wurde
Richtig starkes Video mal wieder
Perfekt verallgemeinert gut verständlich erklärt
Mein Respekt 🤝
Ich habe schon auf dieses Video gewartet, juhu!
Bugfixes machen schon Spaß (wenn man eine Lösung findet zumidnest) x)
Ich finde es auch spannend zu sehen, wie sich "Rumgepfusche" in so einem Code auf das Spiel auswirkt. :D Ich würde definitiv gerne mehr von sowas sehen. :)
Aber was die Lösung des Problems angeht, wer weiß ob da noch mehr hintersteckt und es deswegen nicht die Zeit Wert war, sich mehr damit zu befassen. Zum Beispiel, selbst wenn die Bombe kurz ausgeblendet wird, dass sie danach trotzdem aus Links Händen fällt und dich ggf. umbringt.
Ich glaube meine persönliche "Lieblingslösung" wäre es, noch eine zusätzliche Abfrage zu machen, ob das Item das erste Mal eingesammelt wurde und man diesen Erklärtext bekommt. Und wenn ja, dass dann die Bombenabfrage die du gelöscht hast nicht mehr da ist. Würde zwar heißen, dass das Problem weiterhin besteht, dass man beim Tragen der Bombe keine neuen Sachen mit Erklärtext einsammeln kann, aber dafür sobald man es einmal gemacht hat. Und beim normalen Durchspielen würde das glaube ich nur bei der Magie eine Rolle spielen, weil ich mich nicht erinnere sonst irgendein anderes Item durchs bloße Einsammeln vorgestellt bekommen zu haben (also nur aus Truhen oder bevor man Bomben bekommt).
Auf jeden Fall cooles Video! :) Ich liebe es, zu sehen wie du sowas erklärst, ausprobierst und zeigst!
Wenn man die Bombe wieder zurück in Links Hand zurück gibt, dann fällt sie ja grade nicht runter. Da müsste man etwas spezifischer rumpfuschen(Wenn man die states nicht direkt manipulieren und speichern kann, dann eventuell einfach die Bombe löschen und danach eine neue spawnen oder sowas), aber das ist der Sinn der Sache.
4:30 beschreibt generell Reverse Engineering ganz gut.
Und manchmal sind Bugs auch ganz einfach... zum Beispiel wenn die Datei, die die Musikplaylisten enthält, einen Tippfehler enthält und so der gedachte Ablauf nicht stattfinden kann. Peinlich wird es aber, wenn ein Entwickler ganze vier Erweiterungen zu einem Spiel veröffentlicht und da trotzdem keiner einen Blick drauf wirft.
Echt geiles Konzept um über das Thema zu reden & der Videotitel zwingt einen schon quasi zum klicken. Richtig gut gemacht!
opera werbung muss echt nicht sein...
6:00
Soweit ich das sehe werden alle 3 Rubine RUPEE_GREEN RUPEE_BLUE und RUPEE_RED skaliert und positioniert. Wenn du bei eine case kein break; zum Schluss setzt rutscht man anschließend in den nächsten case.
Kannst du vllt übersehen haben, weil sowas in C# soweit ich weiß nicht möglich ist, in C++ aber schon. :)
Ist mir auch direkt aufgefallen. Kleiner Nachtrag: In C# gibt es diese 'Fall throughs' auch und sie würden auch genauso funktionieren, wie hier gezeigt. Was in C# nicht geht ist, wenn du ein case mit Code, aber ohne break / return / throw hast. C++ würde den Code ausführen und dann direkt zum Code des nächsten cases springen - das break verhindert genau das. Weil man das break aber gerne versehentlich vergisst, ist das Weglassen in C# ein Fehler.
Die einzige Ausnahme - die ich bisher nie benutzt habe - ist es 'goto case RUPEE_RED;' statt break zu verwenden. Dann springt er tatsächlich nach Ausführung in einen anderen case. Man muss es dem Compiler also explizit sagen.
@@ArcusManiaAh verstehe, ja ich habe in C# sowas noch nie gebraucht und mich deswegen damit auch nicht beschäftigt. Aber gut zu wissen ^^
Tolles Video, gerne mehr solch Tiefe Einblicke in einem sehr unterhaltsamen Format, echt cool 🤗👍
Direkt liken bevor man sich das Video anschaut weils eh genial wird. Hast du gehört das der CEO von Unity "gegangen" ist?
Für solche Videos mögen wird dich besonders. =)
Hallo samb sicher ist es schwer immer im Auge zu behalten wer dir eine placement Anfrage schickt aber ich wollte dich darauf hinweisen das opera gx privacy nicht ernst nimmt und als chinesische spyware eingestuft werden kann
Installier dir bitte den Browser mal in einer Sandbox und lass Wireshark drüberlaufen. Opera muss sich wie jedes andere Produkt an die DSGVO halten.
@@thatanimeweirdo Kannst du in deren Datenschutzbestimmungen nachlesen, dass Operas Mutter Firma Kunlun Tech als Datenverarbeiter mit aufgezählt ist und so Daten nach China übermittelt werden, wo die dann 1. nicht mehr der DSGVO unterliegen und 2. durch die Chinesische Regierung überprüft werden können.
@@thatanimeweirdo tut es aber nur in teilen.
generell gehört opera zum chinesichen staat und der ist nicht für privacy bekannt.
im gegenteil.
da werden alle daten gezeigt ob man will oder nicht.
Brave ist da viel besser.
@@thatanimeweirdoDie DSGVO erlaubt aber schon recht viel, wenn der User zustimmt (was man bei der Installation ja auch tut).
Super spannend, besonders toll ist es, dass du es an einem realen Beispiel erklärt hast!
Find ich schon interessant, wie das so läuft
warte grade selber auf ein paar Fixes, daher kam das Video grade richtig
Die Rubine die initialisiert werden (bei 6:00) werden alle gleich behandelt. Green und Blue haben kein 'break;' - das nennt man dann 'Switch Case Fallthrough'. Das Switch Statement wird nur mit einem Break oder am Ende des Statements selbst verlassen. So braucht man den Code nur ein Mal schreiben und kann ihn mehrmals verwenden. Ist eine umstrittene Funktionalität, aber manchmal sinnvoll.
Warum der Rote Rubin gedreht wird, bleibt dennoch schleierhaft.
Bugs werden stets mit Schweiß und Blut gefixt. Das fasst meinen ganzen heutigen Arbeitstag zusammen. ...und nein, da ist noch was übrig, was ich heute nicht geschafft habe.
Tut mir leid, dass du den switch-case-Fallthrough übersehen hast. Ich glaube du wirst noch in ein paar Jahren Kommentare dazu bekommen :P
05:56 da es keinen break gibt, fallen die cases für die anderen Rubine durch, diese werden also ebenfalls skaliert und rotiert 😉
Interessanter Stil für das Video, hat mir gut gefallen!
Der "beste" Fix, meiner Meinung nach, wäre, dass man die Items mit Bombe in der Hand aufheben kann, wenn sie bereits einmal hochgehoben wurden, also bekannt sind und nicht vorgestellt werden müssen. Dann reduziert sich das Problem fast nur auf die Startzonen in denen man sowieso noch keine Bomben hat. Die Bombe zu verstecken um das Item zu zeigen wäre irgendwie ein Logikbruch, wenn auch nicht so dramatisch. Mir gefallen logische Ausschlüsse viel mehr als Tricksereien, z.B. gibt es auch GTA 4/5 oder Dead Red Redemption Details Videos wo man z.B. bestimmte Sachen nicht macht oder anders macht als sonst, wenn eine Hand z.B. durch ein Handytelefonat blockiert ist.
Eine Supporter-Auflistung ohne "Sheiny-Steini", Neo127 und Torxon wäre einfach nicht dasselbe.
Tolles Video! Als Entwickler fand ich diesen Einblick in den Zelda-Code sehr interessant :)
Ich glaube du verstehst den code bei 6:00 falsch. Wenn mehrere case statements in diesem format hintereinanderstehen wie es bei den Rubinen der Fall ist, dann wird bei jedem Rubin der code unter dem roten Rubin ausgeführt (wenn ich mich nicht täusche, habe schon lange kein C mehr programmiert). Wenn man ein NULL case (ein case der nichts macht) haben will, verwendet man doch break, nicht?
Ich kommentiere sonst echt nie, muss aber echt sagen dass mich dieses Placement sehr enttäuscht - dass gerade jemand mit technischem Background so eine dubiose Firma und damit Spyware/Malware bewirbt, hätte ich echt nicht erwartet. Das kannst du besser! :/
In wieweit unterscheidet sich Opera von einem Chrome, Edge oder Brave Browser?
@@thatanimeweirdo The Morpheus hat da ein super Video drüber gemacht.
@@annocraft Ich weiß, ich habs damals gesehen, es ist nicht ganz korrekt und stark überspitzt.
@@thatanimeweirdoes gibt bei weitem besser alternativen bezüglich Datenschutz
Cooles video. Cool, dass du auch den Code von OoT durchgewühlt hast.
Ich als Art- und Gameplay-Director hätte aber eher gewollte, dass man KEINE Items aufheben kann, wenn man mit einer Bombe durch die Gegend läuft. Mal ehrlich, Link ist vielleicht mutig, aber nicht leichtsinnig! ;-)
Extrem verständlich erklärt. Ich liebe deinen Kanal
Richtig coole Videoidee und natürlich auch supi umgesetzt. Gerne mehr davon.
Ich empfehle keine wichtigen oder privaten Informationen in Opera zu senden auf Grund von internen Trackern.
Sehr gutes Video. Wäre das eine Firma wo ich gearbeitet hatte als Programmierer wäre aber vermutlich wenn das ganze Zeit brauchte rauszufinden, welche Funktion was macht, zu debuggen etc, dann hätte mein Chef dafür wiedermal nicht gelobt, sondern gerügt, warum man für so etwas so viel Zeit einräumte. xD Aber gut, dass hat mir unter anderem den Job auch kaputtgemacht und nun Schule ich um zum Kaufmann nach 10 Jahren Entwickler xD
Sehr schwaches Sponsoring, sehr starkes video
Das Video war sehr interessant und gibt einen Einblick wie Spieleentwicklung funktioniert. Vielen Dank für die Mühe
fals mich mehr fragt wie mein Alltag ausschaut kann ich jetzt einfach das Video teilen. sehr geil
Wie Aufwändig es sein muss so ein Video zu machen, aber total Interessant und spanned - Danke für den Bomben Content!! .. Sorry, I'll let myself out..
Sehr cooles und interessantes Video, vielen Dank! :) Wenn wir eh schon über OoT und Bugs reden: Wäre es nicht mal interessant, die gängigen Speedrun-Glitches und -Bugs von OoT unter die Lupe zu nehmen? Da sind ja auch einige echt coole und faszinierende Dinge dabei (Timewarp, durch Wände glitchen, Ereignisse in falscher Reihenfolge triggern etc.), die sicherlich aus Entwicklersicht super spannend zu erklären sind. Nur ne Idee :)
Auch interessant wäre ein Blick auf die Arbitrary Code Execution (ACE). Das geht auch in den Bereich der IT-Security.
Total interessantes Video! Wie bist du an den Code gekommen? Und wie verstehst du so etwas, was im Code steht? Klar, du hast auch im Video gesagt, dass du das ein oder andere ausprobierst und dann schaust, was sich im Spiel verändert hat. Bist du Programmierer, vllt?
Liebe Grüße
5:54 der rote Rubin ist an der Stelle nicht besonders. Für den grünen und blauen Rubin wird der Code-Pfad doch auch ausgeführt.
Richtig interessant. Ich finde das faszinierend
Bin zwar Entwickler in einer ganz anderen Branche aber konnte direkt das Vorgehen bei Bugs/Tickets wirdererkennen
Ich bin echt Enttäuscht das Ausgerechnet im nem Video was sich über Bugs Dreht kein Front gegen GameFreak kam. ._.
Wollte das Video positiv halten :D
Cooles Video aber über den Sponsor lässt sich wirkich streiten. Opera ist nicht unumstritten, insbesondere wenn es um Datenschutz geht. Ich kann mir vorstellen das Placements als Einnahmequelle für dich essenziell notwendig sein dürften, um diesen Kanal überhaupt betreiben zu dürfen ABER ausgerechnet als Technikkanal Opera GX zu bewerben ist naja sagen wir ungünstig.
In etwa als würde man als Gesundheitskanal anfangen Placements von Milka oder Haribo zu machen...
Geiles Format, faszinierend einen EInblick in das Bugfixing in der Entwicklung eines so großen Spiels zu kriegen. Sind die Tickets tatsächlich echt oder hast du sie dir für die Story ds Videos ausgedacht?
Und eine Verständnisfrage hätt ich bei 6:00 : da für die grünen und blauen Rubine kein break-keyword gesetzt ist, gilt für sie doch genauso sehr die Positionierung und Rotation des roten Rubins, oder hab ich switch statements falsch verstanden?
Ich antworte mal für ihn: Garantiert ausgedacht, da diese Tickets und Ticketverwaltungssoftware niemals von außen zugänglich sind. (Und im Fall von Ocarina of Time garantiert auch schon archiviert sind)
Du hast das Statement richtig verstanden. In einem anderen Kommentar hat Samb darauf auch schon geantwortet dass er es übersehen hat
Sehr interessant mal so einen Einblick zu bekommen
Opera GX Placement weiß ich nicht ob das sein muss
Bin sehr enttäuscht, dass du so eine Malware wie Opera GX bewirbst.
"Was ist wenn der Spieler nur noch ein Herz hat und die Bombe explodiert und ihn killt, während man ein Item aufhebt?"
Ich finde es ja schon bemerkenswert, dass sich jemand über diesen Sonderfall scheinbar Gedanken gemacht hat. Und das nur wegen dieser nervigen Erklärbärboxen.
Das war sehr interessant. Danke für das Video.
Mega cooles Video! Fand ich als Entwickler schon ganz spannend da mal in den Code von Zelda reinzugucken. Ich hätte fast erwartet, dass der Code damals noch auf japanisch kommentiert worden wäre.
Ganz ehrlich? Wie kann man gerade für einen so umstrittenen Browser wie Opera GX Werbung machen?
Fand das Video super! Bitte mehr Videos der Art
Ich liebe dich wirklich aber Opera GX ist wirklich ein Shithole
Abseits der Spyware Werbung ein sehr interessantes Video.
Wäre lustig zu sehen, was sich mit dem src noch alles ändern lässt, was nicht ohnehin mit Cheats geht.
Ich liebe deine Videos, aber die Tatsache, dass du so einen Browser wie Opera bewirbst, hinterlässt einen sehr bitteren Beigeschmack. Anscheinend wurde diese Entscheidung von dir in deinem Discord Server gerechtfertigt (laut einer der Kommentaren), aber ich kann mir echt nicht vorstellen wie
Hab mal auf dem Discord vorbeigeschaut. Das Argument war eher so ein ja Chrome trackt euch auch.
Einfach nur erbärmlich...
Mal wieder sehr interessanter einblick.
Als never nester habe ich mir gerade die Augen ausgekratzt und schreibe diesen Text nun blind...
Es war sogar sehr interessant, und ich habe von Prpgrammieten absolute keine Ahnung, würde es aber gernen können, wäre es nicht so verflucht amfassend und frustrieren, sowie ungassbar Zeitfressend... daher schreckt mich das immer so ab, eine der Programmiersprachen zu lernen...
Außerdem weiß ich nicht welche für mich geeignet wäre und welche Engine für ein noob wie mich Sinn machen würdeTwT
Bitte ladet euch keinen Opera runter… gerade im Geschäftumfeld!
Super geniales Video. Ich konnte sogar einige Parallelen zur Programmierung in der Gebäudeautomation ziehen.
Sehr sehr interessant. Es kann gar nicht technisch genug sein. Klasse Video. Vielen Dank
Super Video, und sehr gut illustriert. Ich kann mir das damit sehr gut vorstellen, wie das bei Nintendo und Co. mit ihrem Ticketing System ablief
Es gibt mehrere Videos zu der Spyware Opera (GX). Dann doch lieber Chrome 😅
Weil Google auch nicht genau die gleichen Daten verarbeitet :D
@@thatanimeweirdo Google ist aber ein US-Unternehmen und die USA eine Demokratie 😅
@@websgeisti7112 Das ist egal, weil jedes Unternehmen, was deutsche Benutzer hat, sich an deutsche Gesetze halten muss. Und das tut auch Opera :)
@@thatanimeweirdo "Weil Google auch nicht genau die gleichen Daten verarbeitet" Was ist das für Whataboutism? Es geht hier nicht um Google.
@@thatanimeweirdosag das Mal Facebook, Google, Apple eigentlich allen
Echt tolles Video. Gerne öffter so tiefgreifenddas es sogar u den programm code geht, das war/ist sehr interressant.
Bitte mehr davon :D
Super interessant! Danke für das Video
Richtig nice erklärt. 👍
Sehr interessantes und informatives Video.👍
Bitte mehr davon
🤌
Die Codebase von alten N64 Spielen ist die Hölle
Mega interessant gewesen, mal so an das Thema heran geführt zu werden. Vg
Wie immer ein top Video von dir, lieber Christian. Eine anekdotische Frage hätte ich. Sind das echte Code Beispiele und Kommentare aus den Zelda Code Dateien oder wurden die aus dem japanischen übersetzt?
Falls Original, kann es sein, dass so mancher Coder bei Nintendo überraschend gut englisch konnte? :D
Die stammen aus dem Decompiled Projekt. Der Code ist also "nur" eine Nachstellung, die zu einer exakt gleichen ROM gebaut werden kann. Deswegen haben einige Symbole/Variablen auch keine hilfreichen Namen, weil zu diesen noch nicht herausgefunden wurde, wofür sie genau da sind.
Der sponsor ist mehr als fragwürdig!
Habe erst seit dem 04.09. mit Spiele Entwicklung angefangen. Kenne bisher C#. Der Code war ähnlich, aber die Strukturen waren anders... War das C++?! 🤔
Der Code sah für mich nach C aus, da man Aspekte wie Pointer oder C-typische Structs gesehen hat, jedoch OOP nicht wirklich hervor kam
Der Code schaut teilweise ja richtig gruselig aus. 😆
Ich muss sagen, dass ich besonders dieses Video sehr interessant gefunden habe :)
Ich finde es nicht gut das du Werbung machst für einen Browser der gesetzeswidrig mehr User-Daten nach China exportiert als der Hamburger Hafen.
Danke für das Video, vorsllem dass du uns den Code zeigst
Ich vermute bei der Bombe spielt das Interne Script der Bombe eine Rolle.
Da dieses Script gestartet wird, sobald die Bombe benutz wird, aus welchem state das benutzen auch kommt (donnerblume != bombe aus der tasche)
die bombe wird ihr script in den state am explodieren oder so setzten, dabei einen timer runterzählen, der das intervall zwi dem wechsel von roter und schwarzer textur immer weiter reduziert.
ist der timer abgelaufen, machts bumm.
jetzt könnte es ja sein, das der timer intern weiter läuft, da der thread der die bombe steuert losgelöst von den anderen threads ist die pausiert werden wenn etwas aufgehoben wird und die bombe dadurch nachdem die pause vorbei ist direkt explodiert, wenn aber auch dieser thread pausiert wird, wird das nix anderes sein, als das ein wait in jedem thread mit übergeben wird, also schonmal egal..
die bombe ist aber im gegensatz zum stein, ein animiertes objekt, was etwas macht, der stein macht nur etwas, nämlich kaputt gehen, wenn der state nach aufgehoben, im flug oder ähnlich gesetzt wird(also wenn man sie wirft)
solange macht der stein nix, beim loslassen wird er wieder aufm boden fallen und gut ist(interresant wäre es bei der vase, die kann man glaub ich nicht einfach loslassen, kann man das bei dem stein oder kann man den auch nur werfen, mhhh)
auf jedenfall im gegensatz zum stein und wohl der vase, wird ein änderungsscript nur ausgeführt, wenn der state flug oder ähnliches durchgekommen ist, die bombe hingegen hat direkt nach in der hand die init für ihr explodieren script.
Da die Bombe das einzige Objekt ist, das eine direkte auswirkung hat, wenn sie nicht mehr in der hand ist und nicht zurück in die hand gesetzt wird, kann nur bedeuten, es gibt keine funktion die ein objekt wieder zurück in die Hand von link gibt, nachdem das objekt einmal im besitz von link war.
der parent kann wohl nur 1x beim benutzen gegeben werden, danach gibt es keine möglichkeit mehr diesen wieder zu zu weisen, vermutlich wird bei der bombe direkt dann das init script aufgerufen für den explosionsablauf
also hätte man das aufhebe script UND das bomben script umschreiben müssen, das erkennt ob das objekt bereits einmal jemand zugeweisen wurde, hier ist es ja nicht nur link ggf.
also müsste man an mehreren stellen die arbeit machen um das zu fixen
so war es einfacher, in dem script beim aufheben hin zu zu fügen, das link kein objekt aufheben darf, wenn er ein objekt in der hand bereits hält, das auf exploding steht.
Was interresant ist, weil alle ausrüstungsgegenstände von Link müssen so anderst gehandhabt werden, da diese wenn sie nicht ausgerüstet sind, nicht mehr link zugeorndet sind, bis er sie wieder ausrüstet und damit spawnt.
Hier könnt es aber sein, das jedesmal ein neues Objekt erzeugt wird das direkt link als parent zugeorndet wird.
das wird auch erklären, warum die bombe die link aus der tasche zieht direkt in den on_exploding zustand übergeht.
was auch bedeutet, das jedes objekt das link benutz, nach dem austausch mit einem anderen objekt vernichtet wird.
link hält sein schwert ja auch nicht mehr direkt in der hand, wenn man etwas anderes in der hand hatte, es ist erst wieder da wenn man angreift.
Und die Bombe, tickt ja weiter, wenn sie wieder aufgehoben wird, was bedeutet das beim wieder aufheben das Script nicht von neuem startet, weil init bereits ausgeführt wurde
bedeutet aber das Parent trotzdem wieder zugewiesen werden kann.
Mhh das macht das ganze jetzt wieder merkwürdig, weil man kann die bombe ja wieder aufheben nachdem sie einmal losgelassen wurde oder, HIER BIN ICH MIR UNSICHER OB DAS GEHT ODER NICHT :s
Mein ganzer gedankengang, hängt jetzt davon ab, das die Bombe nicht wieder aufnehmbar ist und ich weis es nicht
Wenn sie nicht wieder aufhebbar ist, könnte meine vermutung richtig sein
ist sie wieder aufhebbar, ist der ganze text sinnlos
Eh...ja, man kann sie wieder aufheben.
dann versteh ich nicht warum man sie nicht zurück in die hand setzten kann, wenn die funktion ja existiert
merkwürdig
@@lpfan4491
Ich warte schon auf den nächsten Unity Video nachdem John weg ist :D