bw logo

BigWorld Documentation Roadmap

This document outlines a roadmap to the other documents found in this directory. If you are new to BigWorld Technology, it should guide you in learning about and becoming proficient with its concepts, installation, customisation, use and operation.

Note: depending on the BigWorld Technology license you have purchased, not all files mentioned below may have been included.

Table of Contents


Recommended Reading Order

Overview
Getting Started [HTML] [PDF]
BigWorld Tutorial [HTML] [PDF]
Server Overview [HTML] [PDF]

 

Server

Operations
(High Level)

Installation
Server Installation Guide [HTML][PDF]


Operation
Server Operations Guide [HTML] [PDF]
Release Planning [HTML] [PDF]

Scripting
(Medium Level)

Manual
Server Programming Guide [HTML] [PDF]


Reference
File Grammar Guide [HTML] [PDF]
Server Web Integration Guide [HTML] [PDF]
Python API Reference Guides:

BaseApp

[CHM] [TGZ-compressed HTML]

CellApp

[CHM] [TGZ-compressed HTML]

Client

[CHM] [TGZ-compressed HTML]

Extensions
(Low Level)

Manual
Server Programming Guide [HTML] [PDF]


Reference
File Grammar Guide [HTML] [PDF]
C++ API Reference Guides:

BaseApp

[CHM] [TGZ-compressed HTML]

BaseAppMgr

[CHM] [TGZ-compressed HTML]

CellApp

[CHM] [TGZ-compressed HTML]

Client

[CHM] [TGZ-compressed HTML]

DBMgr

[CHM] [TGZ-compressed HTML]

LoginApp

[CHM] [TGZ-compressed HTML]

Reviver

[CHM] [TGZ-compressed HTML]

Client

Programming Overview
Client Programming Guide [HTML] [PDF]


Programming Reference
Python Client API Reference Guide [CHM] [TGZ-compressed HTML]
C++ Client API Reference Guide [CHM] [TGZ-compressed HTML]

Tools

User Manual
Content Creation Manual [CHM]


Reference
Content Tools Reference Guide [HTML] [PDF]

Third Party Integrations

Intergration Manual
Third Party Integrations [HTML] [PDF]


For Server Operators:

The recommended reading is:

  • Server Overview [HTML] [PDF]

  • Server Operations Guide [HTML] [PDF]

  • Server Web Integration Guide [HTML] [PDF]

  • Server Installation Guide [HTML][PDF]

  • Release Planning [HTML] [PDF]

For Game Code Scripters (AI, object behaviour, combat systems, etc...):

The recommended reading is:

  • BigWorld Tutorial [HTML] [PDF]

  • Server Overview [HTML] [PDF]

  • Server Operations Guide [HTML] [PDF]

  • Server Programming Guide [HTML] [PDF]

  • Server Web Integration Guide [HTML] [PDF]

  • File Grammar Guide [HTML] [PDF]

  • Python API Reference Guides

    • BaseApp [CHM] [TGZ-compressed HTML]

    • CellApp [CHM] [TGZ-compressed HTML]

    • Client [CHM] [TGZ-compressed HTML]

  • Release Planning [HTML] [PDF]

For Low-Level Server Programmers (server extensions):

The recommended reading is:

  • BigWorld Tutorial [HTML] [PDF]

  • Server Overview [HTML] [PDF]

  • Server Operations Guide [HTML] [PDF]

  • Server Programming Guide [HTML] [PDF]

  • Server Web Integration Guide [HTML] [PDF]

  • File Grammar Guide [HTML] [PDF]

  • Python API Reference Guides

    • BaseApp [CHM] [TGZ-compressed HTML]

    • CellApp [CHM] [TGZ-compressed HTML]

    • Client [CHM] [TGZ-compressed HTML]

  • C++ API Reference Guides

    • BaseApp [CHM] [TGZ-compressed HTML]

    • BaseAppMgr [CHM] [TGZ-compressed HTML]

    • CellApp [CHM] [TGZ-compressed HTML]

    • Client [CHM] [TGZ-compressed HTML]

    • DBMgr [CHM] [TGZ-compressed HTML]

    • LoginApp [CHM] [TGZ-compressed HTML]

    • Reviver [CHM] [TGZ-compressed HTML]

  • Release Planning [HTML] [PDF]

Note that a full massively multiplayer game may be produced using BigWorld Technology solely at the scripting level, so these documents need not be read.


For Tools Programmers:

The recommended reading is:

  • Client Programming Guide [HTML] [PDF]

  • Content Tools Reference Guide [HTML] [PDF]

For Tools Users (artists/level builders):

The recommended reading is:

  • Content Tools Reference Guide [HTML] [PDF]

  • Content Creation Manual [CHM]

Release Notes

Changes in BigWorld Technology are described per-version in the following documents: described in the corresponding

  • Client Release Notes [HTML]

  • Server Release Notes [HTML]

  • Tools Release Notes [HTML]

These notes are quite detailed, and it is recommended that you read them for each new release of BigWorld you receive.

Licensing Information

The following document contains important information about third party libraries included in the BigWorld Technology and the licensing requirements of these libraries. [HTML]

The directory bigworld/doc/logos contains the logos as required by licensing requirements. [black logo] [white logo]

Small Feature Documents

Some releases may contain ancillary documents that break out a description of some particular feature in BigWorld, usually one that has only appeared in the latest version – for example, they may include instructions on how to migrate from an older format to a new format.

The titles of such documents will make clear their purpose and intended audience. In future releases their content is likely to be integrated into the main Manual documents.

Full List of Documentation

BigWorld Technology Directory Structure

The root directory is called mf by default. It can be renamed, as long as the appropriate environment variables are updated to reflect the change. Under the root directory, we have the following files/folders:

  • bigworld – Source for all bigworld client and server applications, and executables for tools.

    • bin – Server-side binaries.

      • Hybrid64 – 64-bit binaries.

        • commands – helper commands.

    • doc – Documentation.

    • res – Shared resources used by tools and game application.

    • src – Client and server source (Not available for Indie customers).

      • build – Files used to build the source code on Linux systems.

      • client – Source for the bwclient library and Visual Studio solution file to build the game executable.

      • common – Miscellaneous source code common to client and server.

      • examples – Source for all BigWorld example programs.

        • cellapp_extension – CellApp extension example source code, containing an example Controller and EntityExtra extension.

        • client_integration – Client integration example source code.

          • c_plus_plus – Client integration example source code.

            • ios – iOS client integration example source code.

            • sdl – SDL client integration example source code.

          • python – Client integration example source code.

            • simple – Simple Python-based client integration example source code.

      • lib – Source for all BigWorld libraries.

        • appmgr – Application manager library used only by the tools.

        • ashes – Graphical user interface library, used by client and tools.

        • camera – Library for various camera types, used by the client and tools.

        • chunk – Library that manages world chunks, used on client, tools, and server.

        • connection – Library that is used for low-level client-server communication management.

        • connection_model – Library that is used for high-level client-server communication management.

        • controls – Library that manages panel buttons and sliders, used by tools.

        • cstdmf – General purpose classes and functions used by everything.

        • dbmgr_lib – Common DBMgr library used to integrate specific database implementations and DBMgr.

        • dbmgr_mysql – MySQL implementation for DBMgr.

        • dbmgr_xml – XML implementation for DBMgr.

        • duplo – Connectable model pieces for the client, such as action_queue, motor, and attachments.

        • entitydef – Classes to manage entity definitions, methods and properties (server and client).

        • fmod – Interface to FMOD sound library.

        • fmodsound – The FMOD sound library.

        • gizmo – Library of graphic gizmos for manipulating objects in the tools.

        • guimanager – Library that manages GUI components and toolbars, used in tools.

        • guitabs – Library that manages GUI panels, used in tools.

        • input – Library for user input from mouse, keyboard and joystick.

        • job_system – Multi-threaded job system library for the Client.

        • math – A maths library, used by everything.

        • model – The model library, used by client and tools.

        • moo – The rendering library, used by client and tools.

        • network – The network library, used by everything.

        • particle – The particle systems library, used by client and tools.

        • physics2 – Library for sorting, colliding, and manipulating objects in 3D space (client and server).

        • post_processing – The client post processing effects library.

        • pyscript – Library for integration of Python into the engine's C++ classes, used by everything.

        • python – The Python library, used by everything.

        • png – The PNG image format library, used by the tools and client.

        • resmgr – The resource manager, used by everything for loading resources.

        • romp – Miscellaneous classes for managing various types of effects on the client.

        • server – Common server classes.

        • speedtree – Interface to the SpeedTreeRT library.

        • speedtreert – The SpeedTreeRT library.

        • sqlite – Wrapper library to interface with the third-party SQLite database.

        • terrain – The terrain library, use by everything.

        • third_party – Third-party libraries such as CppUnitLite2, OpenSSL and Stack Walker.

        • ual – The Asset Browser library, used by the tools.

        • umbra – The UMBRA library.

        • unit_test_lib – The Unit Test library.

        • waypoint – Server library for AI waypoint navigation.

        • web_render – Client library used for integrating the Mozilla Gecko rendering engine.

        • zip – The zlib compression library.

      • server – Server application source.

        • baseapp – Process that manages a group of base entities (incl. client proxies)

        • baseappmgr – Process that manages a group of BaseApps.

        • cellapp – Process that manages a group of cell entities.

        • cellappmgr – Process that manages a group of CellApps.

        • dbmgr – Database process.

        • loginapp – Login process.

        • reviver – Process that monitors and revives other processes.

        • tools – Source to various server tools.

    • tools – Executables for the BigWorld content creation and server tools.

      • server – Server tools.

        • bin – Executables for the server tools.

        • cluster_commands – Python scripts used to implement the functionality of Control Cluster.

        • message_logger – Scripts used to support interacting with the logs generated by Message Logger.

        • misc – General operation scripts used by server software.

        • pycommon – Python module used by most server tools to communicate with a BigWorld server and processes.

        • rpm – Scripts and spec files used to generate RPMs for the server components.

        • snapshot – Script to perform LVM snapshots of the DBMgr database and consolidate the secondary databases.

        • space_viewer – A tool for viewing and managing servers, spaces and cells.

        • stat_logger – A tool for logging server cluster performance data to MySQL.

        • web_console – Suite of web-based server tools.

      • exporter – Visual and animation exporters.

      • misc – Miscellaneous client-side tools, including NavGen.

      • modeleditor – ModelEditor, the model-editing tool.

      • particle_editor – ParticleEditor, the particle system-editing tool.

      • res – Resources for the tools.

      • worldeditor – WorldEditor, the world-builder tool.

  • fantasydemo – All fantasydemo resources (script, config, graphics) and the client runtime.

    • res – Resources for the fantasydemo.

      • audio – FMOD sound banks.

      • characters – Visuals and animations for avatars and NPC's.

      • environments – Flora and sky definition files.

      • flora – Flora models and textures.

      • gui – Graphical user interface definition files.

      • maps – Textures for the game models, and user interface.

      • materials – Definitions for types of materials.

      • objects – Objects you can place in the maps such as models, shells, lights, water, etc.

        • lights – Light definition files.

      • particles – Particle definition files.

      • scaleform – Demonstration data files used by the Scaleform integration.

      • scripts – Entity definition, entity Python scripts, script data.

      • server – Server-side information.

      • sets – Assorted models, animations and textures used by FantasyDemo.

      • sfx – Particle system effects.

      • spaces – Each sub-directory is the name of a space.

      • speedtree – Models and textures of SpeedTree flora.