ITHACA. A TOOL FOR INTEGRATING FUZZY LOGIC IN UNITY
Abstract
Ithaca is a Fuzzy Logic (FL) plugin for developing artificial intelligence systems within the Unity game engine. Its goal is to provide an intuitive and natural way to build advanced artificial intelligence systems, making the implementation of such a system faster and more affordable. The software is made up by a C# framework and an Application Programming Interface (API) for writing inference systems, as well as a set of tools for graphic development and debugging. Additionally, a Fuzzy Control Language (FCL) parser is provided in order to import systems previously defined using this standard.
Index Terms:
Artificial Intelligence, Fuzzy Logic, Fuzzy Control Language, video games.I Introduction
Graphics is a relevant factor in terms of video games and that fact is appreciated in the latest development of video games and consoles. Each new generation of consoles empower their resources such as a graphic card with a lot of calculation, a processor with many cores and so forth. Therefore, the video games are developed with very realistic graphics and the users feel that they are part of a real environment more than a virtual world. However, users are more demanding and currently artificial intelligence (AI) plays a significance role in this field since a video game is not really popular if its graphics are spectacular but its AI is very low. In fact, the quality of AI is an important feature in order to increase the immersion and enjoyment of the players [1].
The AI has been a magnificent contribution to the video games sector since it has mastered games as Chess [2] or Go [3]. Or even the algorithm developed by DeepMind which is able to cooperate with human players or other machine players [4]. These agents have been tested in the game Quake III. According to Pirovano [5], the two most common AI techniques found in games are Finite State Machines (FSM) and Decision Trees (DT), far from the performance of more complex techniques like Artificial Neural Networks (ANN) and Genetic Algorithms (GA). Therefore our main goal is making AI achievable for small and medium sized teams, providing a tool for implementing a technique halfway between the easy to use of the FSM and the power and flexibility of the ANN. And right from the most used game engine, Unity 111Unity - https://unity.com/ (Fast Facts - Unity) The AI in games is not only for the NPC or that the player can make more decisions in the game if not that AI is being used to remaster video games and improve the quality of these products in hours.
On the other hand, most game developers work on huge constraints of time and budget, thus the AI implemented specifically in games by indie developers is naive at best, if there is any at all. That is the reason that we have developed a plugin with fuzzy logic in order to help the developers and so forth to apply fuzzy logic in their projects in a easy way and make the most of it. Moreover, this plugin was developed for Unity because this game engine is operated from students or hobbyists to professionals and game studios. Unity allows the developers to create video games in multiple platforms, more exactly 30 different platforms, such as mobile, PC or console. As a result, this tool is very useful for people who wants to learn how to develop games, people that they only want to create a video game as a hobby or even in a more professional level entrepreneurs who wants to set up their entertainment company or create a professional game. Furthermore, this plugin has been designed with the fundamental functions of fuzzy logic and is very easy to use because it is aimed at beginners without previous knowledge of the subject. And this is possible because Unity is adapted to many needs being its learning process very easy at the beginning although it gets more difficult if you want to do a complex game. These features make that this game engine is used by a wider population than other game engines as Unreal Engine 222Unreal Engine - https://www.unrealengine.com/en-US/ In fact, John Riccitiello (Unity CEO) states that the half of all the games has been developed on Unity 333Unity games developed - https://techcrunch.com/2018/09/05/unity-ceo-says-half-of-all-games-are-built-on-unity/.
The objectives of the project are:
-
•
Create an easy to use tool that makes the Artificial Intelligence and Fuzzy Logic available to all game developers.
-
•
The tool has to be simple and flexible in order to be used in any kind of projects and games.
-
•
The user must be able to work with the tool using either a Graphical User Interface (GUI) or an API.
-
•
Be compliant with the FCL standard as defined in IEC 61131-7 [6]
The remainder of the paper is organized as follows: Section II presents some background on Fuzzy Logic and Artificial Intelligence. Section III describes the architecture and its Fuzzy Logic foundations. Section IV shows the results obtained by building a few small games. Section V summarizes the conclusions and discusses the future work.
II Background
In 1940 Edward Uhler Condon presented a Math game at the exhibition of Westinghouse. This human vs machine game was played by thousands of people of which only 10% were able to beat the machine. However, it was not until the 1970s that video games began to commercialize on a large scale, as in the case of the game developed by the Atari company: Pong [7]. At that time, Neural Networks were not included in the AI system of the video game, although simpler techniques such as finite state machines were used. The next section will briefly describe the influence of AI in the world of video games.
II-A Artificial Intelligence in Games
In 1959 Arthur Lee Samuel introduced Artificial Intelligence into the world of video games, more specifically teaching a computer how to play the game of checkers [8]. Thereafter, other games were developed that included artificial intelligence, highlighting the video game Space Invaders in the 70s and Pac-Man in the 80s. In Space Invaders, complexity was added to the game by introducing hash functions that ”learned” from the player’s actions. The heart of the Pac-Man game is the behavior of the ghosts that are the player’s enemies, where each one has a different behavior [9] and it is controlled by a state machine [10]. In the 90s video games were booming due to the appearance of various consoles such as Gameboy, SNES or PS One. This expansion also produced the inclusion of more complex AI systems, with special mention to the Half-life video game in which it existed a cooperation between the enemies to kill the player [11]. In the 21st century AI has advanced considerably and its algorithms are capable of defeating a human player in games like Starcraft II [12, 13].
All these developments have in common, regardless of the AI that they integrated, the improvement of the user experience and for this objective AI is an outstanding candidate. AI can be used in different aspects of a video game as pathfinding, movement, making decision or learning [10], but probably the one that stands out the most is the one that controls the behavior of NPCs. The reason is because if the behavior of these elements is realistic and resembles the real world, the users will feel that he is not playing in an artificial and predefined world but in a world more similar to their own. In reference to this last idea, it is important to remember that the aim of the AI is not to beat the player always, since the fun and motivation would be lost, but rather to create an experience as realistic as possible.
There are even studies that have analyzed the feasibility of Deep reinforcement learning for serious games [14]
In addition to Deep reinforcement learning, genetic algorithms have brought improvements in this area. In [15] AI characters for fighting games can be generated with the help of genetic algorithms and through a low-cost process. Moreover, it has also been used in a soccer simulator (Robocup Soccer) with the aim of improving decision making in the simulation of soccer teams [16]. The result of the implementation of this enhancement was that two of the three teams that made up this system were top teams in the RoboCup competition. In [17] sets out to apply genetic algorithms in real-time strategy games to learn new and effective strategies for this type of game. The problem is that these types of actions are usually abstract for the player and for this reason in this work they focus on learning strategies that can be easily interpreted by people. Furthermore, this type of algorithms have also been used in games such as Backgammon [18] or Chess [19].
In the previous paragraphs, a series of applications have been shown that are far from the AI techniques used in the first video games, which were defined by rule-based systems, that constitute the most basic algorithms in AI. More complex and innovative structures such as Deep learning or genetic algorithms are currently integrated. However, there is an AI technique called fuzzy logic that, despite not being as popular as neural networks, is very useful for this type of development and will be described below.
II-B Fuzzy Logic
Fuzzy Logic is advisable for solving many problems where the uncertainty is a main actor, for instance the uncertain multi-criteria decision making problem [20]. It is broadly used in controllers where it is hard to obtain a mathematical model, or systems that need to work with some vagueness or ambiguousness. Some applications created with fuzzy logic would be medical applications [21], daily life applications as the washing machine [22], natural interaction with face recognition [23] and posture recognition [24] and lastly smart cities. Perhaps the last one could be disconcerting, notwithstanding the growth of cities has generated various problems in them. The administration of aspects such as waste collection, environmental pollution, traffic, energy distribution or water, becomes an increasingly complex task. Fuzzy logic has contributed to energy efficiency in smart cities [25].
II-B1 Fuzzy Logic in Games
Fuzzy logic, like other AI techniques cited previously, has also contributed to video games. In special needs, games have been developed specially for autistic people. In [26] FL is used in order to rate the social skills in autistic children and adapt the level of the game to them. In the diagnoses of a patient’s autism level, the patient has to carry out activities that will determine that level. The authors of this work [27] have designed a game that is able to calculate the player’s autism level using FL. Nevertheless, apart from carrying out work with people with autism, serious games have also been designed for people with physical impairments, such as the example of this game called ReHabGame [28] where a series of activities are conducted for the upper and lower limbs, in order to evaluate and improve motor and sensory faculties in patients who have neuromuscular problems. This serious game allows the user to interact with Kinect in order to obtain information on the movement of their body during the performance of tasks and thus the fuzzy logic system will be able to extract and analyze the data corresponding to the positions of the users to satisfy their needs. In addition to ReHabGame, other serious games with different themes have also been developed, such as this serious game, in which the authors have studied the variables of throttle position sensor, engine rotation speed and car speed to determine by FL whether the driving style is efficient and in this way improve driver behavior in front of the steering wheel [29]. The authors expanded the work done integrating FL and Random Forest in order to know which algorithm was best for this type of serious game. The results indicated that the advantage of FL was that it produced understandable linguistic feedback while Random Forest predicted fuel consumption more accurately [30]. Another work that is worth mentioning for its novelty is the study conducted in [31] which aims to create a game to induce emotions in students with the aim of improving their learning process through inductive control. This system integrates fuzzy logic to analyze the performance and emotional state of the players through a voice analysis.
II-C AI Plugins for Unity
Recently the Unity engine has finally embraced artificial intelligence, adding Machine Learning (ML) to its pathfinding tool. The most outstanding open-source plugin that this game engine has it is called ML-Agents. This plugin enables games and simulators to become a training environment to train artificial intelligence agents through reinforcement learning [32]. Anyhow, if a developer wants to implement another technique the first stop is the Unity’s Assets Store, filled with thousand of plugins. But among all the variety of tools available, those intended for implementing AI are scarce, and only one of them is based on fuzzy logic. This plugin is just a Fuzzy Logic layer for another tool aimed to build fighting games. The best solution is using an external library called AForge.net (AForge.NET). Written in C#, is an AI library that includes an API for working with Neural Networks, Artificial Vision, and Machine Learning, among others. Given the broad scope of the library, the Fuzzy Logic implementation is shallow but easy to use. It has no Unity integration, so it lacks of GUI and makes it harder to use by staff like designers. The project is open source with a LGPLv3 license, so it can be easily extended, but our tool already has most of the elements it lacks like more membership functions, operators, or defuzzification methods. Ithaca was built from scratch thinking in Unity, so it implements components that can be attached to game objects. It also has a GUI for defining a system and debugging it without writing a single line of code. All these makes our solution more complete, more powerful and flexible, and thanks to its integration with Unity, easier to use.
III Ithaca
III-A What is Ithaca
Ithaca is a tool for integrating a Fuzzy Logic Inference System (FIS) on any project developed with the Unity engine. It is written in C# but it is not compiled, so all code is available to the developer for any needed modification. This makes the tool platform-independent, allowing to use it in any device among the ones available in Unity. Its core consist in a Fuzzy Rule Based System (FRBS) that evaluates a set of rules which are formed by fuzzy sets and fuzzy logic.
III-B Fuzzy Logic and Inference Engine
The fuzzy inference system implemented in Ithaca uses the Mamdani model, where the consequent of the IF-THEN rules is a fuzzy statement like this:
IF X is A and Y is B THEN Z is C |
This way of writing rules is natural and intuitive, making it more suitable for developing systems where we are trying to simulate human decision making. This model is less efficient than the Sugeno model, where the consequent of the rules are algebraic expressions [33] so the defuzzifying step is faster to compute. For defuzzifying Mamdani FIS we implemented the next methods:
-
•
Centroid or Centre of Gravity (COG):
-
•
Centroid for Singleton (COGS):
-
•
Bisector or Centre of Area (COA):
-
•
Mean of Maximum (MOM):
-
•
Right Most (RM):
-
•
Left Most (LM):
For the fuzzifying interface we wrote twelve membership functions, being some of them specific cases from more general functions, but broadly used. Regarding the logical connectives for the rules’ elements, conjunction can be defined by a set of different t-norm methods. The same happens to the union, which may be defined using one of various t-conorms. All the methods implemented are:
-
•
Membership functions:
-
–
Singleton.
-
–
Piecewise.
-
–
Triangle.
-
–
Trapezoid.
-
–
Grade.
-
–
Reverse grade.
-
–
Gaussian.
-
–
Double Gaussian.
-
–
Bell.
-
–
Cosine.
-
–
Sigmoidal.
-
–
Difference of sigmoidals.
-
–
-
•
T-Norm (AND operation):
-
–
Min (Gödel-Dummett).
-
–
Product
-
–
Bounded Difference (Łukasiewicz).
-
–
-
•
T-CoNorm (OR operation):
-
–
Max.
-
–
ASUM.
-
–
BSUM.
-
–
NSUM.
-
–
III-C Architecture
The system architecture is divided in three subsystem; the core, the graphics subsystem, and the parser. The core subsystem has three main components (Figure 1):

-
1.
The fuzzifier interface: this is where the crisp input values are turned into fuzzy values depending on the membership functions.
-
2.
The inference system: all the rules are evaluated here. The antecedents determine the value of the consequences and the result is a fuzzy value.
-
3.
The defuzzifier interface: the outputs are turned into crisp values in order to be used in the game.
The graphics subsystem is formed by the classes for the GUI and an additional set of classes, in a separated namespace, for drawing the graphs for the membership functions (Figure 3). Unity has no built-in system for drawing graphs, so we had to build our own plugin. We made it decoupled from the rest of the GUI so it could be used in other cases. At last, the parser subsystem translates the FCL files to the Ithaca inner format.
The inference engine structure is based in the FCL’s definition, where a system is represented by a Function Block (FB), which in turn is defined by a set of Linguistic Variables (LV) as inputs and outputs, and a set of rules or Rule Block (RB). Each LV represents a domain of knowledge, and if declared as input has as many fuzzy sets as needed. Each fuzzy set has a membership function that defines the degree of correspondence of an input value to this set. On the other side, if a LV is declared as output, it has an additional defuzzifier method to translate the fuzzy values to crisp values. The rules set is changeable in runtime, making it possible to adapt the knowledge base depending of the needs.
Once a system is defined using the API, GUI, or a FCL file, the inference engine can be called during gameplay asking for an output depending on the current value, or with a new value.
The GUI has a main window with three tabs (see Figure 2):
-
•
One for creating/loading a system
-
•
Another one for defining input and output variables
-
•
The last one to write sets of rules

The first tab lets the user create a new system or import one already defined. The systems can be exported to JSON format, and be loaded back from JSON and also from an FCL file. This lets the users save and exchange systems in a format trackable by version control software. Once the system is created, an asset file is created in the Unity project. This is a binary file with a serialization of the full system. If the asset file is selected, it can be edited from this window. The second tab is for declaring the input and output linguistic variables. Once the LV is created, it can be edited in order to add the fuzzy sets and its membership functions (Figure 3). The user can declare the limits of the LV and its default value.

Finally, in the third tab, the user can define sets of rules written in natural language (Figure 4). For each set of rules the user can decide the methods for the operations. This operations are:
-
•
The methods for the logic operations AND/OR, also called aggregation operation. In order to satisfy De Morgan’s law the methods must go in the following pairs:
-
–
Min-Max
-
–
Prod-ASUM
-
–
BDIF-BSUM
-
–
-
•
The methods for the activation operation. This operation translates the result of the antecedent to the consequent.
-
–
Min
-
–
Prod
-
–
-
•
The method for the accumulation operation. This operation takes the results from the consequent of all fired rules and combines its values to obtain one output.
-
–
Max
-
–
BSUM
-
–
NSUM
-
–
If the used defines more than one set of rules, a default one must be choosen. As we said, the RB can be changed during runtime.

There is also an additional window, the debugger. It lets the developer debug both the graphs values and the rules that fired and its values. (Figure 5).

III-D Features
The main features of the Ithaca tool are:
-
•
A powerful GUI that allows to define a full system using graphs.
-
•
The inference system used is Mamdani, which uses fuzzy sets as outputs for the rules. This way the output is easier to use by the developer in most cases.
-
•
Covers the most used membership functions, defuzzifier methods, and operation expressions. The user can define new functions, methods, or expressions.
-
•
It is not compiled, thus the user can modify the code as needed within Unity.
-
•
A graphical debugging system that allow to check in real time the input and output values, as well as the values of every rule and if it was fired.
-
•
It can be used to build games in any platform available in Unity.
IV Results
IV-A Crane
The goal of this test was to build a complex system using our tool, and to check the compliance with the FCL standard. So we decided to use the crane system defined in the FCL standard [6], that controls container crane that loads and unloads containers from ships. The controller must moves the containers taking care of the speed and angle(Figure 6). The rules of the system were:
-
1.
IF distance IS far AND angle IS zero THEN power IS pos_medium.
-
2.
IF distance IS far AND angle IS neg_small THEN power IS pos_high.
-
3.
IF distance IS far AND angle IS neg_big THEN power IS pos_medium.
-
4.
IF distance IS medium AND angle IS neg_small THEN power IS neg_medium.
-
5.
IF distance IS close AND angle IS pos_small THEN power IS pos_medium.
-
6.
IF distance IS zero AND angle IS zero THEN power IS zero.
The test demonstrated both the compliance with the FCL standard and the usefulness of the tool for building complex system using natural knowledge provided by specialists like a crane operator.

IV-B Race car
The objective in this test was to develop an adversary AI that looks natural and realistic, and to develop it entirely with the GUI. Many times it is important to keep the illusion that we are playing against a human to engage with the player, even if it makes our AI less optimal. The vagueness of the Fuzzy Logic makes it ideal for developing systems that act as imprecise as a human would. In this case we built two race cars, both with the same sensors and almost the same set of rules. But one, called ”Classic car”, used classic logic, while the ”Fuzzy car” used our inference system. The knowledge base used was:
-
1.
IF Front IS Normal THEN Steering IS Straight, Speed IS Somewhat Fast.
-
2.
IF Front IS Far THEN Steering IS Straight, Speed IS Very Fast.
-
3.
IF Left IS Close THEN Steering IS Right.
-
4.
IF Right IS Close THEN Steering IS Left.
-
5.
IF VeryLeft IS Close THEN Steering IS VeryRight.
-
6.
IF VeryRight IS Close THEN Steering IS VeryLeft.
The results were that the fuzzy car was faster and its trajectory was much more natural (Figure 7). As for the use of the GUI, the system revealed itself as faster than using the API.

V Conclusions
After the experience of developing those tests and some more small games, the power of our tool was clear. Its installation and integration on the project are really simple and straightforward, making the first step as easy as possible for any developer, especially the ones less experienced. This point is noteworthy as many of the users of Unity are not seasoned programmers.
The use of the GUI or the FCL makes building a Fuzzy Logic AI more approachable for small teams or solo developers, who can spend more time designing the behaviour of the agents rather than writing code. The use of natural language for writing the rules and defining the variable makes it easier to involve staff that does not know how to code but has a great knowledge of the matter. This allows these teams to focus on what is perceived by the players, the gameplay and the way of acting of its artificial intelligence.
Not only is it easy to develop, but it is also very simple to debug and maintain. Using natural language the developer is able to understand what is happening in the system at any moment and know what to expect from it. The debugging window is additional help on this task, as the user can read the status of the system and its expected outcomes in a visual way.
V-A Future Work
-
•
To implement Combs method for reducing the number of rules needed by combining them.
-
•
To add the option to create Fuzzy Finite State Machines (FuFSM). The FSM is a very popular technique among game developers and the use of FL can provide a degree of uncertainty very valuable in some cases.
-
•
To generate the knowledge base implementing Adaptive Network-based Fuzzy Inference System (ANFIS)[34]. This would allow creating more powerful systems thanks to the use of NN.
-
•
To implement Takagi-Sugeno method for inference.
-
•
To implement the new Fuzzy Markup Language (FML), based on XML [35].
Acknowledgment
This work was funded by the EU ERDF and the Spanish Ministry of Economy and Competitiveness (MINECO) under the Project TIN2017-83964-R. This work also received funding from the CEiA3 and CEIMAR consortium.
References
- [1] A. Nareyek, “Ai in computer games,” Queue, vol. 1, no. 10, pp. 58–65, 2004.
- [2] M. Newborn, Kasparov versus Deep Blue: Computer chess comes of age. Springer Science & Business Media, 2012.
- [3] D. Silver, A. Huang, C. J. Maddison, A. Guez, L. Sifre, G. Van Den Driessche, J. Schrittwieser, I. Antonoglou, V. Panneershelvam, M. Lanctot et al., “Mastering the game of go with deep neural networks and tree search,” nature, vol. 529, no. 7587, p. 484, 2016.
- [4] M. Jaderberg, W. M. Czarnecki, I. Dunning, L. Marris, G. Lever, A. G. Castaneda, C. Beattie, N. C. Rabinowitz, A. S. Morcos, A. Ruderman et al., “Human-level performance in 3d multiplayer games with population-based reinforcement learning,” Science, vol. 364, no. 6443, pp. 859–865, 2019.
- [5] M. Pirovano, “The use of fuzzy logic for artificial intelligence in games,” University of Milano, 2012.
- [6] International Electrotechnical Commission, “IEC 61131-7 Committee Draft CD 1.0,” 1997.
- [7] T. S. Perry and P. Wallich, “Microprocessors: Design case history: The atari video computer system: By omitting lots of hardware, designers added flexibility and gave video-game programmers room to be creative,” IEEE Spectrum, vol. 20, no. 3, pp. 45–51, 1983.
- [8] A. L. Samuel, “Some studies in machine learning using the game of checkers,” IBM Journal of research and development, vol. 3, no. 3, pp. 210–229, 1959.
- [9] S. M. Lammers, Programmers at work: Interviews with 19 programmers who shaped the computer industry. Microsoft Press, 1989.
- [10] I. Millington, AI for Games. CRC Press, 2019.
- [11] K. Birdwell, “Valve’s design process for creating half-life,” 1999.
- [12] M. Čertickỳ, D. Churchill, K.-J. Kim, M. Čertickỳ, and R. Kelly, “Starcraft ai competitions, bots, and tournament manager software,” IEEE Transactions on Games, vol. 11, no. 3, pp. 227–237, 2018.
- [13] O. Vinyals, T. Ewalds, S. Bartunov, P. Georgiev, A. S. Vezhnevets, M. Yeo, A. Makhzani, H. Küttler, J. Agapiou, J. Schrittwieser et al., “Starcraft ii: A new challenge for reinforcement learning,” arXiv preprint arXiv:1708.04782, 2017.
- [14] A. Dobrovsky, C. W. Wilczak, P. Hahn, M. Hofmann, and U. M. Borghoff, “Deep reinforcement learning in serious games: Analysis and design of deep neural network architectures,” in International Conference on Computer Aided Systems Theory. Springer, 2017, pp. 314–321.
- [15] G. Martinez-Arellano, R. Cant, and D. Woods, “Creating ai characters for fighting games using genetic programming,” IEEE Transactions on Computational Intelligence and AI in Games, vol. 9, no. 4, pp. 423–434, 2016.
- [16] A. Tavafi and W. Banzhaf, “A hybrid genetic programming decision making system for robocup soccer simulation,” in Proceedings of the Genetic and Evolutionary Computation Conference, 2017, pp. 1025–1032.
- [17] J. R. Marino, “Learning strategies for real-time strategy games with genetic programming,” in Proceedings of the AAAI Conference on Artificial Intelligence and Interactive Digital Entertainment, vol. 15, no. 1, 2019, pp. 219–220.
- [18] Y. Azaria and M. Sipper, “Gp-gammon: Genetically programming backgammon players,” Genetic Programming and Evolvable Machines, vol. 6, no. 3, pp. 283–300, 2005.
- [19] A. Hauptman and M. Sipper, “Gp-endchess: Using genetic programming to evolve chess endgame players,” in European Conference on Genetic Programming. Springer, 2005, pp. 120–131.
- [20] L. Chen, G. Duan, S. Wang, and J. Ma, “A choquet integral based fuzzy logic approach to solve uncertain multi-criteria decision making problem,” Expert Systems with Applications, vol. 149, p. 113303, 2020.
- [21] R. Nimri and M. Phillip, “Artificial pancreas: fuzzy logic and control of glycemia,” Current Opinion in Endocrinology, Diabetes and Obesity, vol. 21, no. 4, pp. 251–256, 2014.
- [22] P. Gupta, “Applications of fuzzy logic in daily life.” International Journal of Advanced Research in computer science, vol. 8, no. 5, 2017.
- [23] S. Basak, R. Jia, and C. Lei, “Face recognition using fuzzy logic,” in 2018 IEEE International Conference on Information and Automation (ICIA). IEEE, 2018, pp. 1317–1322.
- [24] D. Brulin, Y. Benezeth, and E. Courtial, “Posture recognition based on fuzzy logic for home monitoring of the elderly,” IEEE transactions on information technology in biomedicine, vol. 16, no. 5, pp. 974–982, 2012.
- [25] P. N. Krishna, S. R. Gupta, P. Shankaranarayanan, S. Sidharth, and M. Sirphi, “Fuzzy logic based smart home energy management system,” in 2018 9th International Conference on Computing, Communication and Networking Technologies (ICCCNT). IEEE, 2018, pp. 1–5.
- [26] A. Khabbaz, A. Pouyan, M. Fateh, and V. Abolghasemi, “An adaptive learning game for autistic children using reinforcement learning and fuzzy logic,” Journal of AI and Data Mining, vol. 7, no. 2, pp. 321–329, 2019.
- [27] S. Iyer, R. S. Mishra, S. P. Kulkami, and D. Kalbande, “Assess autism level while playing games,” in 2017 2nd International Conference on Communication Systems, Computing and IT Applications (CSCITA). IEEE, 2017, pp. 42–47.
- [28] S. S. Esfahlani, S. Cirstea, A. Sanaei, and G. Wilson, “An adaptive self-organizing fuzzy logic controller in a serious game for motor impairment rehabilitation,” in 2017 IEEE 26th International Symposium on Industrial Electronics (ISIE). IEEE, 2017, pp. 1311–1318.
- [29] R. Massoud, S. Poslad, F. Bellotti, R. Berta, K. Mehran, and A. De Gloria, “A fuzzy logic module to estimate a driver’s fuel consumption for reality-enhanced serious games,” International Journal of Serious Games, vol. 5, no. 4, pp. 45–62, 2018.
- [30] R. Massoud, F. Bellotti, S. Poslad, R. Berta, and A. De Gloria, “Exploring fuzzy logic and random forest for car drivers’ fuel consumption estimation in iot-enabled serious games,” in IEEE International Symposium on Autonomous Decentralized Systems (ISADS), 2019.
- [31] C. A. Lara, H. Mitre-Hernandez, J. Flores, and H. Perez, “Induction of emotional states in educational video games through a fuzzy control system,” IEEE Transactions on Affective Computing, 2018.
- [32] H. C. M. Karangiya, “Training an agent to play a game using reinforcement learning,” 2019.
- [33] A. Kaur and A. Kaur, “Comparison of mamdani-type and sugeno-type fuzzy inference systems for air conditioning system,” International Journal of Soft Computing and Engineering (IJSCE), vol. 2, no. 2, pp. 323–325, 2012.
- [34] J. S. R. Jang, “Anfis: adaptive-network-based fuzzy inference system,” IEEE Transactions on Systems, Man, and Cybernetics, vol. 23, no. 3, pp. 665–685, May 1993.
- [35] I. S. Association et al., “Ieee standard for fuzzy markup language,” 1855.