Key features
-
Simple, clear and clean code
My main goal: to enable game developers to write simple, clear and clean code in the shortest possible time and with minimum effort.
SymOntoClay reduces boilerplate code using domain-specific language.
-
Fuzzy logic
Fuzzy logic makes code closer to natural language.
Specific numbers are replaced with more convenient human concepts: "near", "far", "a lot", "little", "almost", "maybe", "cold", "warm", "hot" and the like.
It also greatly simplifies the code. A complex condition can easily be replaced with a more elegant looking fuzzy value.
-
Logical database
Allows to use a powerful logic programming paradigm in game development:
- Declarative knowledge representation. Knowledge is presented as facts. This allows to focus on describing a world, game objects and relationships between them.
- Inference using rules. New knowledge can be obtained using existing knowledge and logical rules.
SymOntoClay provides additional possibilities in logic programming:
- Using inheritance in logical inference. Rules for more general (basic) concepts can be used for a concrete concept.
- Fuzzy logic. Simplifies code and makes it closer to natural language.
These features allow to write simple, clear and clean code quickly and with minimal effort.
-
Triggers
A trigger activates the execution of a code upon the occurrence of an event described by some condition. It uses all the power of logic programming in SymOntoClay.
-
Multiple fuzzy inheritance
In real life, an object, an entity, a concept can have many basic concepts. For example, a person can have many social roles. It is convenient to consider belonging to a social role by the inheritance relation "is a"
Since we are talking about a person's borrowing of a certain behavior from a social role, multiple inheritance of classes should be preferred over inheritance of interfaces.
The degree of expression of these social roles in this person may be different, so It is conveniently expressed as the rank of inheritance. It allows to choose a more preferable action, taking into account the involvement in the social role.
SymOntoClay supports this on syntax level. Just define a relationship between concepts!
-
NPC isolation
Each NPC is isolated from other NPCs. The interaction between them is carried out exclusively by simulating the work of the human senses.
This eliminates AI cheating without any additional effort of a developer.