Spielideen & Features

Euer nächstes Feature

Marktplatz

Einen originalen Inventargegenstand zwischen zwei Spielern handeln.

SDK: developSpielersession erforderlich
Unity
Illustration für Marktplatz
Euer sichtbares Ergebnis

Der Käufer erhält denselben Gegenstand. Der Verkäufer erhält den vereinbarten Preis abzüglich der konfigurierten Gebühr.

Video folgt

Für diesen Schritt fehlt noch das Video. Die Anleitung und der MCP-Auftrag sind bereits nutzbar.

Marktplatz

Dasselbe Projekt vorbereiten

  1. Wählt im Dashboard dasselbe Projekt wie in eurer Spielkonfiguration.

    Marktplatz →
  2. Für die erste Anfrage ist keine weitere Definition nötig. Ein leeres Ergebnis ist gültig, solange passende Spieldaten fehlen.

    Richtet eine Währung, eine Gebühr und mindestens eine aktive Preisregel ein.

    Nutze zwei angemeldete Spieler im selben Projekt. Konfiguriere Währung, Gebühr und Preisregel, stelle einen nicht ausgerüsteten Gegenstand ein und bestätige seinen Kauf ausdrücklich.

    Items →Spielerwerte →

Feature einbauen

Ihr könnt die Anleitung vorab ansehen. Zum Ausführen braucht ihr einen aktiven Projekt-Key. Projekt vorbereiten

SDK installiert, Projekt-Konfiguration importiert und Spieler angemeldet.

Dieses SDK-Beispiel nutzt develop. Prüft, ob die nötigen APIs in eurem installierten SDK verfügbar sind.

Verbindet zuerst den vorgesehenen Spieler über den Schnellstart. Ruft ReadListing(listingId) ausdrücklich über einen Button oder eine Szenenaktion auf. Allein das Öffnen der Datei sendet keine Anfrage.

C#
Assets/Scripts/MarketplaceDemo.cs
horizOn-Aufruf
1using System.Threading.Tasks;
2using UnityEngine;
3using PM.horizOn.Cloud.Examples.Features;
4using PM.horizOn.Cloud.Objects.Network.Responses;
5​
6public class MarketplaceDemo : MonoBehaviour
7{
8 // Import the SDK Examples sample. Bind its screen to the signed-in player
9 // and set the stable projectId in the Inspector. Never use an Account Key.
10 public MarketplaceExample screen;
11​
12 public Task<MarketplaceResult<MarketplaceListingView>> ReadListing(string listingId)
13 => MarketplaceQuickstart.ReadOneListing(screen, listingId);
14​
15 // Wire only to the player's Buy confirmation after displaying ReadListing.
16 public Task<bool> ConfirmPurchase(string listingId)
17 => MarketplaceQuickstart.BuyReviewedListing(screen, listingId);
18​
19 // false/timeout does not prove nonexecution. Use screen.RetryPending() or
20 // screen.RecoverOriginalOperation(); never replace the unresolved original.
21 // The sample refreshes Inventory, Values and Marketplace before acknowledgement.
22 // Its native file journal rejects WebGL writes; use a durable browser persister.
23}
Vollständiges SDK-Beispiel öffnen ↗

Mit zwei Spielern testen

Nutze zwei angemeldete Spieler im selben Projekt. Konfiguriere Währung, Gebühr und Preisregel, stelle einen nicht ausgerüsteten Gegenstand ein und bestätige seinen Kauf ausdrücklich.

Verwende die bestehende angemeldete Sitzung. Bewahre nach einem unbestätigten Kauf die ursprüngliche Anfrage für die Wiederholung auf und lade danach Inventar und Guthaben neu.

Beim Abbrechen bleibt der originale Gegenstand geschützt, bis sein Besitzer ihn abholt. Eine Wiederherstellung für einen anderen Empfänger ist nur bei gelöschtem bisherigen Besitzer möglich.

Angebote und Wiederholungsschutz werden einmal im Projekt gespeichert. Spieler behalten Verweise und begrenzte Statusdaten.

Testet euer neues Feature.

Der Käufer erhält denselben Gegenstand. Der Verkäufer erhält den vereinbarten Preis abzüglich der konfigurierten Gebühr.

Wählt im Dashboard dasselbe Projekt wie in eurer Spielkonfiguration.

Endpunkte
  • GET/marketplace/limits
  • GET/marketplace/rules
  • GET/marketplace
  • GET/marketplace/listings
  • GET/marketplace/listings/{listingId}
  • POST/marketplace/listings
  • POST/marketplace/listings/{listingId}/buy
  • POST/marketplace/listings/{listingId}/cancel
  • GET/marketplace/operations/{operationId}
  • POST/marketplace/listings/{listingId}/retry-return
Alle Endpunkte in der API-Referenz
Unser Vorschlag für den nächsten Schritt

Gebt jeder Runde einen Highscore.

Speichert den Score nach dem Spiel und zeigt, wer vorne liegt. Eure Verbindung und Spielersession nutzt ihr weiter.