Mengengerüste

Beispiel Speicherverbrauch

Beispiel CD-Ladezeiten

Fazit

Mengengerüste in Excel

Von Marc Kamradt

Mengengerüste

Es kommt häufig vor, dass man für ein Projekt oder einen Teil eines Projekts überschlagen möchte, ob man mit den gegebenen Ressourcen zum Ziel kommt. Dafür stellt man ein Mengengerüst auf und kann schon im vornhinein eine Abschätzung geben, ob die gegebenen Ziele erreichbar sind.

Zwei Beispiele von Mengengerüsten, die mir zuletzt begegnet sind und anhand denen ich kurz die Nutzung von Excel zeigen will sind Speicherverbrauch und CD-Ladezeiten.

Beispiel Speicherverbrauch

Übersicht

Um zu sehen, ob die Daten für unser PS2-Projekt in die 32MB Hauptspeicher passen haben wir in Excel eine Tabelle erstellt und erstmal die groben Kategorien an Speicher definiert, also so Dinge wie:

  • Geometrie
  • Texturen
  • Programm
  • Leveldaten
  • etc.

Nebenrechnung

Jede einzelne Kategorie haben wir in einer Art "Nebenrechnung" etwas genauer beleuchtet. Das sah ungefähr so aus:

SpielerAnimationen pro Waffe 50
Waffen pro Level 4
SpielerStandardAnimationen 53
Animation pro Gegner 15
Gegner pro Level 5
KB Speicher pro Animation 50
KB Speicher für Animationen 16400

Notizen

Jetzt konnte man an den verschiedene Parametern überlegen wie man sie verbessern könnte und Lösungsansätze gleich per "Notiz" bei den einzelnen Zellen vermerken.

Unsichere Werte

Werte, die weder durch Tests, noch durch Schätzungen belegbar waren, haben wir rot markiert, damit wir auch wussten, wo noch Tests notwendig waren.

In der Übersicht konnten wir sofort sehen, dass die Animationen den meisten Speicher verbrauchen und das der Gesamtspeicherverbrauch deutlich über 32MB lag. Jetzt konnten wir überlegen, wo bei den Animationen gespart werden kann.

Am einfachsten schien uns als Programmierer natürlich zu überprüfen, ob das Datenformat nicht verändert werden kann, um die durchschnittlichen 50KB pro Animation zu senken - und siehe da, mit ein paar Recherchen konnten wir ziemlich sicher auf nur noch 10KB pro Animation runterkürzen. Voila!

Projektleitung

Da die Projektleitung natürlich an den (Zwischen-) Ergebnissen interessiert ist haben wir die einzelnen Kategorien noch farbig gekennzeichnet und die Datei zur Verfügung gestellt - Excel hat nun wirklich jeder Projektleiter auf seinem Rechner.

An diesem Mengegerüst kann dieser nun Werte verändern, wie "Animationen pro Gegner", wenn die Spieledesigner denken, das diese Werte verändert werden können oder müssen. Die Auswirkung auf den Speicherbedarf ist sofort sichtbar.

Intranet

Der Projektleiter konnte die aktuellen Schätzungen für den Speicherverbauch von Excel auch sehr unproblematisch als HTML-Dokument exportieren und auf der Projekt-Intranet-Seite veröffentlichen, so dass sich das gesamte Team über den Stand der Dinge informieren konnte.

Beispiel CD-Ladezeiten

Um die Ladezeiten unseres Dateisystems zu analysieren haben wir an verschiedenen Stellen des Programms Einträge in ein Logfile geschrieben. Diese waren anfangs ohne spezielle Struktur. Das half auch ein wenig, um einen ersten Eindruck zu bekommen, wo und wann das Dateisystem auf der CD herumsprang, aber mehr eben auch nicht.

Comma Seperated Values

Um mehr Informationen aus den Daten ziehen zu können haben wir das Format jeder Zeile im Logfile vereinheitlicht, die einzelnen Werte mit einem Semikolon (wahrscheinlich wegen der deutschen Version von Excel) getrennt und der Datei die Endung .csv gegeben.

Jetzt konnten wir sie bequem in Excel laden und z.B. nach verschiedenen Aktionen wie "OPEN", "CLOSE", "SEEK", "CACHING" sortieren und dort ein wenig mit Summen und Mittelwerten herumspielen und jede Verbesserung (oder Verschlechterung) an Laderoutinen oder Caching analysieren.

So haben wir herausgefunden, dass das eigentliche Laden nur ca. 2/3 der Vorbereitungszeit eines Levels ausmacht und immerhin noch 1/3 durch Konvertierungs- und Verwaltungsvorgänge aufgebraucht wurden.

Fazit

  • Daten Schnell sortiert und analysiert (Summe, Mittelwert)
  • Einfaches Ausprobieren von Optionen
  • Projektleitungs-freundlich
  • Kann einfach auf Intranetseite veröffentlicht werden
  • CSV-Dateien lassen sich unproblematisch vom Programm aus schreiben