
Pedro A. Gonzalez-CaleroComplutense University of Madrid | UCM · Department of Software Engineering and Artificial Intelligence
Pedro A. Gonzalez-Calero
PhD in Physics
About
148
Publications
34,225
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
1,952
Citations
Publications
Publications (148)
Dynamic difficulty adjustment (DDA) is a set of techniques that aim to automatically adapt the difficulty of a video game based on the player’s performance. This article presents a methodology for DDA using ideas from the theory of flow and case-based reasoning (CBR). In essence, we are looking to generate game sessions with a similar difficulty ev...
Game development has become a long process that requires many professionals working on a project during several months or years. With this scenario the re-utilization of resources is crucial not only to alleviate the process but also to bring coherence into the final product. In this paper we focus on the reuse of NPCs and the problems it brings ab...
Artificial intelligence in games is typically used for creating player's opponents. Manual edition of intelligent behaviors for Non-Player Characters (NPCs) of games is a cumbersome task that needs experienced designers. Our research aims to assist designers in this task. Behaviours typically use recurring patterns, so that experience and reuse are...
Component-based architecture is the software design of choice for most modern games and game engines, allowing for extensible and reusable software that easily adapts to changes in requirements. Nevertheless, designing a component-based architecture is not an easy achievement and some techniques have been previously proposed for the automatic gener...
This book constitutes the refereed proceedings of the 20th IFIP TC 14 International Conference on Entertainment Computing, ICEC 2021, which was supposed to take place in Coimbra, Portugal, in November 2021. The 26 full papers, 13 short papers and 11 other papers presented were carefully reviewed and selected from 84 submissions. ICEC brings togethe...
When developing educational games we face the problem of finding the right design for making the learning activities as intrinsic to the game mechanics as possible. Nevertheless, in many cases it is not possible to fully integrate the learning content into the game play, resulting in the well known “chocolate-covered broccoli” game design. The long...
One of the most challenging goals in the game industry is to design games which are difficult enough to be a fun challenge but not so hard to provoke frustration among a wide range of different types of players. Dynamic difficulty adjustment (DDA) is a set of techniques used to customize the difficulty of a game according to the skill level of the...
Programming by demonstration (PbD) has a straightforward application in the development of the artificial intelligence (AI) for non-player characters (NPCs) in a games: a game designer controls the NPC during a training session in the game, and thus demonstrates the expected behavior for that character in different situations. Afterwards, applying...
Creating the behavior for non-player characters (NPCs) in video games is a complex task that requires the collaboration among programmers and game designers. Usually these game designers are responsible of configuring and fine tuning certain parameters of the behavior, while programmers write the actual code of those behaviors. That requires severa...
One of the biggest challenges when designing videogames is to keep a player’s engagement. Designers try to adapt the game experience for each player defining different difficulty levels or even different sets of behaviors that the non-player characters will use depending on the player profile. It is possible to use different machine learning techni...
Creating the behavior for non-player characters in video games is a complex task that requires the collaboration among programmers and game designers. Usually game designers are only allowed to change certain parameters of the behavior, while programmers write new code whenever the behavior intended by designers cannot be achieved by just parameter...
Keeping a player within the flow in a game is a central goal for game designers, making the game neither too easy nor too hard. Dynamic Difficulty adjustment seeks to fulfill this goal by dynamically tuning difficulty according to player actions in the game. In this paper we demonstrate that case-based reasoning with time series can serve to automa...
A game fun to play is the one that provides challenges to the players corresponding to their skills. Most of the games have different preconfigured difficulty levels, but they do not adjust the difficulty dynamically to the player skill. In this work, we explore the idea of creating clusters from previous game traces to capture different playing st...
The design of the behavior of non-player characters (NPCs) in a game is a collaborative task between programmers and designers. Nevertheless this collaboration is an open problem since the limits, responsibilities and competences are not well defined.
Behavior trees are the technology of choice nowadays for programming the behavior of NPCs, and the...
Similarity assessment is a key operation in several areas of artificial intelligence. This paper focuses on measuring similarity in the context of Description Logics (DL), and specifically on similarity between individuals. The main contribution of this paper is a novel approach based on measuring similarity in the space of Conjunctive Queries, rat...
Unity 3D is a widely used middleware for game development, primarily by small studies. In addition to the core technology, a number of extensions or add-ons have been created by third-party developers to provide additional functionality. Nevertheless, the support Unity 3D provides for building GUI for such add-ons is at a very low level, and for th...
COLIBRI is an open source platform for the development of Case-based reasoning (CBR) systems. It supports the development of different families of specialized CBR systems: from Textual CBR to Knowledge Intensive applications. This chapter provides a functional description of the platform, its capabilities and tools. These features are illustrated w...
Case-Based Reasoning (CBR) and software generation share a common conceptual model of reusing components to obtain new solutions. Based on this model, in this paper we describe a novel development process for generating CBR systems based on the idea of reusing previous system designs. Template-Based Design (TBD) is the most significant activity in...
This paper describes the jcolibri2 framework for building Case-based reasoning (CBR) systems. CBR is a mature subfield of artificial intelligence based on the reuse of previous problem solutions–cases–to solve new ones. However, up until now, it lacked a reference toolkit for developing such systems. jcolibri2 aims to become that toolkit and to fos...
Similarity assessment is a key operation in case-based reasoning and other areas of artificial intelligence. This paper focuses on measuring similarity in the context of Description Logics (DL), and specifically on similarity between individuals. The main contribution of this paper is a novel approach based on measuring similarity in the space of C...
There is an increasing requirement in the scientific software development area of promoting the interchange of resources to ensure the reproducibility and validation of the results. This paper presents the COLIBRI Studio environment that supports researchers in the generation of Case-based Reasoning (CBR) systems by means of workflow-like represent...
Building the behaviour for non-player characters in a game is a complex collaborative task among AI designers and programmers. In this paper we present a visual authoring tool for game designers that supports behaviour reuse. We describe a visual editor, capable of storing, indexing, retrieving and reusing behaviours previously designed by AI progr...
Detailed design documents have been criticized as a hard to maintain artifacts that may easily become useless while a game under development keeps evolving. In this paper we propose the use of declarative domain modelling as a communication tool and a form of contract between designers and programmers. We show how this model, including entities and...
Sketch-based retrieval is a technique that supports the design of behaviour for game characters by reusing previously designed behaviours. Most techniques for specifying behaviour for game characters use some kind of graph-based formalism to represent such behaviour. Through graph-matching techniques, sketch-based retrieval allows to use any interm...
Building the behaviour for non-player characters in a game is a complex collaborative task among AI designers and programmers. In this paper we present a visual authoring tool for game designers that uses CBR techniques to support behaviour reuse. Our visual editor (called eCo) is capable of storing, indexing, retrieving and reusing behaviours prev...
The use of game technology for building virtual learning environments is intended to improve the motivation and engagement of the student, borrowing such properties from their entertaining counterparts. Nevertheless, wrapping pedagogical contents in a virtual environment is no simple achievement, and requires a rigorous process of designing and val...
Computational workflows are a powerful paradigm to represent and manage complex applications, particularly in large-scale distributed scientific data analysis. Workflows represent application components that result in individual computations as well as their interdependences in terms of dataflow. Workflow systems use these representations to manage...
Due to the changing nature of videogames, the component-based architecture is the design of choice for managing game entities instead of the traditional static class hierarchies. A component-based architecture lets programmers edit entities as collections of components, which provide the entity with new functionalities. Such architecture promotes f...
Similarity assessment is a key operation in many artificial intelligence fields, such as case-based reasoning, instance-based learning, ontology matching, clustering, etc. This paper presents a novel measure for assessing similarity between individuals represented using Description Logic (DL). We will show how the ideas of refinement operators and...
Case-based planning (CBP) is usually considered a good solution to solve the knowledge acquisition problem that arises when developing AIs for real-time strategy games. Unlike more classical approaches, such as state machines or rule-based systems, CBP allows experts to train AIs directly from games recorded by expert players. Unfortunately, this s...
The state-of-the-art in software engineering for game engines, recommends the use of a component-based software architecture for managing the entities in a game. A component-based architecture facilitates the definition of new types of entities as collections of components that provide basic pieces of functionality, providing a flexible software th...
Describes the Wings intelligent workflow system that assists scientists with designing computational experiments by automatically tracking constraints and ruling out invalid designs, letting scientists focus on their experiments and goals.
Current game worlds are visually rich but information poor – particularly poor from the artificial intelligence (AI) point of view. Where the player sees a rich visual representation of 3D objects, internally these are just very sparsely described collections of points in space. Tools for advanced world creation, character model-ing, animation, and...
Building the behaviour fornon-player characters (NPC) in a game is a collaborative effort betweenAI designers and programmers. Programmers provide to the designers with the building blocks for specifying behaviours in the game, and designers use some combination ofstate machines,scripting and visual languages to build complex behaviours by composin...
Due to the changing nature of videogames, the componentbased architecture is the design of choice for managing game entities instead of the traditional static class hierarchies. A component-based architecture lets programmers edit entities as collections of components, which provide the entity with new functionalities. Such architecture promotes fl...
The combination of learning by demonstration and planning has proved an effective solution for real-time strategy games. Nevertheless, learning hierarchical plans from expert traces also has its limitations regarding the number of training traces required, and the absence of mechanisms for rapidly reacting to high priority goals. We propose to brin...
A wide range of modern videogames involves a number of players collaborating to obtain a common goal. The way the players are teamed up is usually based on a measure of performance that makes players with a similar level of performance play together. We propose a novel technique based on clustering over observed behaviour in the game that seeks to...
Techniques used for Artificial Intelligence (AI) in commercial video games are still far from state-of-the art in Academia, but with graphics in video games coming close to photo realistic quality, and multi-processor architectures getting common in console and PC game platforms, sophisticated AI is getting into the focus of the video game industry...
If iteration is the rule in modern software development practices, this is more the case in game development. While the secret recipe for fun in games remains hidden, game development will remain a highly iterative trial-and-error design process. In this paper we present a semi-automatic process that, through FCA, can assist in the software design...
Artificial intelligence in games is typically used for creating player's opponents. Manual editing of intelligent behaviors for nonplayer characters (NPCs) of games is a cumbersome task that needs experienced designers. Our research aims to assist designers in this task. Behaviors typically use recurring patterns, so that experience and reuse are c...
Producing software in a globalized economy must take into account the multiplicity of humankind, which affects drastically the goal of reaching a wider audience. In this paper we describe COBBER, a domain-independent model for supporting Human Centered Computing issues, which takes into account the psychological and cognitive issues of users when i...
jCOLIBRI is currently a reference platform in the CBR community for building CBR systems that includes facilities to design different types of CBR applications. In this paper we focus in some recently included tools that allow the improvement of performance of previously designed applications. These optimization tools mainly facilitate to adjust fe...
Developing the AI for non-player characters in a video game is a collaborative task between programmers and designers. Most of the times, there is a tension between the freedom that designers require to include their narrative in the game and the effort required from programmers to debug faulty AI specified by good story tellers who are not program...
Authoring the AI for non-player characters (NPCs) in modern video games is an increasingly complex task. Designers and programmers
must collaborate to resolve a tension between believable agents with emergent behaviours and scripted story lines. Behaviour
trees (BTs) have been proposed as an expressive mechanism that let designers create complex be...
In this paper, we present an approach to solve the drawbacks of manual composition of software components. Our approach is applied within the jcolibri framework for building case-based reasoning (CBR) applications. We propose a system design process based on reusing templates obtained from previously designed CBR systems. Templates store the contro...
Workflows are becoming an increasingly more common paradigm to manage scientific analyses. As workflow repositories start to emerge, workflow retrieval and discovery becomes a challenge. Studies have shown that scientists wish to discover workflows given properties of workflow data inputs, intermediate data products, and data results. However, work...
ion in case-based planning is a mechanism for plan retrieval and adaptation. An abstract case is a generalization
of a concrete case that can be reused in different situations to that where the original case was obtained. Additional knowledge
is also required to instantiate an abstract case for a new concrete solution.
In this paper, we show how t...
In this article we describe a domain independent model for supporting Human Centered Computing issues, which takes into account the psychological and cognitive issues of users when interacting with the model. Producing software in the globalization era needs to take into account the multiplicity of human kind which affects drastically to reach a wi...
A key challenge to move forward the state of the art in games-based learning systems is to facilitate instructional content creation by the domain experts. Several decades of research on computer aided instruction have demonstrated that the expert has to be deeply involved in the content creation process, and that is why so much effort has been dev...
Our goal is to support system developers in rapid prototyping recommender systems using Case-Based Reasoning (CBR) techniques. In this paper we describe how jCOLIBRI can serve to that goal. jCOLIBRI is an object-oriented framework in Java for building CBR systems that greatly benefits from the reuse of previously developed CBR systems. jCOLIBRI inc...
CRC cards and role-play sessions are two techniques widely used in responsibility-driven design and employed as active learning
methods to teach object-oriented software design. Based on our experience using them, we propose a game-based approach to
take the classroom experience into a virtual environment. We show how the proposed virtual environm...
Our goal is to support system developers in rapid prototyping of Case-Based Reasoning (CBR) systems through component reuse.
In this paper, we propose the idea of templates that can be readily adapted when building a CBR system. We define a case base of templates for case-based recommender systems.
We devise a novel case-based template recommender,...
Artificial intelligence in games is usually used for creating player’s opponents. Manual edition of intelligent behaviors
for Non-Player Characters (NPC) of games is a cumbersome task that needs experienced designers. Amongst other activities,
they design new behaviors in terms of perception and actuation over the environment. Behaviors typically u...
Adaptation is probably the most difficult task in Case-Based Reasoning (CBR) systems. Most techniques for adaptation propose
ad-hoc solutions that require an effort on knowledge acquisition beyond typical CBR standards.
In this paper we demonstrate the applicability of domain-independent planning techniques that exploit the knowledge already
acqui...
In this paper we first review the functionality that jcolibri offers related to textual CBR: statistical retrieval for textual cases based on Information Retrieval and Information Extraction methods to capture features from texts. The novelty of this paper is an approach to user-guided adaptation of texts based on Information Retrieval + Clustering...
In this paper we present a novel approach for developing adaptive game AI by combining case based planning tech-niques and ontological knowledge from the game environ-ment. The proposed architecture combines several compo-nents: a case-based hierarchical planner (Repair-SHOP), a bridge to connect and reason with Ontologies formalized in Description...
In order to fully understand the implications of object-oriented design patterns, students need to consider alternative designs to a problem and to analyse these solutions in terms of coupling, cohesion and extensibility. Lecture-based approaches to teaching design patterns do not provide students with the insights needed unless they already have e...
Case-based reasoning (CBR) is a paradigm for combining problem solving and learning that has become one of the most successful applied subfields of AI in recent years. Now that CBR has become a mature and established technology two necessities have become critical: the availability of tools to build CBR systems, and the accumulated practical experi...
With the advent of semantic Web services, a paradigm that results from adding semantics to Web services, the challenge remains in finding a suitable way of capturing the goals and objectives of the user and attaining a technological solution to fulfill them. In this paper, we aim at solving this problem combining case based reasoning (CBR) and sema...
Case Based Reasoning (CBR) systems reason by similarity between current unsolved problems and past solved problems. In such systems interaction between users and the reasoning module is very important to identify the specific aspects of the query problem. In this paper we describe a textual interface module included into JCOLIBRI, a Java framework...
With the advent of Semantic Web Services, a paradigm that results from adding semantics to Web Services, the challenge remains in finding a suitable way of capturing the goals and objectives of the user and attaining a technological solution to fulfill them. In this paper, we aim at solving this problem combining Case Based Reasoning (CBR) and sema...
Computational workflows have recently emerged as an effective paradigm to manage large-scale distributed scientific computations. Workflow systems can automate many execution-level details and provide assistance in composing and validating workflows. However, there is still a significant effort involved in creating these workflows since they often...
In spite of its growing popularity, due to a huge technical evolution in the last years and to the fact that new generations are more literate in games than in books, game-based teaching has been very restrictive in its application to adult education. Most applications are merely simulations built with game technology.
In order to apply game-based...
Computer simulations in inmersive environments have been used traditionally as learning tools. This is specially true in those domains where real training is expensive or dangerous, where virtual environments are used to emulate some aspects of the real world. In this paper we present our work in an emergent area where the inmersive environments ar...
Based on our experience using active learning methods to teach object-oriented software design we propose a game-based approach
to take the classroom experience into a virtual environment.
The different pedagogical approaches that our active method supports, have motivated us to tailor an architecture that supports
the creation of different variat...
Our approach to Case Based Reasoning (CBR) is towards integrated applications that combine case specific knowledge with models
of general domain knowledge. In this paper, we describe a domain independent architecture to help in the design of knowledge
intensive CBR systems. It is based on knowledge acquisition from a library of application-independ...
In order to reach as many players as possible, videogames usually allow the user to choose the difficulty level. To do it,
game designers have to decide the values that some game parameters will have depending on that decision. In simple videogames
this is almost trivial: minesweeper is harder with longer board sizes and number of mines. In more co...
The amazing growth of the videogame industry in the last few years has opened new opportunities for the use of games in education. Not only the technology has evolved to a point where almost photorealistic 3D virtual worlds can be seen at home with retail equipment, but also the language of the videogames has evolved to become sophisticated enough...
In this paper we describe ongoing research into a flexible way of designing CBR systems in jCOLIBRI 2 using a library of templates obtained from a set of previously designed CBR systems (i.e. a case base of CBR design experience). In case-based fashion, jCOLIBRI will retrieve templates from the library; the designer will choose one template, and ad...
Object-oriented software design is a kind of black-art that requires a combination of common sense, experience, good taste and the capability to look at a problem from different points of view. According to our experience, these abilities cannot be easily transferred to the students in a lecture. Taking ideas from the way software is designed in in...
Las simulaciones por ordenador en entornos inmersivos se han utilizado tradicionalmente como herramientas de enseñanza sobre todo en dominios donde el entrenamiento en el mundo real resulta demasiado costoso o peligro-so. El trabajo que aquí presentamos se enmarca dentro de una línea emergente en la aplicación de los entornos inmersivos de enseñanz...
In this article we describe a domain-independent model to manage the conversation strategies between users and computers. We apply the model in COBBER, a Conversational case-based reasoning (CCBR) framework based on reusable ontologies. The overall goal of the model is to support users following an affective approach in order to keep them in the ad...
This paper presents a tutoring system aimed at teaching how to compile Java into the language of the Java Virtual Machine, and, at the same time, promotes a better understanding of the underlying mecha- nisms of object-oriented programming. The interaction with the systems takes the form of a 3D videogame where the student must compete to provide t...
This paper describes our work in textual Case-Based Reasoning within the context of Semantic Web. Semantic Annotation of plain
texts is one of the core challenges for building the Semantic Web. We have used different techniques to annotate web pages
with domain ontologies to facilitate semantic retrieval over the web. Typical similarity matching t...
Conversational CBR has been used successfully for several years but building a new system demands a great cognitive effort
of knowledge engineers and using it demands a similar effort of users. In this paper we use ontologies as the driving force to structure a development methodology where previous design efforts may be reused. We review the main...
jCOLIBRI is an Object-Oriented framework in Java that promotes software reuse for building CBR systems. It integrates the
application of well proven Software Engineering techniques with a knowledge level description that separates the reasoning
methods from the domain model. In this paper we present the evolution of the framework towards a Semantic...
Case-based Reasoning (CBR) is a problem solving paradigm that uses past experiences to solve new problems. Although CBR is
supposed to alleviate the problem of knowledge acquisition, knowledge is still required to obtain the initial case base and
to develop the processes of retrieving, reusing, revising and retaining cases. In this paper we propose...
This paper presents a tutoring system aimed at teaching how to compile Java into the language of the Java Virtual Machine, and, at the same time, promotes a better understanding of the underlying mecha-nisms of object-oriented programming. The interaction with the systems takes the form of a 3D videogame where the student must compete to provide th...