SymOntoClay project
SymOntoClay is a domain-specific scripting language and AI engine for defining game character behavior. It combines imperative constructs with logic programming, HTN planning, fuzzy logic, and event-driven triggers, offering a maximally declarative and human-readable syntax.
It adheres to high standards of expressiveness, drawing inspiration from both programming language theory and AI research. The design principles ensure the following benefits:
- Declarativity: behavior is described at a high level, reducing boilerplate and making scripts more readable.
- Readability: syntax that remains clear and approachable.
- Expressiveness: complex reasoning, planning, and reactive mechanisms can be captured concisely.
SymOntoClay integrates with Unity as open-source components. It provides support for Hierarchical Task Networks (HTN) and knowledge-based reasoning, enabling developers to create NPCs with predictable, consistent, and intelligent behavior.
SymOntoClay is completely free, released under the MIT License. I only ask for your recognition, nothing else. If you find it useful and would like to support the project, I would be very grateful. Your support inspires me and helps me dedicate more time to developing SymOntoClay.
How to pronounce SymOntoClay
It's abbreviation of "Symbolic ontological clay".
Pronunciation: [sim äntə klā].
- Symbolic
- I've been focusing on Symbolic artificial intelligence. It will allow us to define NPC behavior in more determined way. I think It's important for game plot and gameplay.
- Ontological
- I've been focusing on explicitly describing knowledge.
- Clay
- It's a reference to the clay from which God created Adam.
SymOntoClay is built on a philosophy of declarativity, clarity, and human-readability. Learn more in the Principles and Project Philosophy section.
Goals
Short-term Goal
We are exploring various approaches to symbolic artificial intelligence and examining how they can enhance game development. Our objective is to discover new ways to make the process of creating games more creative, flexible, and inspiring.
Long-term Goal
We aim for SymOntoClay to become a powerful and user-friendly tool for game developers. It should support the creation of original game worlds, bring enjoyment to players, and foster a developer community. We believe that symbolic AI can enrich gameplay and design, and we will continue developing the project to bring this future closer.
Key features
- Simple, clear and clean code
- NPC isolation
- HTN (Hierarchical Task Networks)
- Fuzzy logic
- Logical database
- Triggers
- Multiple fuzzy inheritance
Learn key features in details here.
Domain-specific language (DSL)
SymOntoClay employs its own domain-specific scripting language (DSL). This is an imperative, dynamically typed language with syntax resembling C, but extended with non-standard approaches:
- Logic programming
- Fuzzy logic
- Multiple fuzzy inheritance
- Other experimental concepts
I have the freedom to experiment with syntax, which allows me to integrate unconventional features in a manner that is both elegant and convenient for game development.
The primary principle in designing the DSL is the combination of expressiveness and practicality. A proprietary language makes it possible to unify unique mechanisms in ways that would be difficult or even impossible to achieve in existing programming languages.
Project status
I’ve been developing SymOntoClay alone in my free time since 2014, so progress is gradual.
So far, I’ve built two prototypes:
- The first was an initial implementation of the domain-specific language (DSL) and its integration with Unity.
- The second prototype included a demo video, which I shared in an indie game developers group on Facebook. You can watch that demo here.
My current focus is on implementing the core AI-driven features—the ones that make the project truly unique. Supporting features are added only when necessary to demonstrate or enable these key capabilities. This means that some non-essential elements of the DSL or engine may be missing, and aspects like stability or performance are not yet prioritized.
I plan to continue experimenting and refining the system. My hope is that SymOntoClay will eventually become a valuable tool for many indie game developers.
Roadmap
SymOntoClay is evolving step by step. See the full roadmap for details.
Contributing
SymOntoClay is still under development, and contributions are welcome! Whether it's testing, reporting bugs, or improving the codebase — your help matters. See the Developers Guide for details.
Your feedback is always welcome. Feel free to contact me about the project.
My articles
DevTo: 11 Years on a Hobby Project: SymOntoClay Dev Journal
Published: January 10, 2026
Mirror on Medium