scenarios

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 12, 2025 License: Apache-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ActiveScenario = func() *Scenario {
	var gs GameScenario = firstmatch.Scenario()

	s := backfill.Scenario()
	gs = s

	return &Scenario{
		FrontendTotalTicketsToCreate:    -1,
		FrontendTicketCreatedQPS:        100,
		FrontendCreatesBackfillsOnStart: true,
		FrontendTotalBackfillsToCreate:  1000,
		FrontendDeletesTickets:          true,

		BackendAssignsTickets:        false,
		BackendAcknowledgesBackfills: true,
		BackendDeletesBackfills:      true,

		Ticket:             gs.Ticket,
		Backfill:           gs.Backfill,
		BackfillDeleteCond: s.BackfillDeleteCond,
		Profiles:           gs.Profiles,

		MMF:       queryPoolsWrapper(gs.MatchFunction),
		Evaluator: gs.Evaluate,
	}
}()

ActiveScenario sets the scenario with preset parameters that we want to use for current Open Match benchmark run.

Functions

This section is empty.

Types

type GameScenario

type GameScenario interface {
	// Ticket creates a new ticket, with randomized parameters.
	Ticket() *pb.Ticket

	// Backfill creates a new backfill, with randomized parameters.
	Backfill() *pb.Backfill

	// Profiles lists all of the profiles that should run.
	Profiles() []*pb.MatchProfile

	// MatchFunction is the custom logic implementation of the match function.
	MatchFunction(p *pb.MatchProfile, poolBackfills map[string][]*pb.Backfill, poolTickets map[string][]*pb.Ticket) ([]*pb.Match, error)

	// Evaluate is the custom logic implementation of the evaluator.
	Evaluate(stream pb.Evaluator_EvaluateServer) error
}

GameScenario defines what tickets look like, and how they should be matched.

type Scenario

type Scenario struct {

	// GameFrontend Configs
	// TicketExtensionSize       int
	// PendingTicketNumber       int
	// MatchExtensionSize        int
	FrontendTicketCreatedQPS        uint32
	FrontendTotalTicketsToCreate    int // TotalTicketsToCreate = -1 let scale-frontend create tickets forever
	FrontendTotalBackfillsToCreate  int
	FrontendCreatesBackfillsOnStart bool
	FrontendDeletesTickets          bool

	// GameBackend Configs
	// ProfileNumber      int
	// FilterNumber       int
	BackendAssignsTickets        bool
	BackendAcknowledgesBackfills bool
	BackendDeletesBackfills      bool

	Ticket             func() *pb.Ticket
	Backfill           func() *pb.Backfill
	BackfillDeleteCond func(*pb.Backfill) bool
	Profiles           func() []*pb.MatchProfile

	MMF       matchFunction
	Evaluator evaluatorFunction
}

Scenario defines the controllable fields for Open Match benchmark scenarios

Directories

Path Synopsis
TeamShooterScenario is a scenario which is designed to emulate the approximate behavior to open match that a skill based team game would have.
TeamShooterScenario is a scenario which is designed to emulate the approximate behavior to open match that a skill based team game would have.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL