Key features
-
Simple, clear and clean code
The primary goal is to enable game developers to write simple, clear, and clean code as quickly as possible and with minimal effort. SymOntoClay reduces boilerplate code through the use of a domain-specific language.
-
NPC isolation
Each NPC is isolated from others. Interaction between NPCs is carried out exclusively by simulating human sensory mechanisms. This eliminates AI cheating without requiring any additional effort from the developer.
-
HTN (Hierarchical Task Networks)
NPCs plan their actions through a hierarchy of tasks. Goals are decomposed into subtasks, forming a behavior tree. This planning approach makes characters more realistic and adaptive.
-
Fuzzy logic
Fuzzy logic brings code closer to natural language. Numeric values are replaced with more intuitive human concepts such as: "near", "far", "many", "few", "almost", "maybe", "cold", "warm", "hot", and similar terms. This greatly simplifies the code: a complex condition can be replaced with a more elegant fuzzy value.
-
Logical database
Provides the ability to use a powerful logic programming paradigm in game development:
- Declarative knowledge representation: facts describe the world, game objects, and their relationships.
- Rule-based inference: new knowledge is derived from existing facts and logical rules.
Additionally, SymOntoClay supports:
- Inheritance in logical inference.
- Fuzzy logic to simplify conditions.
-
Triggers
Triggers activate code execution when an event described by a condition occurs. They leverage the full power of logic programming in SymOntoClay.
-
Multiple fuzzy inheritance
In real life, an object or a person can belong to multiple base concepts (for example, social roles). SymOntoClay supports multiple inheritance with ranks: the degree of role expression is defined numerically, allowing the system to select the most appropriate action based on role involvement. This is implemented at the syntax level—simply define the relationship between concepts.