SymOntoClay is game AI experimental open source engine.


  Warning logo Purely experimental and very unstable project developed by only one person
Please read the page before starting

Worldspace and project file structure

Contens

Overview

back to top

You develop applications in the context of an SymOntoClay worldspace. A worldspace contains the files for one or more projects. The project is a collection of files which defines behavior or information of NPC and information about Thing, Place or Player. The project is unit which is linked to Unity Game object with special asset.

The SymOntoClay CLI soc new creates new worldspace.

soc new <Project name>

The created worldspace contains an initial skeleton and is ready to run and easy to modify.

General file structure

back to top

Here is general project file structure.

my-worldspace/
    Libs/
        lib1/
            lib1.slib
            lib1.soc
        lib2/
            lib2.slib
            lib2.soc
    Navs/
        GreenWaypoint/
            GreenWaypoint.sobj
            GreenWaypoint.soc
    Npcs/
        MyNPC/
            MyNPC.sobj
            MyNPC.soc
    Players/
        RedPlayer/
            RedPlayer.sobj
            RedPlayer.sobj
    SharedLibs/
        stdlib/
            stdlib.slib
            stdlib.soc
            LinguisticVariables.soc
            Relations.soc
            Rules.soc
    Things/
        MyBarrel/
            MyBarrel.sobj
            MyBarrel.soc
    World/
        my-world.world
        my-world.soc
    my-worldspace.wspace

Files and directories meaning

back to top

my-worldspace/

back to top

It is a root directory of your worldspace. The name of the root directory can be whatever you want.

Directory World are required.

Another directories can be in any count and can have any names. The meaning of these directories - grouping projects.

Libs/

back to top

It is a root directory of your libraries.

To create a library, use the command:

soc new -lib <Library name>

Navs/

back to top

Groups projects which are defining information about navigation elements, like waypoints, areas, roads and something like this.

To create a Navigation element, use the command:

soc new -nav <Navigation Project name>

Npcs/

back to top

Groups projects which are defining NPCs' behavior and information.

To create an NPC, use the command:

soc new -npc <NPC Project name>

Players/

back to top

Groups projects which are defining information about players.

To create a Player, use the command:

soc new -player <Player Project name>

SharedLibs/

back to top

Required

This directory contains shared libs.

To install a shared library, use the command:

soc install <Shared library name>

Available shared libraries you can see here.

Things/

back to top

Groups projects which are defining information about things.

To create a Thing, use the command:

soc new -thing <Thing Project name>

World/

back to top

Required

Defines general information about world.

World creates automatically during creation new project.

To create a world in empty directory, use the command:

soc new -world <Worldspace name>

.wspace

back to top

Required

Locator of worldspace.

.world

back to top

Required

Locator of world's project.

.sobj

back to top

Required

Locator of project.

.slib

back to top

Required

Locator of library.

.soc

back to top

Source code on SymOntoClay DSL.