Abstract—Variations Forever is a novel game in which the player explores a vast design space of mini-games. In this pa-per, we present the procedural content generation research which makes the automatic generation of suitable game rulesets possible. Our generator, operating in the domain of code-like game content exploits answer-set programming as a means to declaratively represent a generative space as distinct from the domain-independent solvers which we use to enumerate it. Our generative spaces are powerfully sculptable using concise, declarative rules, allowing us to embed significant design know-ledge into our ruleset generator as an important step towards a more serious automation of whole game design process.
Introduzione alla realizzazione di videogiochi - MeccanichePier Luca Lanzi
Slide del corso "Introduzione alla realizzazione di videogiochi" tenuto per gli studenti delle scuole superiori presso la sede di Cremona del Politecnico di Milano.
The intelligent game designer: Game design as a new domain for automated disc...rndmcnlly
Designing video games is commonly understood to be a creative task,
drawing on a designer's talent, inspiration, and personal experience.
The last ten years have seen multiple calls from the design community to
produce reusable knowledge about the structure of games and the design
process itself. These designers would like to establish a standardized
language and libraries of design patterns so that the next generation of
designers can benefit from the best of past generations. The
realization of such a move can be read as a transition from thinking
about game design as a playable-artifact creation process to a science
of play in which we might see the designer's goal as discovering new
gameplay structures and their production of concrete games as a side
effect of this process.
Thirty years ago, a similar-yet-disconnected thread of research in
artificial intelligence was just being born. First marked by Doug
Lenat's AM (an “automated mathematician”), discovery systems aim to
automatically produce new and interesting knowledge. Such systems
contrast sharply with the then-popular expert systems which applied
fixed libraries of “expert” knowledge to various tasks. Discovery
systems, which have commonly operated in the domains of natural science
and mathematics, are now seen as distant ancestors of contemporary,
statistical machine learning techniques which find extensive application
in a wide array of industries. Contrary to the current emphasis on the
optimal learning statistical descriptions of data, some recent
developments in machine learning, specifically combined abductive and
inductive logic learning systems, are bringing the production and
revision of structured, symbolic knowledge back into focus.
Simultaneous research in computational creativity is making inroads into
modeling the creative process and the production of creative artifacts.
This is the question I aim to answer: If we squint a bit to see game
design as the science-of-play that some designers imagine it to be, can
we build a discovery system that really works in the domain of game
design? Can we build an intelligent game designer?
In my thesis proposal I lay out a plan to build an intelligent game
designer that learns from the process of game design, including the
observation of human players, and exports newly discovered design
knowledge. This will require an operationalization of game design as an
automatable, scientific process and a detailed re-synthesis of the
creative design of expressive artifacts as a knowledge-seeking effort.
Video game design and programming course for the Master in Computer Engineering at the Politecnico di Milano. http://www.facebook.com/polimigamecollective https://twitter.com/@POLIMIGC http://www.youtube.com/PierLucaLanzi http://www.polimigamecollective.org
Politecnico di Milano, Videogiochi, Video Games, Computer Engineering, game design, game development, sviluppo videogiochi
Video game design and programming course for the Master in Computer Engineering at the Politecnico di Milano. http://www.facebook.com/polimigamecollective https://twitter.com/@POLIMIGC http://www.youtube.com/PierLucaLanzi http://www.polimigamecollective.org
Video game design and programming course for the Master in Computer Engineering at the Politecnico di Milano. http://www.facebook.com/polimigamecollective https://twitter.com/@POLIMIGC http://www.youtube.com/PierLucaLanzi http://www.polimigamecollective.org
Politecnico di Milano, Videogiochi, Video Games, Computer Engineering, game design, game development, sviluppo videogiochi
Introduzione alla realizzazione di videogiochi - MeccanichePier Luca Lanzi
Slide del corso "Introduzione alla realizzazione di videogiochi" tenuto per gli studenti delle scuole superiori presso la sede di Cremona del Politecnico di Milano.
The intelligent game designer: Game design as a new domain for automated disc...rndmcnlly
Designing video games is commonly understood to be a creative task,
drawing on a designer's talent, inspiration, and personal experience.
The last ten years have seen multiple calls from the design community to
produce reusable knowledge about the structure of games and the design
process itself. These designers would like to establish a standardized
language and libraries of design patterns so that the next generation of
designers can benefit from the best of past generations. The
realization of such a move can be read as a transition from thinking
about game design as a playable-artifact creation process to a science
of play in which we might see the designer's goal as discovering new
gameplay structures and their production of concrete games as a side
effect of this process.
Thirty years ago, a similar-yet-disconnected thread of research in
artificial intelligence was just being born. First marked by Doug
Lenat's AM (an “automated mathematician”), discovery systems aim to
automatically produce new and interesting knowledge. Such systems
contrast sharply with the then-popular expert systems which applied
fixed libraries of “expert” knowledge to various tasks. Discovery
systems, which have commonly operated in the domains of natural science
and mathematics, are now seen as distant ancestors of contemporary,
statistical machine learning techniques which find extensive application
in a wide array of industries. Contrary to the current emphasis on the
optimal learning statistical descriptions of data, some recent
developments in machine learning, specifically combined abductive and
inductive logic learning systems, are bringing the production and
revision of structured, symbolic knowledge back into focus.
Simultaneous research in computational creativity is making inroads into
modeling the creative process and the production of creative artifacts.
This is the question I aim to answer: If we squint a bit to see game
design as the science-of-play that some designers imagine it to be, can
we build a discovery system that really works in the domain of game
design? Can we build an intelligent game designer?
In my thesis proposal I lay out a plan to build an intelligent game
designer that learns from the process of game design, including the
observation of human players, and exports newly discovered design
knowledge. This will require an operationalization of game design as an
automatable, scientific process and a detailed re-synthesis of the
creative design of expressive artifacts as a knowledge-seeking effort.
Video game design and programming course for the Master in Computer Engineering at the Politecnico di Milano. http://www.facebook.com/polimigamecollective https://twitter.com/@POLIMIGC http://www.youtube.com/PierLucaLanzi http://www.polimigamecollective.org
Politecnico di Milano, Videogiochi, Video Games, Computer Engineering, game design, game development, sviluppo videogiochi
Video game design and programming course for the Master in Computer Engineering at the Politecnico di Milano. http://www.facebook.com/polimigamecollective https://twitter.com/@POLIMIGC http://www.youtube.com/PierLucaLanzi http://www.polimigamecollective.org
Video game design and programming course for the Master in Computer Engineering at the Politecnico di Milano. http://www.facebook.com/polimigamecollective https://twitter.com/@POLIMIGC http://www.youtube.com/PierLucaLanzi http://www.polimigamecollective.org
Politecnico di Milano, Videogiochi, Video Games, Computer Engineering, game design, game development, sviluppo videogiochi
Ludocore: A Logical Game Engine for Modeling Videogamesrndmcnlly
Abstract—LUDOCORE is a logical “game engine”, linking
game rules as reasoned about by game designers to the formal
logic used by automated reasoning tools in AI. A key challenge
in designing this bridge is engineering a concise, safe, and
flexible representation that is compatible with the semantics of
the games that logical models created with our engine intend
to represent.
Building on the event calculus, a formalism for reasoning
about state and events over time, and a set of common structures
and idioms used in modeling games, we present a tool that is
capable of generating gameplay traces that illustrate the game’s
dynamic behavior. It supports incremental modeling of player
and non-player entities in the game world, modification of
game rules without extensive non-local changes, and exploratory
temporal and structural queries. In addition, its logical models
can support play as real-time, graphical games with minimal
user-interface description.
Matching Game Mechanics and Human Computation Tasks in Games with a PurposeLuca Galli
Presentation held at ACM Workshop on Serious Games at ACM Multimedia 2014 to introduce techniques that can be used to match Human Computation Tasks to Game Mechanics.
The development process of a traditional digital game is described to put the basis on which the development of GWAP can be described. The concept of Human Computation Task is provided along with the most common multimedia refinement tasks that can be found in literature and everyday scenarios. Finally game mechanics that could be matched to particular task instances are shown, along with examples. The entire process has been applied to a real Game with a Purpose scenario.
Recently functional programming gets a lot of traction. In most cases, arguments are related with distributed systems, also with increased and inherent concurrency. Maybe because of near end of Moore’s law, perhaps because of the new domains which are inherently parallel and distributed (IoT is just a single example).
But it is nothing new under the sun (e.g., Lisp was invented almost 60 years ago). You cannot talk about that paradigm, in isolation – without real and concrete examples.
I will do my best to present differences from the current state of the art for a demanding domain and its implementation in the form of a significant, distributed and concurrent system.
MOPCON 2014 - Best software architecture in app developmentanistar sung
Talking about how to build smart design and architecture for app development. Let your app can easy develop and deploy components on your app. And more topic of version control and quality improvement.
This talk, done at a University course at the University of Bologna, concerns how functional programming can be integrated with the well-known structural pattern Model View Controller.
The integration is done in Scala leveraging the Monix library.
GitHub repository: https://github.com/cric96/scala-functional-gui
Useful Tools for Making Video Games - Ogre (2008)Korhan Bircan
A presentations I gave back in 2008 when I was the teaching assistant for Innovating Game Development course in Brown University.
In this presentation I cover Ogre core objects, the startup sequence, creating a basic scene, terrain/sky/fog rendering, CEGUI, node and character animation, object picking, particle systems, fire and smoke effects, cel shading, cube mapping, bump mapping, water reflections and refractions, grass rendering, post-processing effects such as blur, bloom, glass, old TV, old movie, night-vision, and possible art pipeline construction.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
More Related Content
Similar to Variations Forever: Flexibly Generating Rulesets from a Sculptable Design Space of Mini-games
Ludocore: A Logical Game Engine for Modeling Videogamesrndmcnlly
Abstract—LUDOCORE is a logical “game engine”, linking
game rules as reasoned about by game designers to the formal
logic used by automated reasoning tools in AI. A key challenge
in designing this bridge is engineering a concise, safe, and
flexible representation that is compatible with the semantics of
the games that logical models created with our engine intend
to represent.
Building on the event calculus, a formalism for reasoning
about state and events over time, and a set of common structures
and idioms used in modeling games, we present a tool that is
capable of generating gameplay traces that illustrate the game’s
dynamic behavior. It supports incremental modeling of player
and non-player entities in the game world, modification of
game rules without extensive non-local changes, and exploratory
temporal and structural queries. In addition, its logical models
can support play as real-time, graphical games with minimal
user-interface description.
Matching Game Mechanics and Human Computation Tasks in Games with a PurposeLuca Galli
Presentation held at ACM Workshop on Serious Games at ACM Multimedia 2014 to introduce techniques that can be used to match Human Computation Tasks to Game Mechanics.
The development process of a traditional digital game is described to put the basis on which the development of GWAP can be described. The concept of Human Computation Task is provided along with the most common multimedia refinement tasks that can be found in literature and everyday scenarios. Finally game mechanics that could be matched to particular task instances are shown, along with examples. The entire process has been applied to a real Game with a Purpose scenario.
Recently functional programming gets a lot of traction. In most cases, arguments are related with distributed systems, also with increased and inherent concurrency. Maybe because of near end of Moore’s law, perhaps because of the new domains which are inherently parallel and distributed (IoT is just a single example).
But it is nothing new under the sun (e.g., Lisp was invented almost 60 years ago). You cannot talk about that paradigm, in isolation – without real and concrete examples.
I will do my best to present differences from the current state of the art for a demanding domain and its implementation in the form of a significant, distributed and concurrent system.
MOPCON 2014 - Best software architecture in app developmentanistar sung
Talking about how to build smart design and architecture for app development. Let your app can easy develop and deploy components on your app. And more topic of version control and quality improvement.
This talk, done at a University course at the University of Bologna, concerns how functional programming can be integrated with the well-known structural pattern Model View Controller.
The integration is done in Scala leveraging the Monix library.
GitHub repository: https://github.com/cric96/scala-functional-gui
Useful Tools for Making Video Games - Ogre (2008)Korhan Bircan
A presentations I gave back in 2008 when I was the teaching assistant for Innovating Game Development course in Brown University.
In this presentation I cover Ogre core objects, the startup sequence, creating a basic scene, terrain/sky/fog rendering, CEGUI, node and character animation, object picking, particle systems, fire and smoke effects, cel shading, cube mapping, bump mapping, water reflections and refractions, grass rendering, post-processing effects such as blur, bloom, glass, old TV, old movie, night-vision, and possible art pipeline construction.
Similar to Variations Forever: Flexibly Generating Rulesets from a Sculptable Design Space of Mini-games (20)
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
By Design, not by Accident - Agile Venture Bolzano 2024
Variations Forever: Flexibly Generating Rulesets from a Sculptable Design Space of Mini-games
1. Variations Forever: Flexibly Generating Rulesets from a Sculptable Design Space of Mini-games amsmith@soe.ucsc.edu CIG 2010 – Copenhagen, Denmark Adam M. Smith (presenter),and Michael Mateas
3. Offline ruleset generation example Offline ruleset generation is part of automating the game design process. Ludi(Browe/Maire, 2010) Evolved board games Simulated play for evaluation commercially published game outputs (ex: Yavalath)
4. Online ruleset generation example New game design idea: Explore a large space of game designs as an integrated, in-game activity! ROM CHECK FAIL Captain Forever Variations Forever?
5. Inspiring work from CIG 2008 “An experiment in automatic game design” (Togelius/Schmidhuber at CIG 2008) Design variables: time/score limits numbers of “things” movement logics collision/score effects Evolutionary optimization of “fun” metric A sample game
6. VF’s design space Design elements: Agent types Collision effects Movement models Procedural obstacle placement Explicit victory conditions Camera control … Variable number of agent types (each with own details and interactions)
8. Representing rulesets as logical terms Rich rulesets require representing both data structures and code structures. Symbolic terms from logic programming provide a unified representation.
18. Generating logical terms Answer Set Programming Prolog-style logic programming (facts and rules) … with choice rules and integrity constraints Usage: Answer Sets Logic Program Answer Set Solver
19. Simple choice rules Design task: Select an active subset of three or more agent colors. Design space specification color(red). color(blue). color(green). color(white). color(magenta). color(yellow). 3 { agent(C) :color(C) }. Background facts Choice rule agent(red).agent(white).agent(yellow). agent(green).agent(white).agent(magenta). Example answer sets
20. Complex choice rules Design task: Assign every active agent type an optional obstacle collision effect if obstacles are actually enabled. Design space specification collide_effect(kill). collide_effect(bounce). 0 { obstacle_collide_effect(C,Effect) :collide_effect(Effect) } 1 :- agent(C),obstacles_enabled. obstacle_collide_effect(red, kill). obstacle_collide_effect(white, bounce). Example answer set
22. Expressive constraints via integrated analysis Design task: Detect when a game requires indirect pushing to win, and then require all games have this property. winnable_via(indirect_push(C1,C2)) :- … . :- player_agent(A), goal(kill_all(B)), notwinnable_via(indirect_push(A,B)).
23. Evaluation Was the ruleset space rich? revealed engine design issues contained unexpected twists! Were the constraints expressive? easily eliminate undesired design subspaces creating a specialized indirect-push game generator Can it be used in practice? integrated it into a Flash game Shippable PCG requires a trustable space with interesting variety. Pathological failure cases???
24. Summary of approach Logic Program Design space specification Enumerated options Term structure grammars Conditional dependence Pattern detectors Requirements Exceptions Optimizable metrics … Answer Sets Game content artifacts Boolean flags Sets Sequences Tables Graphs … Scripts Triggers FSMs Behavior trees? … Answer Set Solver
25. Bonus round: Variations on anything Goal: Procedurally generate some rulesets. Result: Procedurally generate arbitrary logically-described content.
26. Case in point: Warzone 2100 map generation Diorama (Warzone Map Tools)http://warzone2100.org.uk/ “Looks to make as good or better maps than 90% of mappers efforts over the last 10 years.” – player comment on public gaming forum
27. Thank you Variations Forever: Flexibly Generating Rulesets from a Sculptable Design Space of Mini-Games Presenter: Adam M. Smith amsmith@soe.ucsc.edu
Editor's Notes
Rulesets, unlike characters stats or level designs, have code-like structure that doesn’t easily fit in fixed-shape data structures like a feature vector.Let’s look at what ruleset generation could be used for.
Just to mention one project.Ludi’s generator was specific to board games. I will show you a very general approach, but not plug it into a closed-loop design model.
Left: two indie gamesRCF: generative space of mini-games that come at you, one after anotherCF: design space of modular ships that you construct, come to understand design principles through playVF: design we envision and have built a small prototype ofPlayer: incrementally unlock design element and build constraints to control recombination – a game where player sculpts design space of mini-games
LikeLudi, but for simple videogames: single-player, real-time, arcade play experienceYou control the cyan thing, move around and bump into other colored things with different…We don’t have benchmark problems in videogame ruleset generation right now, so we decided to use this work as a kind of reference point.
Upgrade to richer representation, demand finer-grained control over the design space.We gave more responsibility over design decisions to our ruleset generator.Variable number: says representation can’t be a fixed-length array of integers, needs to be a structured-but-variable-size collection
A giant video demo! Obstacle patterns, moving viewpoint, glittery art, white guy is collecting/killing red guysWe will show the concrete ruleset for this game later on.Take a step back: figure out what you need to express to represent a ruleset – what you have to specify to describe design decisions in a mini-game
…Next few slides: examples of symbolic, logical terms as representations
Usage: represent the choice to some mechanic on and off
Usage: configure parameterized mechanics
Usage: parameterize interactions between game objects
Nesting of terms! Looking very code-like.Usage: build complex data structures (ex: timed event script) or complex control structures (ex: situation detector)
You can build collections using many terms with the same structureUsage: collect or sequence small pieces for different emergent effects
Like a 2D array, but the objects used for lookup might come from other freshly generated collections-- represent data like a social graph or rules like transitions in an FSM
I’m focusing on rulesets, but the idea of “data” and “code” here are pretty general.-- rts level design details use big collections of a small number of term structures-- tech tree for a 4x game be much smaller but describe richer structureEnough tutorial. Let’s get to the real stuff we generated.
Here is the ruleset for the game in the video (or perhaps a slight variation, there are so many…)Left: complete ruleset for VF prototypeRight: Screenshot of this particular ruleset in actionBottom: Key points in ruleset (other details include: how obstacles are placed, their effect on the various kinds of agents)
We ALSO need a nice representation for this generative space.
Prolog: facts and rulesChoice rules: invention of new factsIntegrity constraints: filtering of inconsistent factsSame way you feed a SAT problem to a SAT solver and get truth assignments as outputs (some ASP solvers even work this way)
Color facts are simple logical statements that are always true (red is indeed a color).Choice rule says what MIGHT be true (red might be an agent).3 on the left means the expression inside should be true at least 3 times (up to as many colors as there are).Various answer sets show everything that is true in the different compatible worlds
Demonstrates conditional structure.Output of one part of generator is input to another
Eliminate some combination that is otherwise possible.Roguelike motion model doesn’t support momentum. My call as the designer to say this doesn’t make sense in my generated mini-games.In the code, IC is like a headless rule. If it is every satisfied, that potential answer set is thrown out.
You control a red guy, goal is to kill all red. Touching border kills you, but your buddies stay alive (failure). Solution, push them into the wall first and then jump in after them.An unforeseen twist, we, as designers, didn’t put in there intentionally – emergence is common in rich representations. We wanted to investigate!Use standard logic programming to detect the chain of indirect actions which allows indirect push victory. (~10 lines)Use an integrity constraint to require that property to be present.Detection logic is DIRECTLY integrated into generator! (vs. external generate-and-test)Evaluation next
Issues: showed us combinations we hadn’t thought to test yet (bouncing with the roguelike model)Twists: indirect-push games that emergedUndesired: collision effects were consistent with stated game goalSpecialized generator: integrating analysis of rulesets meant we didn’t need to leave the generator code to test for that propertyFlash: brittle, command-line tools, yes, but plumbing to integrate with a deployable flash game is not too hard to overcomePathlogical: major stumbling block for adoption of online PCG (spore planets) ASP: simply dissallow them if you can write down what the problem is (not complete, but start at having the tools respect this major issue)
Shippable pcg requires a trustable space with interesting variety.Trust: very concise, declarative definition of the design space so that people can agree &- constructs for easily reshaping the space into one that you do trustVariety: program can define spaces of astronomical size, sample them at 10,000+/sec&- high-performance generation for gigantic spaces
To put some teeth behind my claim: here is some independent PCG work using ASP as the core generative approachBase and resource positions, heightfieldwith distinct cliff features, Plausible placement of roads, ruins, and other doodadsTerrain-adapted layout of starting bases and defensive walls metrics: base distances, resource distances, bottleneck width – set constraints on these metrics and then solve – no optimization, just requiring “good enough”* downloadable, open source, outputs already included in standard wz2100 map set* You can read this quote for yourself