Zum Inhalt wechseln

Change

malzbie

malzbie

Registriert: 04. Jun 2010
Offline Zuletzt aktiv: Heute, 10:37 Uhr
*****

Spielstände speichern. Wie macht ihr das?

04. April 2012 - 11:00 Uhr

Hallo Leute.
Ich will mal eine Frage in die Runde stellen, wie ihr eure Spielstände abspeichert.
Ich frage das deswegen, da ich momentan an einem Spiel dran bin, bei dem ich ganz viele Daten abspeichern will bzw. muss.
Bei DungeonLegend habe ich das über Playerprefs gemacht, da die Anzahl an Daten noch recht überschaubar war.
Jetzt, bei meinem neuen Projekt werden es jedoch viel mehr Daten sein (Jeder Gegner wird mit Vitalwerten, Position, Ausrichtung usw. gespeichert) und da finde ich die Playerprefs nicht mehr so richtig gut.

Ich fuchse mich gerade in die XML Möglichkeit ein. Muss aber sagen, dass es irgendwie nicht in mein Köpfchen will. ;) Ein Test mit einem Build hat mir gezeigt, dass ich XML's erzeugen kann und sie bei einem Standallone auch gespeichert werden. Geht das auch bei iOS? Gibt es da eurerseits Erfahrungen?

Kann ich bei einer XML einzelne Bereiche überschreiben oder muss ich immer die ganze Datei neu erzeugen? Ich würde gerne einen Spielstand für alle Szenen haben und es sollten nur die Werte der aktiven Szene abgespeichert werden, bzw hinten dran gehangen werden, falls man zum ersten Mal in der Szene ist.

Wenn die XML auf einem iOS gespeichert würde, was passiert bei einem Update des Spiels? Ist die Datei dann noch da oder würde sie überschrieben werden, da im gleichen Ordner?
Bei Playerprefs und iOS geht das recht gut. Da bleiben die Daten erhalten.

Was gibt es noch für Möglichkeiten Daten auf unterschiedlichen Medien zu speichern?
WEB Basierende Spiele interessieren mich erstmal nicht. Es geht mier erstmal um lokale Speicherdaten.

Ich würde mich freuen, wenn der Ein oder Andere mir ein paar funktionierende Techniken aufzeigen könnte. Vielleicht auch über Vor- und Nachteile schreibt.:)

Das ist wichtig, wenn ich ein Spiel erstellen will!

23. März 2012 - 20:59 Uhr

Weil viele Leute ein Spiel mit Unity erstellen wollen, aber ein paar wichtige Infos fehlen, werde ich hier einmal erklären was alles wichtig ist und warum es manchmal zu Problemen kommt.

Warum mach ich das? Weil ich mich eben gerade geärgert habe!
Eines unserer Forenmitglieder (den Namen werde ich nicht nennen) hatte mich eben über Skype gefragt, ob ich jemanden kennen würde, der 3D Objekte erstellt.
Das war die Frage, nicht mehr und nicht weniger!
Natürlich war mir klar was er wollte. Er wollte, dass ich ihm jemanden vermittle, der kostenlos Modelle erstellt oder aber das ich sie für lau erstelle. Als ich ihm gesagt hatte, dass ich einige Leute kenne, die das aber professionell, also gegen Bezahlung machen, und ich selber keine Zeit dafür habe, hat er mich aus den Kontakten raus gekickt!
Das war nicht die feine Art und außerdem unrealistisch. Vorallem ärgert es mich, da ich ihm schon einige Male geholfen habe.

Somit sind wir beim Thema:

Jeder, der ein Spiel erstellen will sollte beachten, dass ein Spiel nicht nur aus dem Code besteht, der die Engine (in unserem Fall Unity3d) steuert.
Nein, das Wichtigste sind die Objekte, die gesteuert werden!
Die müssen in einem 3D Programm oder, wenns 2D sein soll, in einem 2D Grafikprogramm erstellt werden.
Diese Sachen kosten eine Menge Zeit und Können! Die meisten Leute denken, dass sowas mal eben gemacht ist. Dem ist nicht so. Ein einfaches Haus welches ne nette Textur hat, dauert schon mehrere Stunden.
Ein Männchen, welches mit Bones versetzt und animiert wird, dauert mindestens einen Tag, wenn nicht mehrere Tage!!!!
Die Objekte für ein ganzes Spiel dauern Wochen bis Monate, bis sie alle gebaut, texturiert, animiert und arangiert sind!

Natürlich braucht ein Spiel auch Geräusche und Musik. Einfache Geräusche sind teilweiser im Netz für lau zu bekommen. Gute Geräusche muss man kaufen oder aber selber aufnehmen bzw. selber erstellen.
Dieses dauert auch. Nicht ganz so lang, aber es summiert sich.
Bei der Musik sieht es schon ganz anders aus. Wer kann schon selber Musikstücke erstellen. Also entweder kaufen oder jemanden komponieren lassen. Natürlich gibt es auch GEMA freie Stücke im Netz, meist passen die aber nicht oder andere Spiele haben diese Musik schon drin. Das will man natürlich nicht.

Jetzt kommt die GUI, die Menüs, die Anzeigen, und und und... auch dafür braucht es jemanden, der sowas kann, wenn es nach etwas aussehen soll. Auch hier kann man mehrere Tage einplanen, bis alles nebensächliche erstellt worden ist.
Story, Dialoge, Spielziele lasse ich jetzt einfach mal weg. Da gehe ich davon aus, dass wenigstens das vorher schon gemacht wurde.

Das Programmieren des Codes rechne ich auch nicht ein, denn ich gehe davon aus, dass die Jungs hier, genau das machen.

So, jetzt seht ihr, dass ein Spiel viel mehr ist, als einen Cube von a nach b zu bewegen.
Ihr solltet jetzt auch erkennen, dass komplexere Spiele nur schwer von einer Person zu bewältigen sind.
Ihr solltet außerdem bedenken, dass die Sachen, die ihr nicht könnt, nicht immer umsonst von anderen Leuten hergestellt werden. Nein, gerade das Gegenteil ist der Fall. Es dauert nämlich unheimlich lange und warum sollte der Mensch seine Freizeit für jemanden anderes opfern, von dem er nichts hat?

Was mir auch noch ganz wichtig ist:
Nur weil ich Tutorials umsonst ins Netz stelle, heißt das nicht dass ich alles umsonst mache und nix anderes zu tun habe als hilflosen Fans zu helfen.
Die Tutorials sind gerade deswegen da, damit andere Leute es lernen und selber machen können!
Es geht nicht nur mir so, nein allen Jungs geht's so, die Tut's ins Netz stellen.
Ganz so als wäre man Mutter Theresa! ;)
Versteht einfach, dass so Leute wie ich 40Stunden in der Woche arbeiten, eine Familie haben, eigene Hobbys betreiben und dann nur noch wenig Zeit für anderes da ist.
Diese wenige Zeit ist kostbar und wird nicht leichtfertig an Andere abgetreten.

Somit macht euch klar, dass nix umsonst ist! Manchmal hat man Glück und bekommt etwas für lau. Meistens aber nicht.
Also bleibt euch nur alles selber zu machen, sich mit Gleichgesinnten zusammen zu schließen um alle Felder abzudecken oder aber Geld für Leistungen zu bezahlen.
Selbst die Gleichgesinnten wollen was haben. Meist arbeiten sie in Vorleistung und wollen einen Teil des Gewinns, wenn es denn einen Gewinn gibt.


Das Ganze soll euch nicht entmutigen, nur die Augen öffnen!

c# Warnmeldung. Was könnte sie bedeuten.

19. März 2012 - 19:36 Uhr

Hall Leute. Ich bin gerade dabei auf c# umzustellen und da kommen mir immer noch einige Sachen vor, die ich nicht verstehe.
So wie diese Meldung:

Zitat

WARNING: Implicit downcast from 'UnityEngine.Object' to 'UnityEngine.TextAsset'.

Sie rührt von dieser Zeile her:
var asset:TextAsset = Resources.Load("Dungeons/Dungeon1a");

Das script funktioniert aber die Meldung nervt mich.
Drum die Frage an euch, was muss ich ändern, damit diese Meldung endlich weg ist. :)

Ein "interface" eines c# Scripts mit Javascript einbinden. Ist das möglich?

08. März 2012 - 15:08 Uhr

Hi!
Ich spiele greade mit RagePixel rum und wollte nun auf die c# scripte des Tools zugreifen, damit ich mein Männeken animieren kann.

Auf dies muss ich zugreifen:
public interface IRagePixel {
    void SetSprite(string name);
    void SetSprite(string name, int frameIndex);
    void PlayAnimation();
    void PlayAnimation(bool forceRestart);
    void PlayNamedAnimation(string name);
    void PlayNamedAnimation(string name, bool forceRestart);
    void PlayNamedAnimation(string name, bool forceRestart, float delayFirstFrame);
    bool isPlaying();
    void StopAnimation();
    void SetSize(int width, int height);
    Rect GetRect();
    void SetHorizontalFlip(bool value);
    void SetVerticalFlip(bool value);
    void SetTintColor(Color color);
}
Ich weiß zwar nicht warum der Author das so gemacht hat, jedenfalls fragt er scheinbar hierüber die anderen Scripts ab.
Also ein Interface dieser Art kenne ich (noch) nicht.;)

Im Beispielscript (c#) geht das jedenfalls so:
 private IRagePixel ragePixel;
Wenn ich in dem Code mit der Maus über "IRagePixel" gehe, bekomme ich angezeigt, dass es vom Typ interface ist.
Tja... nur finde ich irgendwie keinen Weg dieses Dingen in js zu deklarieren.
Wahrscheinlich gibt es diese Option in js gar nicht.
Aber ich hab mir gedacht, fragen kannste ja mal. :)

Werte vor dem Komma abschneiden und anderer Var übergeben

27. Februar 2012 - 11:32 Uhr

Hi da.
Ich hab da mal eine ganz dumme Frage. ;)
Wie kann ich denn von einem Float die Zahl vor dem Komma abschneiden und sie einer Anderen Variable übergeben?
Ich brauche also alles vor dem Komma, es darf aber nicht gerundet werden.
Irgendwie komm ich gerade nicht drauf.

Hülfe! :D