Mapping & Hammer

GMod-Map testen: Playtest mit Spielern in fünf Stufen

GMod-Map testen, bevor sie live geht: fünf Stufen vom Solo-Durchgang bis zur Runde mit Spielern, mit Konsolenbefehlen, Checkliste und Regeln für Feedback.

Teste eine GMod-Map in fünf Stufen: finaler Compile, Solo-Durchgang mit Entwicklerkonsole, Test auf einem sauberen Client ohne deinen Content, Test auf einem Dedicated Server und zuletzt eine Runde mit echten Spielern. Allein auf dem eigenen Rechner bist du Server und Client zugleich und hast jede Datei lokal. Fehlender Content, ruckelnde Aufzüge, zu wenige Spawns und Einbrüche bei vielen Entities zeigen sich deshalb erst in den späteren Stufen.

Warum der Test allein nicht reicht

  • Du bist Server und Client zugleich. Im Einzelspieler überspringt der Client die Prediction. Auf einem Server berechnet jeder Client seine eigene Bewegung voraus, und der Server korrigiert sie, wenn er zu einem anderen Ergebnis kommt. Am deutlichsten wird das auf bewegten Plattformen: Vertikal fahrende Plattformen wirken im Mehrspieler für Mitfahrende ruckelig.
  • Dein Rechner hat jeden Content. Texturen, Models und Sounds liegen in deinem Spielordner, dazu kommen gemountete Spiele. Ein Tester hat nur, was in der BSP steckt oder was der Server ausliefert.
  • Ein Server läuft ohne Cheats. Viele Diagnosebefehle brauchen sv_cheats 1, auf einem Server steht der Wert standardmäßig auf 0. Die Analyse machst du lokal, den Server nutzt du zum Beobachten.
  • Mehr Spieler bedeuten mehr Entities. Jeder Spieler, jede Waffe und jedes gespawnte Prop ist ein Entity. Spawns, Türen, Bildrate und das Edict-Limit werden erst unter Last geprüft.

Der Testplan in fünf Stufen

  1. Finaler Compile. Teste nur die Datei, die du veröffentlichst: VVIS vollständig, VRAD mit -final, Cubemaps gebaut, Content gepackt. Die Prüfung der Datei selbst beschreibt Map vor Release prüfen. Gib jeder Testversion einen eigenen Dateinamen, denn der Server weist Clients mit abweichender BSP ab (Your map [...] differs from the server's.).
  2. Solo-Durchgang. Lade die Map lokal, aktiviere developer 1 und laufe sie vollständig ab: jede Tür, jeden Knopf, jeden Aufzug, jede Leiter. Lies danach die Konsole. Starte anschließend ein Spiel mit mehreren Slots und fülle sie mit bot. So siehst du, ob die Spawnpunkte reichen.
  3. Sauberer Client. Die Startoptionen -noworkshop und -noaddons schalten Workshop- und Ordner-Addons vorübergehend ab. Lose Dateien im Spielordner und gemountete Spiele bleiben aber erhalten. Verlässlicher ist ein zweiter Rechner oder ein Tester, der deinen Content nie hatte.
  4. Dedicated Server. Lade die Map auf einem Dedicated Server und verbinde dich. Lies die Serverkonsole beim Mapstart, prüfe, ob Map und Content beim Client ankommen (siehe FastDL und Workshop), und fahre jeden Aufzug mit echtem Ping.
  5. Echte Spieler. Spiele die Map in dem Spielmodus, für den sie gedacht ist, mit so vielen Spielern wie möglich. Du beobachtest und notierst, du erklärst nichts.

Konsolenbefehle für die Stufen 2 bis 4

BefehlZeigtsv_cheats 1 nötig
developer 1zusätzliche Meldungen in der Konsole und oben links im Bildnein
cl_showfps 1Bildratenein
net_graph 1Bildrate, Latenz und Paketdatennein
cl_showpos 1aktuelle Positionnein
getposschreibt Position und Blickwinkel in die Konsolenein
statusMap, Spieler und Verbindungennein
report_entitiesEntities nach Klasse gezählt, dazu die Gesamtzahl mit Edictsnein, aber nur für den Host oder in der Serverkonsole
+showbudgetRechenzeit pro Bild nach Bereichenin GMod nein (die Cheat-Pflicht aus dem Valve-Wiki gilt für andere Source-Spiele)
mat_wireframe 1alles Gezeichnete als Drahtgitterja
mat_leafvis 1, r_DrawPortals 1aktuelles Visleaf und Areaportalsja
r_drawclipbrushes 1, vcollide_wireframe 1Clip-Brushes und Kollisionsmodelleja
showtriggers_toggleTrigger-Brushesja
nav_edit 1, ai_nodesNavmesh und AI-Nodesja
soundscape_debug 1Linien zu allen env_soundscape, die aktive in Grünja

Ein sinnvoller Start für den Solo-Durchgang:

sv_cheats 1
developer 1
cl_showfps 1
cl_showpos 1
report_entities

Notiere die Gesamtzahl aus report_entities auf der leeren Map. Sie ist dein Ausgangswert, bevor Spieler und Props dazukommen. In der Konsole eines Dedicated Servers gibt stats zusätzlich Leistungswerte des Servers aus. Wie du mit mat_wireframe und +showbudget Ursachen findest, steht in GMod-Map optimieren.

Checkliste für den Test

PrüfpunktWorauf du achtestStufe
Spawnsjeder spawnt frei, niemand stirbt am Spawn, genug Punkte für den vollen Server2 mit Bots, 5
Stuck-StellenEcken, Spalten zwischen Props, Bereiche hinter Türen: Kommt ein Spieler ohne Noclip wieder heraus?2, 5
Out of boundsDächer, Mauerkronen, der Rand der Skybox: Was erreichen Spieler durch Springen und gestapelte Props, und was sehen sie dort?5
Licht und Cubemapseinmal mit mat_hdr_level 0, einmal mit mat_hdr_level 2 ablaufen, Reflexionen prüfen2, 3
SoundSoundscapes wechseln an den richtigen Stellen, die Konsole meldet keine fehlenden Sounds2, 3
Performanceniedrigste Bildrate am Punkt mit der weitesten Sicht, während alle Tester dort stehen2, 5
Türen und Aufzügemehrere Spieler blockieren die Tür, fahren gemeinsam, springen während der Fahrt4, 5
NavigationNPCs und Nextbots erreichen alle Bereiche, siehe Navmesh und AI-Nodes2
Fehlender Contentkeine pink-schwarzen Flächen, keine ERROR-Models auf dem sauberen Client3

Zeigt der saubere Client Fehler, hilft Fehlende Texturen und ERROR-Models beheben. Was beim Bau von Aufzügen zu beachten ist, steht in Aufzüge und Züge.

Feedback sammeln und gewichten

Ein Fund ohne Ort lässt sich nicht beheben. Lege deshalb vor dem Test fest, wie gemeldet wird:

  • Ein Kanal, eine Nachricht pro Fund.
  • Jede Meldung enthält den Dateinamen der Map, die Position aus getpos oder einen Screenshot mit cl_showpos 1, den Spielmodus, die Spielerzahl und das, was der Tester gerade getan hat.
  • Bitte die Tester, GMod mit -condebug zu starten. Die Konsole landet dann in der Datei console.log, die sie dir schicken können.
  • Beobachte, statt nur zu fragen: Wo verlaufen sich Spieler, welche Bereiche bleiben leer, wo sammeln sich alle?

Danach sortierst du in drei Klassen und arbeitest sie in dieser Reihenfolge ab:

  1. Blocker: Absturz, kein Spawn, Stuck-Stelle ohne Ausweg, fehlender Content, ein Weg aus der Map.
  2. Spielfluss: Einbrüche der Bildrate, unfaire Positionen, klemmende Türen und Aufzüge, unklare Wege.
  3. Optik: Lichtkanten, verschobene Texturen, schwebende Props.

Ändere nichts während eines Tests. Sammle, behebe einen ganzen Stapel, kompiliere, vergib einen neuen Dateinamen und teste erneut. Geschmacksfragen notierst du, sobald mehrere Tester unabhängig voneinander dasselbe sagen.

Wann die Map fertig ist

Die Map ist fertig, wenn alle fünf Stufen mit genau der Datei gelaufen sind, die du veröffentlichst, und kein Blocker offen ist. Konkret heißt das: Der saubere Client zeigt keinen fehlenden Content, die Serverkonsole bleibt beim Mapstart frei von Fehlern, die letzte Runde mit Spielern hat keinen neuen Blocker ergeben, und du kennst die Bildrate an der schlechtesten Stelle mit Spielern.

Jede Änderung an der BSP erzeugt eine neue Datei. Nach einem letzten Fix wiederholst du deshalb mindestens die Stufen 2 bis 4. Zum Schluss prüfst du die Datei mit dem Map Scanner. Er kontrolliert die Struktur der BSP, meldet riskante Entities, prüft, ob ein Spawnpoint vorhanden ist, und listet die Dateien im Pakfile auf.

Häufige Fragen

Wie viele Tester brauche ich?

Eine feste Zahl gibt es nicht. Fehlenden Content findet schon ein einzelner Tester mit sauberem Client. Für Spawns, Türen und Performance zählt die Spielerzahl, die der Server später tatsächlich hat.

Kann ich mit Bots statt mit Spielern testen?

Teilweise. bot fügt auf einem Server mit freiem Slot einen Bot hinzu. Im Einzelspieler lehnt GMod das mit Cannot create a player bot in singleplayer! ab. sv_cheats 1 braucht der Befehl nicht, er wirkt aber wie report_entities nur für den Host oder in der Serverkonsole. Bots belegen Slots und Spawnpunkte. Sie ersetzen keine Spieler, die Wege suchen, Türen blockieren und Props spawnen.

Warum funktioniert mat_wireframe auf dem Server nicht?

Der Befehl ist als Cheat markiert und wirkt nur mit sv_cheats 1. Auf einem Live-Server bleibt das aus. Nutze dort cl_showfps, net_graph und status, und wiederhole die Stelle lokal mit Cheats.