Hacking OpenSim for fun and profit

From OpenSimulator

Jump to: navigation, search


So, you're a freshly arrived coder who wants to hack (in the programming sense, of course) OpenSimulator for fun and/or profit? Well, you've come to the right place! Welcome to the OpenSimulator hacking guide, an evolving (possibly) document that aims to tell you the basic things you need to know about OpenSimulator to start changing/extending/adapting the code. This document is aimed at programmers who are already comfortable with c# and standard tools such as command lines and source code repositories. If you don't know about these, please go and learn that stuff first.

We're going to aim to (eventually) cover three types of topics. The first type is basic infrastructure setup stuff - what programming environments are available, how to get the code, etc. The second is an overview of the OpenSimulator code base - how the top level packages are segregated, where certain functionality is, etc. The third is general code contribution stuff, such as programming standards and the patch submittal procedure.

Please be aware that OpenSimulator is a young, vigorous, healthy codebase. It's growing fast and likes to run around a lot. So what we document here may well be out of date almost immediately after its written. Moreover, this guide itself is very young and may be missing big bits of useful information. But hey, nobody's perfect. Please feel free to ask on the mailing lists for additional material, particularly general overview stuff (the worst that can happen is that your request is completely ignored - and there's always a chance that it won't be). And in the best wiki tradition, please please please feel free to fill in the blanks if you're able, either with new writing or with pages already elsewhere on this wiki. Okay, let's get started.

The basics

Choose 32 bit operating system to avoid hassle with the native libraries when trying to run OpenSimulator for the first time.

Codebase overview

Code hygiene and code submittal

Personal tools
About This Wiki