Ergebnis 1 bis 20 von 175

Thema: [Vorstellung + Entwicklertagebuch] SANTRIA!

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Zitat Zitat von Sabaku Beitrag anzeigen
    Die Bewegung der hinterherlaufenden Figuren sieht gut aus Und das Eichhörnchen erst Leider fängt bei mir bald die Uni an, sonst hätte ich mich glatt mal für eine Probefahrt bereit erklärt :/
    Danke! Ich weiß das Interesse zu schätzen!

    Da Motivation und Zeit da ist: Der nächste Entwicklereintrag!

    UPDATE: WELCOME TO PINE FALLS

    Die großen Arbeiten an Pine Falls haben begonnen, dem Herzstück des Spiels. Grund genug, um einen kleinen Einblick in die Entwicklung der Stadt zu werfen und wieder ein wenig aus dem Nähkästchen zu plaudern.

    Pine Falls entwickelt sich langsam aber stetig weiter. Alles hat vor knapp 3/4 Jahr mit dem VX Ace und dem Old School-Modern-Set angefangen. Das Tileset hatte mir so gut gefallen, dass ich ein kleines Kurzprojekt daraus basteln wollte, mit dem Ziel, einen hohen Grad an Immersion und Interaktivität zu erreichen. Ich bin mit dem Tileset schnell an die Grenzen gestoßen und musste mehr und mehr editieren. Das war frustrierend, da ich einen fremden Stil imitieren musste und mit der Zeit immer mehr den Bezug dazu verloren habe. Es ist mir schwer gefallen, mit der vorgegebenen Farbgebung eine herbstliche Atmosphäre zu erzeugen. Kurz: mir hat die künstlerische Freiheit gefehlt, um meine Ideen so zu verwirklichen wie ich es gerne hätte. Ein weiterer Grund war die Abnutzung des Tilesets. Immer mehr Spiele haben es verwendet und ein Spiel mit dem Stil wurde sogar in Steam Greenlight hochgevotet. Ich wollte nicht "ein weiteres Spiel mit dem Set" sein und damit eine mögliche Spielerschaft abschrecken. Ich habe daraus gelernt und kann jedem nur empfehlen, sich seine eigenen Tilesets zu basteln. Wie schon Mondlichtung in diesem Thread geschrieben hatte: ein eigener Grafikstil steigert die Einzigartigkeit und damit Attraktivität eines Spiels... und fühlt sich gut an. Es ist kein Ding der Unmöglichkeit, ich gehe die Sache auch als absoluter Laie an! Versucht es!

    Der eine oder andere Leser mag sich jetzt denken: Warum ist es dir wichtig, eigene Grafiken zu erstellen, wenn das Spiel sowieso nur als Kurzprojekt/Spielerei angedacht war? Erzähl deine Geschichte und gut ist. So habe ich auch gedacht. An dieser Stelle muss ich mein Erlebnis mit Undertale einwerfen, Ende letzten Jahres. Ich bin am Hype zu diesem Spiel nicht vorbeigekommen und es hat meine Vorstellung von Spieleentwicklung nachhaltig geprägt. Undertale hat mir aufgezeigt, wieviel Emotionen, Spielfreude und Überraschungen ein einzelner Entwickler mit viel Herzblut und Zielstrebigkeit (Determination, hehe) auslösen kann... und das mit den geringen Mitteln! Das motivierte mich dazu, mit ähnlichem Willen und Herzblut an die Sachen ranzugehen und meine Geschichte ohne halbherzige Kompromisse zu erzählen. Mir blieb kein anderer Weg als SANTRIA mit meinen begrenzten Fähigkeiten von Grund auf selber aufzubauen und das Spiel so zu formen, dass es nicht wie ein schnell zusammengeklicktes RPG-Maker-Baukastenspiel wirkt. Aus diesem Grund wird SANTRIA kein Kurzprojekt/Spielerei mehr sondern ein vollwertiges RPG mit angepeilten 10 Std Spielzeit. An dieser Stelle möchte ich ein wenig Werbung für den Devlog von Sabakus 8 Sinners machen, den ich vor ein/zwei Monaten konsumiert habe (empfehlenswerte Lektüre mit kriminell wenig Kommentaren!). Der Devlog zeigt auf beeindruckende Art und Weise, wie ein Spiel sich kontinuierlich und viel Liebe zum Detail weiterentwickelt und von den Begrenzungen des RPG-Makers löst. Toll!


    Zurück zu Pine Falls:
    Hier ein Übersichtsscreenshot von damals. Der grundlegende Aufbau der Stadt wird sich nicht ändern, es werden aber noch deutlich mehr Locations eingebaut. Der Spieler wird in Pine Falls seine Quests abholen, mit den NPCs interagieren und Beziehungen knüpfen. Es ist der Hub, von dem aus die Abenteuer beginnen und die Spieler in die umliegenden Wälder und ähnlichen Locations führt.



    Ich möchte die Stadt lebendig gestalten und dem Spieler viele Möglichkeiten bieten, sich abseits der Hauptquests/Nebenquests mit dem Spiel zu beschäftigen. An dieser Stelle deshalb eine Frage an euch: mit welcher Nebenbeschäftigung/Timesink vertreibt ihr euch gerne die Zeit in Videospielen? Ihr helft mir mit euren Meinungen und Ideen, den Platzbedarf für die Gebäude dieser Nebenbeschäftigungen besser abzuschätzen. Geplante Nebenbeschäftigungen sind bisher das Angeln, das einfach gestrickte Züchten von Obst und Gemüse und das Spielen von einfachen Arcade-Spielen in der Spielhalle (Ein Hoch für die Vielseitigkeit des Game Makers!). Diese Beschäftigungen will ich durch erstrebenswerte Achievements interessant halten.

    Damit der Post nicht ganz ohne neues Bildmaterial ist, habe ich ein WIP-Bild der Polizeistation in alter und neuer Fassung mitgebracht. Die Telefonzelle ist außerdem der offizielle Speicherpunkt im Spiel.



    Stay tuned und bis zum nächsten Mal!

  2. #2
    UPDATE: EINE STADT WÄCHST

    Seit dem letzten Entwicklereintrag ist Pine Falls ein gutes Stück gewachsen. Ich bin zwar nicht so weit, wie ich es gerne wäre, dennoch erkennt man schon grobe Stadtstrukturen. Langsam und mühsam ernährt sich das Eichhörnchen. Ich habe ein Übersichtsbild der Aseprite-File mitgebracht, damit ihr euch ein eigenes Bild machen könnt. Ich merke schon jetzt, dass ich nen größeren Fokus auf abwechslungsreiche Vegetation setzen muss, da ich mit einer Tannensorte nicht das gewünschte Waldfeeling erzeugen werde.



    Zwei ausgewählte WIP-Gebiete der Stadt möchte ich ich euch trotzdem noch zeigen und ein wenig erzählen:



    Das erste Bild ist das Forschungszentrum der SANTRIA Company, der erste Dungeon im Spiel und Ursprungsort des Pine Tonics, einem sehr bekömmlichen Energy-Drink mit leicht radioaktivem Nachgeschmack. Die alte Version mit ein bisschen Dungeontalk könnt ihr auf der ersten Thread-Seite anschauen. Wahrscheinlich werde ich noch ein Transportfahrzeug in die freie Fläche parken, aber das kann ich erst abschätzen, wenn ich den Platzbedarf der Cutszene wissen werde. Freue mich schon sehr, wenn ich endlich am Dungeon basteln kann!




    Das zweite Bild zeigt den besten (und einzigen) Supermarkt in ganz Pine Falls! Der ULTRA-Markt! Der Parkplatz wirkt noch ein wenig leer, da noch eine Motorrad-Gang Platz finden wird. Ich bin mit der Farbgebung zufrieden und mag besonders den orangenen Streifen an der Wand.

    Soviel erstmal zu den Fortschritten.

    Ich überlege, zusätzlich einen englischsprachigen Devlog laufen zu lassen, um das Spiel außerhalb des Ateliers bekannt zu machen/devlog-vernarrte Leser zu erreichen. Habt ihr damit Erfahrungen gemacht? Wordpress, tumblr, reddit, tigsource? Berichte und Meinungen?

    Bis zum nächsten Mal und stay tuned!

  3. #3
    UPDATE: EMOTIONS AND INTERACTIONS

    Ich animiere gerade ein paar Emotion-Bubbles, um die Gefühle der Charaktere besser auszudrücken. Bin momentan bei rund 9 verschiedenen Varianten und habe euch heute mal die Glühbirnen-Bubble mitgebracht. Es ist eine gute Idee, ins Kino zu gehen, nicht war Tarquin (geht Zoomania schauen, starke Empfehlung)? Die Bubble an sich gefällt mir schon gut, die Charaktere dagegen sind mir noch zu statisch. Ich werde mir noch paar Charakter-Animationen überlegen, um die Bubbles besser rüberzubringen.




    Ein weiteres Element, das ich heute testweise implementiert habe: wenn Tarquin sich einem interessanten Objekt nähert, erscheint eine Lupe als Hinweis darüber. Meine Gedanke war, dass es dem Spieler leichter fällt alle Spots zu finden, die man untersuchen kann ohne sich enter-hämmernd durch die Map zu bewegen. Was haltet ihr davon? Sinnvoll oder würdet ihr den Hinweis auf Dauer nervend finden? Bin auf eure Meinung gespannt!



    Bis zum nächsten Mal und stay tuned!

  4. #4

    Hier wird nicht geterrort
    stars5
    Ich find den Effekt mit der Lupe ganz niedlich! Würde mich glaube auch auf Dauer nicht wirklich stören

  5. #5
    Kann man die Einstellung mit der Lupe auch ausschalten?
    Ich meine jetzt für die Leute, die lieber ohne Hilfe alles untersuchen möchten. :3

  6. #6
    Zitat Zitat von Sabaku Beitrag anzeigen
    Ich find den Effekt mit der Lupe ganz niedlich! Würde mich glaube auch auf Dauer nicht wirklich stören
    Danke für dein Feedback! Der schwebenden Diskette über dem Speicherpunkt steht nichts im Weg!
    Zitat Zitat von Avoki Beitrag anzeigen
    Kann man die Einstellung mit der Lupe auch ausschalten?
    Ich meine jetzt für die Leute, die lieber ohne Hilfe alles untersuchen möchten. :3
    Gute Idee, der Spieler soll bei Spielbeginn selber entscheiden, ob er die Hinweise sehen möchte oder nicht! Das Feature zu implementieren ist kein Problem. Was mich interessieren würde: denkst du, die Lupe würde die Freude am Entdecken schwächen? Sie erscheint ja erst, wenn man mehr oder minder vor dem Gegenstand steht.

    (Habe letztens dein Let's Play zu Agoraphobia beim Pixeln gehört. Gute Arbeit und mal eine angenehme Abwechslung zu den gewöhnlichen RPG-Maker-Rant-LPs! )

  7. #7
    Aus persönlicher Erfahrung kann ich behaupten, dass ich viele Dinge zum Entdecken als unscheinbar betrachte und dadurch einiges übersehe. Um so mehr freut es mich, wenn ich diese Dinge dann doch anklicken kann. (und ich klicke alles gerne an.) xD
    Die Lupe würde aber niemanden die Freude am Entdecken nehmen - es wär einfach nur etwas schwieriger ohne die Lupe. Ich mag das. Vielleicht ist dies aber auch nur mein Empfinden.

    Woah ~ Danke schön, freut mich, dass dir "das hör - Let's Play" so gut gefallen hat. Hahahaha~

  8. #8
    Zitat Zitat von Avoki Beitrag anzeigen
    Aus persönlicher Erfahrung kann ich behaupten, dass ich viele Dinge zum Entdecken als unscheinbar betrachte und dadurch einiges übersehe. Um so mehr freut es mich, wenn ich diese Dinge dann doch anklicken kann. (und ich klicke alles gerne an.) xD
    Die Lupe würde aber niemanden die Freude am Entdecken nehmen - es wär einfach nur etwas schwieriger ohne die Lupe. Ich mag das. Vielleicht ist dies aber auch nur mein Empfinden.

    Woah ~ Danke schön, freut mich, dass dir "das hör - Let's Play" so gut gefallen hat. Hahahaha~
    Vielen Dank für deine ausführliche Meinung, das hilft mir sehr bei der Entwicklung

    UPDATE: TITLE SCREEN AND SOCIAL MEDIA

    Hallo Atelier! Das Wetter ist schön und die Vögeln zwitschern. Ein perfekter Zeitpunkt für einen weiteren Entwicklereintrag! Ich habe mich die Tage mit dem Titelbildschirm beschäftigt und versucht, den Pine Falls-Charme und die Atmosphäre möglichst konzentriert rüberzubringen. Der Titelbildschirm ist meiner Meinung nach sehr wichtig, da es das Erste ist was der Spieler sieht und damit schon ein erstes Urteil über das restliche Spiel gefällt wird. Das Startmenü ist nach dem Stil des Spielmenü-GUIs aufgebaut um alles wie aus einem Guss wirken zu lassen. Ein finaleres () Spiellogo wurde entworfen und bringt hoffentlich den rustikalen Charakter einer Kleinstadt in der amerikanischen Wildnis rüber. Ich habe mit Parallax rumgespielt (es kann nicht genug Parallax in einem Spiel geben, oder Lachsen? Herrlicher Gamedev-Stream am Montag! ). Das Gebirge besteht aus zwei Schichten und in einer früheren Version hatte sich eine Schicht in geringer Geschwindigkeit zusammen mit den Bäumen bewegt... nun, sagen wir ich bin von den bewegenden Bergen sehr schnell abgekommen!



    Das Menü ist schon stellenweise funktionell, New game und Load game funktionieren grob. Ich habe ein Bild des Ladebildschirms mal mitgebracht. Santria unterstützt zwei Files, zu denen Informationen über Standort, Spielzeit (noch nicht implementiert), Anzahl der freigeschalteten Partymember und Lvl angezeigt werden. Wahrscheinlich baue ich noch ein Feld für einen 100%-Spielstand ein, der dann eine Trophy anzeigt. Die Settings werden als nächstes angepackt.



    Soviel erstmal zu diesem Update, ich bin auf eure Meinungen gespannt! Eine kleine Ankündung habe ich aber noch:

    Wer Lust hat, mehr über SANTRIA zu erfahren und kleinere Updates mitzubekommen, die keinen Post im Devlog rechtfertigen, ist herzlichst eingeladen, meinen Twitter-Account zu folgen!

    https://twitter.com/schottidev

    Ich freue mich über jede Unterstützung und bin gespannt, wie sich dieses Social Media-Experiment entwickelt!

    Stay tuned!

  9. #9

    Hier wird nicht geterrort
    stars5
    Wenn du noch eine bewegliche Schicht in deinem Panorama haben möchtest, kannst du ja noch Wolken einbauen...
    Aber wirklich ein sehr hübscher Titlescreen! Ich frage mich aber, ob das Logo noch mehr poppen würde, wenn der Schlagschatten der Schrift tiefer wäre, und die typische Schwarze Kontur noch dabei wäre

    Bei dem Speichermenü bin ich besonders neugierig - wie viel geht denn davon schon? Du benutzt ja auch den Game Maker, und speicherfunktionen schreiben ist etwas, woran ich mich selber noch nicht getraut habe...

  10. #10
    Zitat Zitat von Sabaku Beitrag anzeigen
    Wenn du noch eine bewegliche Schicht in deinem Panorama haben möchtest, kannst du ja noch Wolken einbauen...
    Aber wirklich ein sehr hübscher Titlescreen! Ich frage mich aber, ob das Logo noch mehr poppen würde, wenn der Schlagschatten der Schrift tiefer wäre, und die typische Schwarze Kontur noch dabei wäre

    Bei dem Speichermenü bin ich besonders neugierig - wie viel geht denn davon schon? Du benutzt ja auch den Game Maker, und speicherfunktionen schreiben ist etwas, woran ich mich selber noch nicht getraut habe...
    Flauschige Wolken wären das i-Tüpfelchen für das Panorama, fühle mich aber noch zu pixel-unerfahren um mich an sowas "Organisches" in der Größe zu wagen. Die Idee mit der schwarzen Kontur finde ich super und habe sie mal ausprobiert. Den Schlagschatten habe ich nicht tiefer gemacht, da es dann entweder zu gedrungen aussah oder die Buchstaben zu sehr in die Länge gestreckt. Ich denke, die Kontur hat das Logo nochmal verbessert, oder? Ist wohl wieder so eine typische "Über-Nacht-schlafen-dann-entscheiden"-Geschichte





    Ja, das Speicher- und Ladesystem habe ich auch lange vor mich her geschoben. Langsam bewege ich mich Richtung Quests und bevor ich diese einbaue, muss erstmal ein systematisches Speichersystem vorliegen, mit dem ich den Questfortschritt hinterlegen kann. Meine Funktionen sind noch in einem rudimentären Zustand mit Spieler-Position und Lvl... vor allem um das Menü zu testen. Momentan beschäftige ich mich mit dem Lesen/Schreiben von ds_lists/ds_maps und die Verschlüsselung der ini-Datei für eine vollständige Erfassung aller Variablen. Wenn du Interesse daran hast, schreibe ich gerne ein kleines Tutorial, wenn ich mit meinem Speichersystem im reinen bin und poliert habe. Vielleicht kriegen wir nen coolen Game Maker-Talk hin!

  11. #11
    Schön zu sehen wie es hier nach und nach voran mit dem Projekt geht.
    Der Titelbildschirm und der Ladebildschirm gefallen mir auch sehr gut. Passt gut zum restlichen Grafikstil und zur Farbpalette.
    Freue mich schon auf eine Demo, bis dahin verfolge ich weiterhin den Thread

  12. #12
    Zitat Zitat von Mondlichtung Beitrag anzeigen
    Schön zu sehen wie es hier nach und nach voran mit dem Projekt geht.
    Der Titelbildschirm und der Ladebildschirm gefallen mir auch sehr gut. Passt gut zum restlichen Grafikstil und zur Farbpalette.
    Freue mich schon auf eine Demo, bis dahin verfolge ich weiterhin den Thread
    Danke dir! Solche Posts motivieren mich sehr!

    UPDATE: SAVE,LOAD, REPEAT!


    Ich habe gestern lange an meinem Speicher/Lade-System rumgespielt und bin jetzt zufrieden damit. Die Telefonhäuschen in der Spielwelt sind Speicherpunkte, die unser kleiner Held nutzen kann um sein Spiel zu sichern. Das ganze System läuft wie folgt ab:



    DIe meiste Frimmelarbeit haben tatsächlich das Menü + Interaktion und das Anzeigen der Dateien aus den Files gekostet. Die Speicher- und Ladefunktionen dagegen gingen kurz und knackig. Da Sabaku neugierig war, wie die Funktionen ablaufen, möchte ich euch ein bisschen darüber erzählen. Fragt gerne nach, wenn etwas unklar ist.

    Das grobe Prinzip des Game Makers: Spiele bestehen aus verschiedenen Räumen, die verschiedene Objekte beinhalten können. Diese Objekte werden beim Betreten des Raums geladen und können mit Code versehen werden, um bestimmte Aktionen durchzuführen. Ein Object kann verschiedene "Events" beinhalten. Die (meiner Meinung nach) wichtigsten Events:

    1. Creation: Ein Codefragment, das beim Erstellen des Objects einmal ausgeführt wird. Damit können Variablen initiiert werden.

    2. Step:
    Ein Codefragment, das jedes Frame abgespielt wird. Sehr mächtig, um das Spielsystem an sich zu steuern.

    3. Draw:
    Ein Codefragment, das jedes Frame abgespielt wird und die gewünschte Information auf dem Bildschirm "zeichnet" (Bilder, Sprites). Quasi der "Zeichnen-Step".

    Natürlich gibt es noch unzählig andere Events, die sehr nützlich sind, die möchte ich aber an dieser Stelle nicht ansprechen.

    Wenn das Spiel gestartet wird, landet der Spieler beim Titelbildschirm. Beim Betreten dieses Raumes wird ein Object initiiert, welcher "main_control" heißt und alle wichtigen Spielvariablen über sein Creation-Event festlegt. Ich habe ein paar Beispiele aufgezählt, damit ihr ein Gefühl kriegt, wie das aussieht:

    Code:
    // Die Zeit im Spiel
    global.seconds = 0;
    global.minutes = 0;
    global.hours = 0;
    
    // Ein Beispiel für die Attribute von Tarquin
    attributes=ds_map_create();
    var name="Tarquin";
    
    attributes[? name+"_hp"]=100;
    attributes[? name+"_hp_max"]=120;
    attributes[? name+"_attack"]=15;
    attributes[? name+"_defense"]=7;
    attributes[? name+"_sp"]=80;
    attributes[? name+"_sp_max"]=100;
    attributes[? name+"_speed"]=12;
    attributes[? name+"_psi"]=12;
    attributes[? name+"_xp"]=0;
    attributes[? name+"_xp_max"]=50;
    attributes[? name+"_lvl"]=1;
    
    // Ein Beispiel für die Gegenständsattribute
    inventory = ds_map_create();
    var name = "Bat";
    
    inventory[? name+"_name"] = "Bat";
    inventory[? name+"_type"] = "weapon";
    inventory[? name+"_attack"] = 3;
    inventory[? name+"_defense"] = 0;
    inventory[? name+"_psi"] = 0;
    inventory[? name+"_speed"] = 0;
    inventory[? name+"_hp_max"] = 0;
    inventory[? name+"_sp_max"] = 0;
    inventory[? name+"_usedby"] = "Tarquin";
    inventory[? name+"_heal"] = false;
    inventory[? name+"_healvalue"] = 0;
    inventory[? name+"_psipoints"] = false;
    inventory[? name+"_psivalue"] = 0;
    inventory[? name+"_buyprice"] = 10;
    inventory[? name+"_description"] = "An old baseball bat.#ATK +3";
    inventory[? name+"_discard"] = true;
    Beim Codebeispiel wird die Zeitzählung auf null gesetzt, die Attribute des Helden geladen und die (ich nenne es mal so) Gegenstandsdatenbank geladen, damit das Spiel weiß, was ein Gegenstand für Attribute hat. Die Attribute werden in einer sogenannten "ds_map" geladen. Das ist eine Datenstruktur, die "Keys" mit entsprechenden "Werten" speichert, also sowas wie "HP" und den Wert der Lebenspunkte.

    Soviel also zu den Variablen. Immer, wenn das Spiel startet, werden diese Variablen geladen und festgesetzt. Der Spieler startet also immer bei Lvl 1, etc. Nun möchte ich aber meinen Spielstand festhalten und darauf zugreifen können. Dafür eignet sich folgendes Speicherskript, welches ich beispielhaft vorstelle:

    Code:
    // Ini-Datei öffnen
    ini_open("File1.sav");
    
    // Zeiten in Ini-File speichern
    ini_write_real("global", "hours", global.hours);
    ini_write_real("global", "minutes", global.minutes);
    ini_write_real("global", "seconds", global.seconds);
    
    // Attribute in Ini-File speichern
    attributes_savestring = ds_map_write(main_control.attributes)
    
    //String in Ini-File speichern
    ini_write_string("player", "player_attributes", attributes_savestring);
    
    // Ini-Datei schließen
    ini_close();
    Das Spiel öffnet damit eine Ini-Datei, die im "AppData"-Ordner von Windows abgelegt wird. Über den Befehl "ini_write_real(section, key, value)" können Zahlen dort abgelegt werden, eingeteilt nach Sektionen und dann als Key-Value-Wertepaar gespeichert. Das ist bei einfachen Variablen kein Thema. Was ist aber mit unseren komplexen Datenstrukturen wie den "ds_maps"? Alles einzeln einzutippen wäre zu aufwendig. Zum Glück hat der Game-Maker die Funktion "ds_map_write". Damit wird die gesamte ds_map in einen unleserlichen Zeichenstrang umgewandelt, den "String". Dieser String kann kann unproblematisch in die Ini-File abgelegt werden. Das Ganze sieht das ungefähr so aus:



    Über das Prinzip können auch Quest/Story-Fortschritte einfach abgespeichert werden. Ich werde zu diesen Zwecken ebenfalls eine Datenstruktur mit Key und Value wählen, z.B. "Switch1" und "0" bzw "1". Diese entspricht vom Prinzip der "Switch"-Liste beim RPG-Maker und kann genau wie dort auch hier genutzt werden. Wenn ein Quest aktiviert ist, stellt man den Switch für diese Quest von "0" auf "1" und das Spiel was bescheid. Statt 0 und 1 gehen natürlich auch "true" und "false" (die klassischen Booleans halt). Wie ihr bemerkt habe, habe ich die Gegenstandsattribute nicht gespeichert. Das macht Sinn, weil sie von Anfang bis Ende (hoffentlich!) konstant bleiben!

    Nun starten wir das Spiel neu oder die Variablen werden neu initiiert und sind wie vor dem Speichern. Wie laden wir die abgespeicherten Daten nun? Dazu nutze ich ein Load-Skript, welches die initiierten Variablen mit den gespeicherten Variablen überschreibt.

    Code:
    ini_open("File1.sav");
    global.hours = ini_read_real("global", "hours", 0);
    global.minutes = ini_read_real("global", "hours", 0);
    global.seconds = ini_read_real("global", "seconds", 0);
    global.partysize = ini_read_real("player", "partysize", 0);
    
    attributes_savestring1 = ini_read_string("player", "player_attributes", "unknown");
    ds_map_read(main_control.attributes, attributes_savestring1);
    ini_close();
    Die Ini-Datei wird geöffnet, die Variablen neu festgelegt und der String wird rausgelesen und über die "ds_map_read"-Funktion wieder in die funktionierende Datenstruktur übersetzt. Alles schick, ein Problem ist noch da: der Spieler kann dieses Save-File selber öffnen und sich so natürlich mehr Attribute und Level zuschummeln (ach, als Kind habe ich so viele Spiele gehackt! ). Hierfür hat der Game-Maker eine Verschlüsselung. Über "base64_encode(string)" kann ein String in einen verschlüsselten String umgewandelt werden und über "base64_decode(string)" beim Laden wieder in einen leserlichen String umgewandelt werden. Bei Zahlen muss der Wert erst in einen String umgewandelt und nach dem Decoden wieder in eine Zahl zurückgewandelt werden.


    Soo, ich hoffe ich konnte für ein bisschen Klarheit sorgen und euch die Speicher- und Ladefunktionen näher bringen. Ihr könnt den Code natürlich nutzen wie ihr wollt und ein bisschen rumspielen! Sagt mir bescheid, ob euch solche technischen Abhandlungen interessieren, dann schreibe ich gerne öfter über sowas.

    Stay tuned und bis zum nächsten (und weniger technischen) Devlog!

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •