Sind 800 MB Ramspeicher zu viel für ein Spiel??

Übersicht Sonstiges Smalltalk

Neue Antwort erstellen

 

Matthias

Betreff: Sind 800 MB Ramspeicher zu viel für ein Spiel??

BeitragMi, Jun 04, 2008 19:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Sind 800 MB Ramspeicher zu viel für ein Spiel??

Also habe da ein kleines Problem. Ich habe MeshTiles die ich schön aneinander gesetzt habe.

Es gibt 3Detail Stuffen. Um Triangles zu Sparen.
Functioniert auch recht schnell. Nur ebend der Ramspeicher ist Enorm.
Bis jetzt 350MB wenn noch Pflazen dazu kommen werdens bestimmt 800.
Selbst hab ich 2GB aber nicht jeder hat soviel.

Blitzcoder

Newsposter

BeitragMi, Jun 04, 2008 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich versteh nun nicht ganz, was du meinst, aber wenn es dein eigenes kleines Spiel ist sind 800 DEFINITIV zu viel. Hau Polygone weg, lad das Zeig dynamisch etc.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

DjDETE

BeitragMi, Jun 04, 2008 19:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Mhm kommt auf das Spiel an, wenn es nötig ist kann man damit leben, ich würde aber trotzdem versuchen es unter 512MB Ram zu halten, das haben die meisten Rechner (glaube ich).
MfG DjDETE
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden.

aMul

Sieger des Minimalist Compo 01/13

BeitragMi, Jun 04, 2008 19:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Also entweder benutzt du riesige Texuren oder speicherst irgendwelche Sachen doppelt und dreifach.
Ich kann mir nicht vorstellen, wie man sonst auf so viel Speicherverbrauch kommen soll.

Aber um auf deine Frage zu antworten:
Du solltest wirklich möglichst im zweistelligen Bereich bleiben. Wenn es ein etwas größeres Spiel ist, ist dreistellig auch ok, aber nicht mehr als 300Mb, sonst gucken die mit 512Mb RAM in die Röhre.

Andere wichtige Sache: Der Grafikspeicher. Der ist ja doch noch etwas kleiner als der RAM, da muss man auch besonders acht geben.
Panic Pong - ultimate action mashup of Pong and Breakout <= aktives Spiele-Projekt, Downloads mit vielen bunten Farben!
advASCIIdraw - the advanced ASCII art program <= aktives nicht-Spiele-Projekt, must-have für ASCII/roguelike/dungeon-crawler fans!
Alter BB-Kram: ThroughTheAsteroidBelt - mit Quelltext! | RGB-Palette in 32²-Textur / Farbige Beleuchtung mit Dot3 | Stereoskopie in Blitz3D | Teleport-Animation Screensaver
 

buja

BeitragMi, Jun 04, 2008 19:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Kommt drauf an was du für ein Spiel machst. Bei nem 3D-FPS ärgert sich niemand wenn man 512 oder 1024 braucht, aber wenn Mario 1000 braucht ist ärgerlich. wenn sich das lohnt ist das glaub ich kein Problem.
Aber wenn das Spiel soviel RAM frisst muss es entweder schlecht programmiert sein ODER SEHR GEIL SEIN.
...
 

Matthias

BeitragMi, Jun 04, 2008 19:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja es ist 3D Und nicht schlecht Programiert.

Versucht dochmal 300*3 Meshes mit einer größe von 64x64 Vertices +Textur von 64x64 zu machen. Da kommt mann schnell mal auf 350MB

Na gut ich könnte die MeshTiles noch weiter dehnen und die CameraRange von 2000 auf 1500 runter setzen aber letzendlich komme ich nicht unter 180MB nur für die MeshTiles.

BladeRunner

Moderator

BeitragMi, Jun 04, 2008 19:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur so nebenbei: hier geht es nicht um RAM sondern VRAM, und da dürften die wenigsten mehr als 128 - 256mb besitzen, und nur ein winzig kleiner Anteil mehr als 768 mb. Das heisst Du schaffst dir selbst einen Flaschenhals weil ständig Texturen und Daten hin und her geschaufelt werden müssen.
Da hilft nur eines: DEUTLICH reduzieren. Vielleicht solltest Du deine Kartengrösse mal überdenken. Rolling Eyes
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Xaron

BeitragMi, Jun 04, 2008 19:52
Antworten mit Zitat
Benutzer-Profile anzeigen
Matthias hat Folgendes geschrieben:
Ja es ist 3D Und nicht schlecht Programiert.

Versucht dochmal 300*3 Meshes mit einer größe von 64x64 Vertices +Textur von 64x64 zu machen. Da kommt mann schnell mal auf 350MB

Na gut ich könnte die MeshTiles noch weiter dehnen und die CameraRange von 2000 auf 1500 runter setzen aber letzendlich komme ich nicht unter 180MB nur für die MeshTiles.


Naja, aber die Texturen kannst Du ja sicher mehrfach verwenden...

Gruß - Xaron
Cerberus X - Monkey X Reloaded!
 

buja

BeitragMi, Jun 04, 2008 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Aso sach doch das es VRAM ist.
Meine GraKA ist schnell und hat nur 512 (GeForce 7950).
Und ich wollte damit nicht sagen, dass dein game schlecht programmiert ist Sad
...

Willi die Rübe

BeitragMi, Jun 04, 2008 21:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja das ist zwar ziemlich ungewöhnlich für ein Blitz3D Spiel, aber eigentlich ist das mittlerweile bei den heutigen Spielen so üblich, dass der Vram auf den normalen Ram ausgeweitet wird. Wink

Du sagtest, es gäbe 3 Detailstufen. Befinden sich von jedem Mesh jeweils diese 3 Stufen im Ram? Oder wird dies für LOD gebraucht?
Ich habe keine Lösung, aber ich bewundere das Problem.
Tehadon
Q6600, MSI Neo2-FR, 4GB Ram, nVidia 7800 GTX

At the Farewell Party visit: MySpace | Homepage
 

Dreamora

BeitragMi, Jun 04, 2008 21:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Benutz DDS texturen statt png/bmp oder so.

Dann passt der spass in 1/4 bis 1/6 des speicher platzes.
wenn du die DDS inkl mipmaps erzeugst laden die texturen darüber hinaus 5-20mal schneller
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

TheShadow

Moderator

BeitragMi, Jun 04, 2008 23:13
Antworten mit Zitat
Benutzer-Profile anzeigen
übrigens ist bei ca. 1,3 GB unter 32-Bit-Windows OS Schluß pro Programm (inkl. VRAM)

sollte ein Programm den Wert übersteigen, dann stürtzt es ab... (oder evtl. malloc liefert 0 zurück)
Meist passiert es bei großen Programmen mit vielen Daten (3D CAD)

dementsprechend sollte man unter 512 MB bleiben - besser unter 128 MB
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

Dreamora

BeitragMi, Jun 04, 2008 23:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Wert ist derzeit bei WinXP auf 2GB pro Prozess unabhängig von der Menge installiertem RAM. Vista gilt das ebenfalls.
Wenn man weniger RAM hat gibts einfach ne eklige Paging Orgie, deswegen ist es sinnvoll das man mit DX7 spielen sich auch überlegt was seine Zieluserschaft ist. Und nein GF8800 User mit 2-4GB RAM sinds vermutlich weniger Wink

Wenn man einen Level hat der alle 330 Tiles mit eigenen Texturen hat, hat man ohnehin schon irgendwie ein design problem in den Grundlagen der überlegungen ... sowas hat man in keinem Spiel ...
Da muss man sich schon ein wenig einschränken welche teile davon man wirklich braucht.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Matthias

BeitragDo, Jun 05, 2008 9:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke für eure Tipps.

Ich habe das Problem jetzt anders gelößt.

Also ich arbeite noch immer an dem TerrainEditor für NanoWorld.

Anfangs stellte ich mir vor, das ich einfach nur zb 5 1024ger BlitzTerrains benutze. Allerdings gibs da Probleme diese zu bearbeiten. ModifityTerrain functioniert nur auf einen BlitzTerrain vernünftig. Liegt bestimmt an das LOD.

Naja jedenfalls habe ich mir so gedacht das mann ja einfach ein Mesh Terrain benuzen könnte. Bzw mehrere Abschnitte. Der Ramspeicherverbrauch ist Hammer 1,8GB.

So nun hab ich mir überlegt. MeshTiles die immer wieder neu Aktualiesiert werden. Also die die hinten raus gehen werden vorne wieder angesetzt und mit neuen Daten gefüttert.

Aber leider hat mann da mal schnell 500000Triangles zusammen.
Deswegen auch die LOD Stuffen. Allerdings sind diese mit ca 350MB immer noch zu viele.

So nun habe ich einfach die Triangles für jede der 3 LOD Stuffen in ein Dim feld gespeichert. Und wenn nun ein MeshTiles den LOD Bereich verläßt bekommt es die etsprechenden Triangles der nästen LOD Stuffe. Damit ist es mir gelungen auf 70MB zu reduzieren. Was aber etwas auf den CPU geht, den ich eigentlich sparen wolte.

Wem es interessiert. Hier das Prg. 8MB

http://strategiegame-schmiede....,-dow.html


F1=Fenster An/Aus
Wenn mann mit der Leertaste das WireFrame aktiviert, kann mann das LOD System gut erkennen.







user posted image
 

Dreamora

BeitragDo, Jun 05, 2008 11:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit den BlitzTerrains sollte eigentlich prinzipiell funktioniert haben, immer vorausgesetzt du hast das ganze intelligent und effizient gehandhabt: Das heisst alle nicht benutzten LoD Terrains werden mit hideentity vor UpdateWorld deaktiviert und nach update world mit showentity wieder aktiviert. Dann haben sie keine LoD berechnung und du keine Performance probleme Smile

Allerdings versteh ich net wofür du soviele Tiles brauchst wenn du ein problem hast das original mit LoD Terrains hätte machbar sein sollen. weil dann wär ein GeoMipmapping mesh terrain (gibts einige freie und für höhere ansprüche verkauft Sswift eines für 25$ an indie user) mehr als ausreichend und da brauchst du selten soviele Tiles ... 8x8 - 16x16 und letzteres nur im worst case. Wobei jedes dieser Tiles maximal 256x256 Textur hat, 512x512 NUR wenn du DXT1 DDS Texturen hast, weil du sonst den VRAM der meisten User sprengst. 128 sollte die angezielte VRAM Menge sein und der Backbuffer + FrontBuffer schluckt schon 10MB bei ner normalen auflösung.
Solche Terrains / Welten kann man sonst mit T.ED auch relativ gut, schnell und einfach erzeugen und kann dann gleich noch für meshes und terrain relativ hochqualitative Lightmaps erzeugen lassen.

Dein ansatz mit "was hinten rein geht etc" klingt gut wird aber tödlich. DX7 ist nicht so optimiert auf dynamische Meshpushereien. Auf ner 8800GTS SuperClocked bricht man bei 32000 vertices die man so anpasst pro frame runter auf 20FPS und das auf nem 3Ghz Dualcore. Das heisst das maximum das du so füttern darfst damit du noch ein spiel daneben hast sind 500-1000, vielleicht auch 2000. Mehr is da net drin.
Wenn du mehr bräuchtest würd ich empfehlen mir eher etwas mit 1 LoD terrain, der Sichtweite und modifikation der Textur zu überlegen (dx7test.dll / fastextends und render to texture um die mit high performance zu modifizieren in echtzeit zb) so das du mit einem terrain und einer textur weg kommst.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group