Tutorial01

From Osgrid Wiki
Jump to: navigation, search

What is OpenSimulator?

OpenSimulator is an open source multi-platform, multi-user 3D application server. It can be used to create a virtual environment (or world) which can be accessed through a variety of clients, on multiple protocols. It also has an optional facility (the Hypergrid) to allow users to visit other OpenSimulator installations across the web from their 'home' OpenSimulator installation.

OpenSimulator allows virtual world developers to customize their worlds using the technologies they feel work best - the framework is designed to be easily extensible.

OpenSimulator is written in C#, running both on Windows over the .NET Framework and on Unix-like machines over the Mono framework. The source code is released under a BSD License, a commercially friendly license to embed OpenSimulator in products. If you want to know about our development history, see History.

Out of the box, OpenSimulator can be used to simulate virtual environments similar to Second Life™, given that it supports the core of SL's messaging protocol. As such, these virtual worlds can be accessed with the regular SL viewers. However, OpenSimulator does not aim to become a clone of the Second Life server platform. Rather, the project aims to enable innovative feature development for virtual environments and the Metaverse at large.

Before you can start running your own regions, it is rather handy if you know all the terms and names of the protocols, the software, and have a grasp of what something exactly means. This prevents you from getting real frustrated. Also what worked for others, might not work for you. Please find the list of “scary words” below, with a short simple explanation / definition of what it means and can do for you. It’s basic, not very in depth, so also the “less technical” has an idea of what’s meant. You need to however have the basic understanding of these concepts to be able to “operate” a server.

Goals for this class :

  ♦Get a basic understanding of the names & abbreviations of all the terms, services and  protocols used running a simulator.
  ♦Understanding what these things do, and why you need them.
  ♦How is OSgrid setup, and how do you and your simulators fit in that picture
  ♦Understanding Basic networking.

A lot of the things discussed below are very “broad” and will take at least a year of study to learn all ins and outs, so we keep it basic, and within the scope of our class. If we tell you, you’ll need a IP address, please assume you do. Can always ask questions later. First get the global picture, learn to drive. You can always grow to be a racer or even become a mechanic later.

Administrator : A user with elevated permissions. ( allowed to do anything on a machine, including installing and starting servers etc. ) .

Cache : Cache, stores recently used information so that it can be quickly accessed at a later time. Computers incorporate several different types of caching in order to run more efficiently, thereby improving performance. Common types of caches include browser cache, disk cache, memory cache, and processor cache. Also our viewers have a viewer cache.

Console : Also called Simulator, instance or Shell. It is the “Dos-like” black box screen /shell with the command prompt that appears when you start “OpenSim.exe”. That physically “is” the simulator software. It is the server on which the regions run.

Coordinates : This is the x,y designation that determines a region's position within the grid. see http://www.osgrid.org/index.php/gridmap

CPU : Central processing unit. The unit that calculates all the instructions of your computer. The more “cores” it has available, the faster it can calculate. The data processed by a CPU generally comes from the hard drive, is loaded into the RAM, and queued for processing. Big processes are cached on the hard drive, whilst the CPU processes the current active data in the RAM memory.

Client-Server Model : Computer transactions in which the server fulfills a request made by a client are very common and the client/server model has become one of the central ideas of network computing. Your pc runs a client. In our case it is a viewer. We use it to visit regions, which reside on OpenSimulator software. We call those the servers. A server can typically “serve’ multiple clients simultaneously. (There are also other models, like p2p (peer to peer) in which there are only clients communicating to each other).

Database : OpenSimulator stores all its data in a Database. This can be SQL-lite (Used by default in OSgrid) or a MySQL, PostGres, or other database program.

DNS name : Since we humans are bad with numbers, we give our IP addresses Names, so they are easier to remember. The internet “phonebook” for translating IP addresses to names is called DNS ( Domain Name System).

DHCP server : Server that dynamically assigns IP addresses to computers that do not have a static IP address. ( A DHCP assigned address is thus “dynamic”).

DIVA : A very convenient distribution of a 4 region standalone grid, which includes a pre-configured web-interface. Read the /DOC folder ! This is outside the scope of our classes for now.

Developer : Magical organism that uses nicotine and caffeine to produce “code”. These guys & girls “program” OpenSimulator. It’s the crème de la crème of the “nerds”, and your existence in the grid is solitary due and thanks to them. ( Some blame them for anything they can…). However, without developers, no grid. So be nice when you meet one. They deserve it.

Estate : Hosts can use estates to “group” simulators and grant specific permissions to Estate owners. Estates are controlled on a simulator level.

Firewall : hard or software that denies & blocks connections from outside your network to enter your computer. ( Unless you make “access rules” to allow the traffic / program ).

Gateway : The Gateway for your network is the address of the device that sends your traffic to the internet. Typically this is a modem or router, directly connected to the ISP. Any router supports basic NAT. That’s what makes it a router. Routers without NAT are called Modems.

Grid : A network of OpenSimulator interconnected regions. This can be setup with the OpenSimulator software. A grid has a different architecture than a standalone, or “grid connected” region. A Grid is a community or network of individual simulators using some form of shared database for one or all of its grid services. So it’s a collection of independent OpenSim Instances, Simulators, Sims, Regions, or Megaregions sharing a database or databases which handle assets and inventory for grid members.

Grid Administrator : A user with elevated permissions on the Grid servers. Mind that grid admins have no permissions or special abilities on “your” server. Despite it being connected to the grid, a Grid Admin cannot get elevated permissions on your local server.

Host : Someone running a Server instance. ( He “hosts” servers / regions in a machine in his/her network. Also, within a network environment any computer or device connected to that network can be referred to a host or client. ( see client / server model ).

Instance : One example of OpenSim running, on a server or PC, in whatever form as outlined below. Usually, but not always, contained inside a single directory on your computer.

IP address : ( Internal / External ) ( Static / Dynamic ) : Your router has 1 unique public IP address (imagine the internet working like the mail, with unique addresses). The router can translate this to multiple “internal” ip addresses. This is why you have to make port forward’s for the simulator (server) software to work. These IP addresses can be “ static” ( ie always the same) or Dynamic ( you possibly get a new one every time you restart).

UUID : Universally Unique Identifier. This is a number which is unique in the world. Such numbers are used to store your assets, region names and much more data, of which only 1 can exist. (since its made out of a partial date-timestamp, it can be unique).

NPC : Non player character. IE a “Bot”. These vary, from simple scripted avatars, to very advanced software controlled ones, running artificial intelligence.

OpenSimulator : The software used to build grids. It’s a program with a whole lot of modules, which can be switched on / off and configured by editing their .ini files.

Simulator : See “console”. A simulator is the software that you can install the regions on. The programs forming the Simulator are the contents of your BIN folder. It is One instance of OpenSimulator, running anywhere from one region to hundreds.

Standalone : A machine with a simulator on local assets, that is not connected to any grid.

OSgrid : The test grid for OpenSimulator. OSgrid runs the very latest “cutting edge” releases issued by the developers of OpenSimulator. It’s large user base provides feedback for improvement, bug tracking etc.

Parcel : An area of land owned by a single user or group, which is at least 16m² and at maximum the entire region, all within one region.

Plaza : All regions maintained by and running on servers of OSgrid are called Plaza. It’s why one of the very few rules for naming regions is kindly not to use Plaza….

Port: Programs connect via the internet through ports. 80 is used for internet traffic, 25 for mail, 21 for FTP, etc. Ports 1-1024 are reserved. (Don’t use these, as that might fuck up things severely). OSgrid uses 9000 by default. There are TCP and UDP ports. Simulators run on TCP, and regions use an UDP port to send traffic.

Port forwarding : Tells a router that if traffic comes in on a certain port, it needs to be sent to a certain internal IP address. ( So if you run a region on port 9000, we need to tell the router that any traffic coming in on the public IP address with port 9000, needs to be sent to your PC, which is running the OSgrid software). You can “map” 65536 TCP and 65536 UDP ports on 1 single IP address. Mind a port can only be used once per IP public address. A program generally can run on any port you assign to it.

Physics engine: Determines what physics system is used. (impacts things like gravity etc).

RAM : The memory of your computer. ( not to be mistaken with your hard drive, that stores data). The more Ram you have the more prims, scripts, and visitors you can stuff into your regions.

Script : A mini-program that can communicate with the OpenSim software, making an in-world object “do” things. (Make it spin, change color, move, or whatever).

Thread : In computer science, a thread of execution is the smallest sequence of programmed instructions that can be managed independently by a scheduler, which is typically a part of the operating system. The implementation of threads and processes differs between operating systems, but in most cases a thread is a component of a process. Multiple threads can exist within one process, executing concurrently (one starting before others finish) and share resources such as memory, while different processes do not share these resources. In particular, the threads of a process share its instructions (executable code) and its context (the values of its variables at any given time).

Region : Part of a Simulator, the main unit of a sim. Currently 256 x 256 meters, but other sizes are possible, which will make it a VAR Region. Some people refer to regions as Islands. (as that’s how they appear on the map).

Router : Networking device that translates 1 or more public IP addresses to internal IP addresses by maintaining a “Routing Table” and a “Connections cache”. This translating of IP addresses Is called NAT. You have to tell it where traffic needs to be sent to ( by making “port forward’s” ).

Region Overlap : This occurs (and gives an error / crash at startup) when you have chosen coordinates that are in use or your intended region size overlaps with an already existing region. Please use the grid map at http://www.osgrid.org/index.php/gridmap to find coordinates that are open and have room for your region(s). Mind that VAR regions are not displayed properly, so if you get an error, try different coordinates.

NAT : Network Address Translation. The translating of a public IP address (range) to an internal address range. Internal ranges are defined to always use 192.168.x.x 10.x.x.x or 172.16.x.x as ranges. Meaning if your IP starts with any other number, it is a public “no-nat” address.

NAT loopback : A router / network expects you to use public addresses for connecting to servers outside your network. However, if a server is in your “own” local network, traffic has to be sent out the gateway, and “looped back in”, as the destination for the server is inside your network. Some routers do not have this feature. They would expect you to use an internal address, when the destination is in the same network as you are. This generates a problem where anyone can login to the sim, apart from the people in the same network that’s “running it”. (needs diagram)

NAT loopback Adapter : Tricks the PC by making the network adapter send any traffic destined for its own public address to “localhost”. This enables a user to install a viewer and server on 1 machine, and still visit his region, despite having no loopback in the router. (the traffic never actually gets sent to the router/gateway). No other machines from within the same network will be able to access it though. This is because the packets need to come in via the router, and also for them, loopback fails.

Map : Tool used since the stone age to find routes, empty space, or places….

Modem : device that MODulates and DEModulates traffic. This does not NAT. It just switches the bits & bytes into transmissible network packets on a medium, typically a wire.

Module : Piece of software that “Controls” a function. Vivox for instance is a module which can be enabled to have voice on your region. Its optional. It are extensions or plugins that expand possibilities on the default configuration.

Mega Region : a group of contiguous regions in one instance of OpenSim without any restraints caused by borders. In effect, a group of anywhere from 2 to hundreds of regions configured to act as one single region. This used to be a “Hack”(and buggy), so we prefer you to use a VAR instead.

VAR Region : Part of a Simulator, the main unit of a sim, but with “Variable Size”. You can create regions bigger than 256x256, without borders, as long as you choose coordinates that allow for the area you need. Such a “big sim” is called a VAR Region. Do not mistake a VAR with a Mega region !

Virus scanner : Detects and prevents malicious code from entering your computer. (even if the firewall allows the traffic).

Wireless : Transmitting your bits and bytes through ether ( thin air ) rather than wire. We prefer the latter wherever possible.

Viewer : Browser for 3d worlds. There are many different ones. Some more stable and less “buggy” than others. Some of the popular OpenSim compatible viewers are available here: http://www.osgrid.org/index.php/downloads

OSI model : The OSI model (open systems interconnection) is a reference model for how applications can communicate over a network. (It for instance explains how linux and windows can talk to each other). This is not something you need to know by heart to run an OpenSimulator server, but it helps you understand how the internet “works”, and knowing it by heart is helpful in identifying where technical problems exist.

https://www.youtube.com/watch?v=HEEnLZV2wGI OSI Demystified

https://www.youtube.com/watch?v=PBWhzz_Gn10 Networking general.