Eines vorweg, dieser Thread ist kein Tutorial. So sehr möchte ich nicht ins Detail gehen. Mir geht es eher darum, unterschiedliche Möglichkeiten gegenüberzustellen und mit denen zu diskutieren, die selbst schon mal ein eigenes Inventar entworfen haben oder sich recht gut mit dem Scripten auskennen. Vielleicht gibt es ja auch viel elegantere Lösungen als meine, darüber könnten wir auch sprechen.
Macht es einen Unterschied, ob man den 2K/2K3 oder XP/VX/Ace nimmt?
Äußerlich nicht, die GUIs sind sich ziemlich ähnlich, genauso wie die ihnen zugrunde liegenden Konzepte. Was sich unterscheidet ist die interne Darstellung der Daten. Ich gehe mal davon aus, dass man das Standardsystem gar nicht benutzt. Man muss also alle Gegenstände manuell anlegen.
Ein Gegenstand besteht immer mindestens aus einer ID und der Anzahl, würde ich sagen. Damit hätte man auf den alten Makern schon mal das Problem, dass man gleich zwei Werte abspeichern müsste. Ich hab das daher so geregelt, dass die Position der Variable die ID ist. Variable 101 ist z. B. immer der Heiltrank und ihr Wert die Anzahl. Natürlich sind meistens nicht alle Gegenstände belegt, es gibt also "Lücken" im Inventar. Würde man das 1:1 mit den Lücken ausgeben, wäre das nicht so schön. Man muss die Lücken also entweder überspringen oder ein temporäres Inventar anlegen, in das man alle belegten IDs aus dem richtigen Inventar kopiert.
Auf den neuen Makern sieht das alles schon ganz anders aus. Ich rate jedem, dort lieber Ruby zu benutzen. Rubys Array (das eigentlich eher so was wie die ArrayList von Java ist) kann dynamisch verändert werden. So entstehen erst gar keine Lücken. Außerdem kann man, sofern man Klassen aus den Gegenständen macht, in einem Feld mehrere Werte gleichzeitig abspeichern.
Nun aber zum eigentlichen Thema:
Inventar-Systeme
Alles-auf-einmal-System
Die einfachste Möglichkeit. Man zeigt das gesamte Inventar auf dem Bildschirm an, meistens mit Bildern, weil der Platz sehr begrenzt ist. Das ist auch ein großer Nachteil des Systems, es geht nur mit wenigen Gegenständen. Außerdem ist die Bedienung per Tastatur ziemlich umständlich. Die Übersichtlichkeit ist einer der wenigen Pluspunkte.
Seitensystem
Bei diesem System werden alle Gegenstände seitenweise angezeigt, z. B. Gegenstand 1 - 5 auf Seite eins, 6 - 10 auf Seite zwei usw. So hab ich's bei einigen meiner neueren Spiele gemacht. Um Lücken zu vermeiden, hab ich wie oben angesprochen ein temporäres Inventar benutzt.
Ringsystem
Dieses System kam in einigen älteren Spielen wie Zwielicht oder LuF zum Einsatz. Es werden von vorne rein nur die Gegenstände angezeigt, deren Anzahl größer null ist. Bewegt man den Cursor über die untere bzw. obere Grenze hinaus, wird an der anderen Seite wieder angefangen. Die einfachste Version ist ein einzelnes Feld, aber natürlich ist es sinnvoller, mehrere Gegenstände gleichzeitig anzuzeigen. Hat man weniger Gegenstände als "Slots" (z. B. 5 werden angezeigt, man hat aber nur 3), werden einige doppelt angezeigt, das sieht nicht so schön aus. Außerdem kann der Sprung vom Anfang zum Ende etwas verwirren.
Listensystem
Mein aktueller Favorit ähnelt dem Ringsystem, ist aber nach oben und unten geschlossen. Man sieht immer einen Ausschnitt der Gegenstände, beispielsweise fünf Stück. Mal angenommen er zeigt am Anfang die Gegenstände 1 - 5. Wenn der Cursor nun am Ende der Anzeige ist, also auf Position 5, dann verschiebt ein weiterer Klick den Ausschnitt einfach zu Gegenstand 2 - 6. Das System sieht ansprechend aus, lässt sich recht gut bedienen und ist übersichtlich.