180 likes | 202 Views
SCG layers or SCG stages. Karl and Yue. Layers of Constraints.
E N D
SCG layersor SCG stages Karl and Yue
Layers of Constraints • We can look at the process of game design as a successive layering of constraints on a game. Every new rule you add, every resource you define, is just one more constraint on the players. At the start of the design process you may have nothing, and the players could do anything at all; by the end, the player experience is sharply defined and heavily constrained in a way that is fun. (We will address what “fun” actually is, later in the course.) • http://gamedesignconcepts.wordpress.com/2009/07/09/level-4-the-early-stages-of-the-design-process/
Connections Software design Game design Game to play How to structure game def Game architecture Several game designers with different goals • Executable code • How to structure the code • Architecture • Several software designers with different responsibilities
SCG Architecture • Three layer architecture • Meta game designer-level • fixed by SCG designer: Karl Lieberherr • defines structure of playground: • domain (instance, solution, …) , claim(setOfInstances, protocol, …) • defines basic game mechanism: propose (oppose|agree) • constrains playground-level • Playground designer-level • fixed by SCG user • freezes language definitions for Domain (Instance, Solution) Protocol, etc. • constrains scholar-level • Scholar-level • game is now defined and scholars define their game strategies providing methods like propose, refute, strengthen, …
Levels of Definition: Domain • Meta game designer-level • Instance • Solution • valid, quality signatures • Playground designer-level • Instance language definition PL • Solution language definition SL • valid, quality = specific code • Scholar-level • A specific instance in PL (sentence expressed in PL) • A specific solution in SL • constrains scholar (executing code)
Levels of Definition: Claim • Meta game designer-level • setOfInstances • protocol: defines protocol language PRL • Playground designer-level • setOfInstances, intensional definition predicate = specific code • defines specific protocol using PRL • Scholar-level • constrains scholar to define instance (execution) • defines interaction with other scholars
Four layer SCG architecture • There are many ways to model a scientific community. For example, • one can argue that a scholar should also define a confidence level for a claim. Confidence influences reputation gain and loss. • a scholar should pass a simple entrance exam before participating in a competition • We need four layers • meta-meta, meta, playground, scholar
Contributors to Claim Definition • Claim: setOfInstances, q, r, protocol • meta-meta designer: Karl Lieberherr • specific claim: CNF-pos(2,0.7,2*|P|) • Claim: setOfInstances, q, r, protocol, confidence • meta-meta designer: Ahmed Abdelmeged • specific claim: CNF-pos(2,0.7,2*|P|, 0.99) meta-meta: requires protocol in some protocol language, meta: protocol language grammar, playground: specific sentence for grammar defines CNF-pos, scholar: uses CNF-pos meta-meta: requires confidence, paramterized reputation update formula, meta: sets parameter, playground: adds nothing scholar: specific confidence
Contributors to Claim Definition • Claim: setOfInstances, q, r, protocol • meta-meta designer: Karl Lieberherr • specific claim: CNF-pos(2,0.7,2*|P|) • Claim: setOfInstances, q, r, protocol, confidence • meta-meta designer: Ahmed Abdelmeged • specific claim: CNF-pos(2,0.7,2*|P|, 0.99) meta-meta: requires protocol in some protocol language, meta: protocol language grammar, playground: specific sentence for grammar defines CNF-pos, scholar: refers to CNF-pos meta-meta: requires confidence info, meta: defines parameterized formula, playground: defines parameter values, scholar: specific confidence
Contributors to Claim Definition • specific claim: CNF-pos(2,0.7,2*|P|) • meta-meta: overall shape: 4 components • setOfInstances, q, r, protocolName • meta: defines how to specify a set of instances through a language. • number k: all clauses are of length k • playground: defines k to be in a range: [2,17] • scholar: chooses one k
SCG as Board Game? • Pieces: Claim, Instance, Solution • Board: • Claim: proposed, refuted, defended, agreed • Instance: provided, solved
Domain-specific languagesfor games • ERIC WALKINGSHAW and MARTIN ERWIG (2009). A domain-specific language for experimental game theory. Journal of Functional Programming, 19, pp 645-661 doi:10.1017/S0956796809990220 • http://en.wikipedia.org/wiki/Domain-specific_language
Evolution through stages • meta-meta • Domain = <p> Instance <s> Solution <valid> ValidPredicate <quality> QualityFunction. • Claim = <setOfInstances> Set(Instance) <q> Quality <r> Resource.
Evolution through stages • meta • Domain = <p> Instance <s> Solution <valid> ValidPredicate <quality> QualityFunction. • Claim = <setOfInstances> Set(Instance) <q> Quality <r> Resource. • Instance = <size> Integer <name> InstanceId <structure> … • Solution = <solvesInstance> InstanceId <structure> …
Evolution through stages • meta • Domain = <p> Instance <s> Solution <valid> ValidPredicate <quality> QualityFunction. • Claim = <setOfInstances> Set(Instance) <q> Quality <r> Resource. • Instance = <size> Integer <name> InstanceId <structure> … • Solution = <solvesInstance> InstanceId <structure> … • ValidPredicate = <p> Instance <s> Solution <body> ValidBody. • QualityFunction = <r> Quality <p> Instance <s> Solution <body> QualityBody. • ValidBody = <v> JavaCode.
Evolution through stages • playground • Domain = <p> Instance <s> Solution <valid> ValidPredicate <quality> QualityFunction. • Claim = <setOfInstances> Instances <q> Quality <r> Resource. • Instance = <size> Integer <name> InstanceId <structure> InstanceStructure. • Solution = <solvesInstance> InstanceId <structure> SolutionStructure. • ValidPredicate = <p> Instance <s> Solution <body> ValidBody. • QualityFunction = <r> Quality <p> Instance <s> Solution <body> QualityBody. • ValidBody = <v> JavaCode. • InstanceStructure = <constraints> List(Constraint). • Constraint = [<w> Weight ]<r> Relation <vars> List(Variable). • Weight = <v> Integer. • Relation = <v> Integer. • Variable = <name> Ident. • SolutionStructure = <literals> List(Literal). • Literal = Pos | Neg <v> Variable. • Pos = . • Neg = “!”. • Instances = <rs> Set(Relation) . // all CSPs using fixed set of relations • relations must be in 0..255 • ValidBody , QualityBody defined in Domain sentence
Evolution through stages • scholar • claim CSP-pos({22},0.375,2*|P|) CSP-neg({22},0.45, 2*|P|) • instance 22(a b c) 22(a b d) 22(a c d) 22(b c d) • solution a !b !c !d
Meaning of resource in negative claim • Alice claims that she can find a instance p that Bob cannot solve with the given resource.