Creating Your Own Game Using Ryzom Core

Introduction

A common misconception is that the Ryzom Game and Ryzom Core are the same thing. This is not the case, Ryzom the game is ran by Winch Gate Property Limited who it's released over two million lines of its source code under the terms of the Free Software Foundation's GNU Affero General Public License (GNU AGPLv3) as Ryzom Core. With Ryzom now open source, developers can access the source of the end-user client, content creation tools, and server in order to make modifications, add enhancements, or even create their own games using the Ryzom core engine. This page will focus on how to create your own game using the Ryzom Core code. For more information check out the Ryzom Core Features page. Ryzom Core has specific terms it uses for some things, it is a good idea to familiarize yourself with it at Terminology. For more information check Ryzom Core Technology Overview.

The Server/Client Layout

Ryzom Core uses a server/client structure, the server is called a shard. The shard talks to the client via the network and allows for most data to be stored off the users machine, this has the following benefits:

  1. Storing recipes and stats only on the server allows for the game "rules" to be located only on the server making it significantly harder for people to know the game rules
  2. It makes it possible for the server to control what the client can do, preventing cheating
  3. It allows developers to make updates to the server that require no download on the client-side

However this also has some downsides:

  1. Requires a server to run
  2. Difficult to create a single player game with
  3. Requires building of a client and a server binary
  4. Requires a database server (MySQL) to store the server information

The Tools

Building your own Game using Ryzom Core

Compiling the client and server

The first step to creating your own game using Ryzom core is to build the client and server binaries. It is highly recommended that your initial build uses the Ryzom art without changes to source code for an initial development test bed.

Currently Ryzom Core is developed for Linux, Windows, and OSX. Each operating system has its own specific requirements, see the below articles for tutorials on building the client and server on each different operating system.

If you want to support all 3 operating systems you must build the client for Windows, Linux, and OSX. However you only need to build the server once on the server operating system.

Build Source on Windows
Build Source on Linux
Build Source on Mac

Building the Game Data

The game data (art, characters, items, etc) are generated by the build pipeline, this is a set of scripts that you setup. It typically takes 30+ hours to build all the art as there are many things it has to do to get all the art ready for use in the game. Take a look at the guide How to set up the Build Pipeline for information on setting up the pipeline. For information on the layout of the database check out the Database Structure

Setting up a Patch Server

Ryzom Core includes an auto patching service for the client by pulling down delta's of files minimizing download size. This service currently works on windows while Linux/OSX development is currently underway.

To deploy the patch server follow the guide Patch Generation, to use the patch server will require a server running an HTTP webserver.

Setting up the Web Services

By default the Create Account button will not work. One option is to use the Ryzom Core Drupal Module this will configure your drupal installation to use http://url/register as your CreateAccountURL.

Running the Server

Information on the web administrative interface is available at the Admin Guide. For in-game commands see Server Commands.

The Server has a number of services that it runs, for information on what each one does check Service Architecture.

Configuring the Client to use your Servers

PatchWanted = 0;
SignUpURL = "";
StartupHost = "shard1.tempestintheaether.org:40916";
StartupPage = "/login/r2_login.php";
InstallStatsUrl = "http://open.ryzom.com:50000/stats/stats.php";
PatchServer = "http://patch.tempestintheaether.org/";
CreateAccountURL = "http://shard1.tempestintheaether.org:40916/login/register.php";
InstallWebPage = "";
ConditionsTermsURL    = "http://www.tempestintheaether.org/index.php/licence";
EditAccountURL        = "http://shard1.tempestintheaether.org:40916/login/edit.html";
BetaAccountURL        = "http://www.ryzom.com/profile";
ForgetPwdURL        = "http://shard1.tempestintheaether.org:40916/login/reset.html";
LoginSupportURL        = "http://www.tempestintheaether.org/index.php/taforum";
RingReleaseNotePath        = "http://patch.tempestintheaether.org/index.php";

Running the Client

The windows client is created ready to use in the 7_client_install step of the pipeline, simply take the folder and zip it up for distribution. For other operating systems follow there appropriate build pages and replace the data with the data from client_install folder excluding all the .dll and .exe files.

Modifying the "Words" Displayed in the Client

Ryzom Core has a localization system that uses language files to display different messages depending on the currently selected language of the client, to modify the text in game you need to edit these files, check out Localization system in Ryzom

Running the World Editor

Running the world editor is pretty easy, check out Running the World Editor.

Setting up 3DS MAX

Currently 3DS MAX is required for creating and modifying 3d assets. If you are a student, mentor, or teacher you can get a free edition by visitinghttp://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=14185424 , be aware however there are legal restrictions on the Educational license.

After installing 3DS MAX you need to set it up to work with Ryzom Core by following Installing the Max Plugins.

You can get information on using the MAX Tools by reading Using Max Assets.

Creating you own Custom Land

Creating Terrain

Creating terrain requires 3ds max and the max plugins, it is created from a "quad patch" you can see a video tutorial of the method:

When adding textures to terrain you will need to keep in mind the Landscape Texture Constraints.

Setting a Spawn Point

Creating Sky

Creating your own Buildings

There are two ways of adding buildings to Ryzom Core: dynamic (aka botobject) and static.

 

Creating your own Trees and Bushes

Trees and Bushes are added and documented in the Vegtable Sets Information page.

Getting your Land into the Game

To get the terrain buildings etc into the game follow Adding new land to Ryzom Core

Also there is a video tutorial on the Landscape Editor.

Creating Outposts and Spires

Creating your own GUI

Making custom loading screens with progress indicator

Creating your own Characters

Creating your own character in Ryzom Core is done in 3ds Max, documentation on it is at Character Creation.

Edit character speed

/wiki/spaces/RC/pages/9404520

Adding NPC's

Check Adding Mobs for information on adding mobs to the game, this is the same procedure for attackable and non-attackable mobs.

For more information on making creatures, you can read Working with creature sheets

For information on using the chat_parameters for NPCs on the npc_bot object, look at the guide on Configuring NPC Chat Parameters

For information on configuring NPC group parameters, look at the guide on Configuring AI Group Parameters

Adding Items

You can add items by editing sheets, some info can be found in Working with sheets

Creating Missions

 

Adding Single Player Quests

Single player quests are added using the World Editor, follow Adding quests for more information.

Adding Guild Quests

To add guild quests which require the player to be part of a guild follow Adding Guild Missions.

Adding Camera Animations to Quests

All quests and missions can have camera animations, check Adding Camera Animations for information.

Adding Music and Sound

Adding Skills

Setting up Combat Sheets

Particle Effects

The Ryzom Core Particle System is created using the Particle System Editor.

Ingame Browser

The functionality of the Ingame browser decomposed.