Guides/Scripting Guide/Tutorials/Connecting

From Sirikata Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.