Guides/Scripting Guide/Tutorials/Connecting
Connecting to a Sirikata World
Before you can start scripting, you need to be connected to a world. Currently, the connection procedure isn't very user friendly -- there isn't a UI for it -- but its also not too challenging to customize.
First, you'll need to know what server you are connecting to. You'll need to know both the hostname (e.g `sample.sirikata.com`) and the port (e.g. `7777`). If you are running your own space server, these values will be `localhost` and `7777` by default.
To run, find the object host binary, called `cppoh` (or `cppoh_d`). If you're using a prepackaged version then it should be under `sirikata/bin/`. If you've built from scratch, it is under `sirikata/build/cmake/`. Then, we just run the binary, specifying the hostname and port:
./cppoh_d "--servermap-options=--host=sample.sirikata.com --port=7777"
Note the quotes around the one option string -- because we need to specify both the host and port as suboptions to `servermap-options`, we need to put quotes around the entire `servermap-options` string.
If everything went right, a window should have popped up and started displaying the world.
Client Configuration
The default scene should provide you with a configuration . If you want to use a customized client script (for instance, providing different features or key bindings) you need to specify.
In Sirikata, the client is not special in anyway -- it is just a normal object that connects to and interacts with the world just as any other object and it just happens to also display the world in a window and handle user input. Because of this, the program being executed is just the normal `object host`. Generally, when running as the client, the configuration specifies only one object -- your avatar -- to be loaded. To control the set of objects that are loaded, you can specify a scene file instead of using the default of `scene.db`:
./cppoh_d --object-factory-opts=--db=my.db
Within the database file, each object can specify a `script_type` and `script_options`. By setting these for your avatar object, you can alter the behavior of the client. The defaults for the client are `js`, which specifies the JavaScript/Emerson scripting plugin, and `--init-script=std/defaultAvatar.em`, which is a script that turns on graphics and sets up many useful default interactions such as using the mouse for manipulating objects and key bindings for bringing up a scripting window for objects.
Additional Configuration
If you need to specify additional options, or you always want to connect to the same server, it can be more convenient to create a configuration file which specifies all your options. A configuration file has one option per line, formatted as:
--option=optionvalue
From the example above, we might specify the following in our configuration [file: file:]
--servermap-options=--host=sample.sirikata.com --port=7777
to avoid typing it every time we want to start the client. To run with the configuration file, you specify it as an option to the client:
./cppoh_d --cfg=my.cfg
Now, if you have many options in `my.cfg`, they will all be included when you specify the configuration file.