Ansätze und Techniken zur Verwaltung von Spielressourcen (Ressourcen). Normalerweise nehmen Dinge wie Sounds, Texturen, Modelle, Animationen usw. Speicher in Anspruch.
Mir sind einige Spiele bekannt, die in C ++ geschrieben sind, aber keine Ausnahmen verwenden. std::bad_allocWie gehen diese Spiele mit einem solchen Fehler um, da die Behandlung von Speicherzuweisungsfehlern in C ++ im Allgemeinen um die Ausnahme herum aufgebaut ist ? Stürzen sie einfach ab, oder gibt es eine andere …
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 …
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 …
Geschlossen . Diese Frage muss gezielter gestellt werden . Derzeit werden keine Antworten akzeptiert. Möchten Sie diese Frage verbessern? Aktualisieren Sie die Frage so, dass sie sich nur auf ein Problem konzentriert, indem Sie diesen Beitrag bearbeiten . Geschlossen vor 2 Jahren . Ich möchte ein flexibles Ubershader-System mit verzögerter …
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 …
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, …
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 …
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 …
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 …
Ich habe einen Ressourcenmanager, der die Lebensdauer der Ressourcen im Speicher verwaltet. Eine "Ressource" ist so etwas wie eine Textur, ein Netz usw. Ich habe auch eine Entitätsklasse, die Basisklasse für Dinge in meiner Spielwelt, die Zeiger auf einzelne Ressourcen enthält. Ich denke darüber nach, meinem Ressourcenmanager ein Speicherkontingent zu …
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 …
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 …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.