Als «resource-management» getaggte Fragen

Ansätze und Techniken zur Verwaltung von Spielressourcen (Ressourcen). Normalerweise nehmen Dinge wie Sounds, Texturen, Modelle, Animationen usw. Speicher in Anspruch.


1
Wie sollte ich ein erweiterbares System zum Laden von Assets strukturieren?
Für eine Hobby-Game-Engine in Java möchte ich einen einfachen, aber flexiblen Asset- / Ressourcen-Manager programmieren. Assets sind Sounds, Bilder, Animationen, Modelle, Texturen usw. Nach ein paar Stunden Browsen und einigen Codeexperimenten bin ich mir immer noch nicht sicher, wie ich dieses Ding entwerfen soll. Insbesondere möchte ich wissen, wie ich …

2
Welche Alternativen gibt es, wenn „ResourceManager“ -Klassen als schlecht eingestuft werden?
Ich höre widersprüchliche Meinungen wie: "Engagierte Manager-Klassen sind so gut wie nie das richtige Engineering-Tool." "Spezielle Manager-Kurse sind (derzeit) der beste Weg, um ein großes Projekt mit Tausenden von Ressourcen zu überleben." Nehmen wir eine klassische ResourceManager-Klasse mit den folgenden Funktionen: Lädt Assets (Texturen, Audio, 3D-Modelle usw.) Stellt sicher, dass …


1
Entwerfen einer ResourceManager-Klasse
Ich habe beschlossen, eine zentrale ResourceManager / ResourceCache-Klasse für meine Hobby-Game-Engine zu schreiben, habe jedoch Probleme beim Entwerfen eines Caching-Schemas. Die Idee ist, dass der ResourceManager ein weiches Ziel für den Gesamtspeicher hat, der von allen Ressourcen des Spiels zusammen verwendet wird. Andere Klassen erstellen Ressourcenobjekte, die sich im entladenen …

2
Wie gehe ich mit fehlenden Ressourcen um?
Ihr Spiel erwartet, dass ein bestimmtes Asset geladen wird, aber es wird nicht gefunden. Wie soll mit der Situation umgegangen werden? Beispielsweise: Texture* grassTexture = LoadTexture("Grass.png"); // returns NULL; texture not found Mesh* car = LoadMesh("Car.obj"); // returns NULL; 3D mesh not found Es wurde möglicherweise versehentlich vom Benutzer gelöscht, …

3
Warum ist für Assets eine benutzerdefinierte Speicherverwaltung erforderlich?
Nahezu alle Ressourcen im Zusammenhang mit der Spielprogrammierung, insbesondere 3D-Open-World-Spiele, sprechen darüber, wie Sie ständig Assets auf und von Festplatte, Systemspeicher und Videospeicher entladen und neu laden müssen. Ich kann dies auf Konsolen verstehen, da sie sehr einfache Speicherverwaltungsschemata haben, die keinen möglichen Überlauf bewältigen können. Auf dem PC ist …

5
Wie erstelle ich ein neues GameObject, ohne es der Szene hinzuzufügen?
Ich erstelle im Wesentlichen mein eigenes Fertigsystem. Spielobjekte werden durch eine vom Menschen lesbare Datendatei definiert. Ich möchte ein leeres GameObject erstellen, es mit den in der Datendatei definierten Komponenten laden und es bereithalten und auf einen Instantiate()Anruf warten . Wenn ich jedoch GameObject go = new GameObject()ein neues Spielobjekt …

2
Was ist der effizienteste Weg, um auf Ressourcen zuzugreifen?
Ich habe einen Ressourcenmanager, der Ressourcen lädt und zurückgibt. Derzeit kehre ich nur shared_ptrsfür die von mir erstellten Ressourcen zurück, denke aber darüber nach, so etwas wie einfache Handles zu verwenden, wobei Sie eine ID erhalten, mit der Sie auf die Ressource zugreifen. Die Gründe sind expliziteres Eigentum und auch …


1
Benötigen Sie einen Ressourcenmanager für HTML5-Spiele?
Normalerweise wird ein Ressourcenmanager für Desktop- / Handyspiele benötigt. Aber wird es für HTML5-Spiele (Browser) benötigt? Die Hauptverantwortung des Ressourcenmanagers besteht darin, sicherzustellen, dass sich kein Klon einer Ressource im Speicher befindet. Wenn Sie jedoch im Browser etwas anfordern, wird die Anforderung normalerweise zwischengespeichert. Wenn Sie also eine weitere Anforderung …

4
Wie verwalten Sie Ihre Spielressourcen in XNA?
In der Vergangenheit habe ich Content.Load<type>("filename");überall verwendet . Dies wird schnell zu einem Albtraum und schlimmer noch, wenn Sie mehrere Kopien desselben Assets an verschiedenen Orten laden. Dann habe ich eine Resources-Klasse verwendet, die im Grunde wie folgt aussah: public class Resources { public static Texture2D particle01; ... public static …
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.