Skip to content
@Symontoclay

SymOntoClay

SymOntoClay is an independent DIY scripting language to define game character behavior.

SymOntoClay

experimental Website GitHub release (latest by date) Site YouTube Discord

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.

⚠️ This is a purely experimental and unstable personal project, created by a single developer. Not intended for production use. Please read the Disclaimers carefully before use!

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.

Requirements

SymOntoClay CLI requires:

  • NET 9.0

SymOntoClay's components for Unity require:

  • Unity 2022.2.8f1

  • NET 9.0

Installation

You can build and install the project from source code.

Documentation

Examples

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.

Feel free contact to me about the project. I will be glad to receive feedback.

Pinned Loading

  1. SymOntoClay SymOntoClay Public

    The core of SymOntoClay Engine. SymOntoClay is an independent DIY scripting language to define game character behavior. It is a domain-specific hybrid language integrating logic programming, impera…

    C# 6

  2. SymOntoClayAsset SymOntoClayAsset Public

    Unity components of SymOntoClay Engine. SymOntoClay is an independent DIY scripting language to define game character behavior. It is a domain-specific hybrid language integrating logic programming…

    C# 1

Repositories

Showing 7 of 7 repositories

Top languages

Loading…

Most used topics

Loading…