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:
- 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
- It makes it possible for the server to control what the client can do, preventing cheating
- It allows developers to make updates to the server that require no download on the client-side
However this also has some downsides:
- Requires a server to run
- Difficult to create a single player game with
- Requires building of a client and a server binary
- 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
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.