Adding new land

step2.jpg

This will be used as a general overview of what we know about adding new land. Please feel free to edit this page as you learn new things about adding land so we all can learn together.


Step 1: In World Editor


Click on view and Zone. This will bring up the following screen:


Set your tile options and select the tile you want to add. Click on the screen and paint your terrain layout. Once you are happy with your terrain save your terrain.

My new Newbie Island is as follows:


Edit


Step 2: Recreating the PAC collisions for the zone

run BuildGamedata pipeline


4/2/2018 - 

--Adding this from the old dev.ryzom.com website-- 

Creating new land ( WIP )

This document will show you how to build a very minimalistic continent using materials that come with Ryzom Core.

Assumptions

  • You have downloaded and set up the Ryzom asset repository, and mounted it to W:\
  • You have checked out the RyzomCore source code, and mounted it to R:\
  • You have mounted R:\code\ryzom\common\data_leveldesign as L:\
  • You have downloaded the newbieland assets and merged them into the Ryzom asset repository
  • You have copied the leveldesign tools package's contents to R:\code\ryzom\tools\leveldesign\install
  • You have processed the Ryzom asset repository, with the Python scripts in R:\code\nel\tools\build_gamedata

I. Create the landscape using the world editor

1. Setup

a.) Decide what you will call your new land, I called my first one "developerland".
b.) Create a new subdirectory in R:\code\ryzom\tools\leveldesign\install\continents with the same name as your land, so for me this is "developerland".
c.) Copy all the contents, except the "pacs" directory and the "newbieland.land" file, from the "newbieland" subdirectory to the directory you've just created.
d.) Open L:\leveldesign\world_editor_files\world_editor_classes.xml with text-editor. Found the section starting with <!-- **************************** LOCATIONS **************************** --> and add after <PARAMETER NAME="id" TYPE="const_string" VISIBLE="true">: 

<COMBO_VALUES CONTEXT_NAME="default">
<CONTEXT_VALUE VALUE="developerland"/>
</COMBO_VALUES>


Save the file
e.) Start up the world editor from R:\code\ryzom\tools\leveldesign\install
f.) Click Project->New Landscape
g.) Click File->Save
h.) Navigate to R:\code\ryzom\tools\leveldesign\install\world_editor_continents and type in the name of your land as filename ( in my case again this is "developerland" ), and hit enter
i.) Navigate to R:\code\ryzom\tools\leveldesign\install\continents\, enter the directory that bears the name of your land, and again type in the name of your land ( in my case "developerland" ), and hit enter.
j.) Click Project->Settings, and set the directory created in b.) as the data directory
k.) Set the "context" to "default" 
l.) Click OK and wait until the world editor loads the data found in there.
m.) Save the project again


2. "Painting"

a.) Click View->Zone
b.) Select "passable" and "no" as the first filter category, this will show you all available LIGO bricks (in the newbieland set, since it has no passable bricks ).

c.) Click Edit->Goto Position, set 0,0 and hit Goto. This will set the screen's center as 0,0 1_AA, lay a "crevasse_1" brick there to mark it.
d.) Bring that brick to the upper left corner using the middle mouse button. This will make your screen show only valid areas.
e.) Paint your land using the bricks mentioned before!
f.) Save the project

3. Finally

a.) Copy your .land file from R:\code\ryzom\tools\leveldesign\install\continents\ to W:\Database\Landscape\ligo\jungle\
b.) Click File->Export snapshot, then click OK. This will be the ingame map, we will work with this a bit later.

II. Create sheets using Georges editor

1. Setup

a.) Go to L:\leveldesign\World
b.) Create a new subdirectory, with the same name as your land ( "developerland" in my case ).
c.) Copy the files from L:\leveldesign\World\newbieland to this new subdirectory
d.) Rename newbieland.continent to <yourland>.continent where <yourland> is the name of your land ( "developerland" in my case ).
e.) Open up continent.cfg with an editor
f.) Change the "LandFile" setting to the .land file's path you copied in 3.a

2. Edit the Ryzom world sheets

a.) Open L:\leveldesign\World\Ryzom.world with Georges
b.) Right click on the last entry in the "continents list" and click "insert".

c.) Rename the created new entry to the name of your land ( "developerland" in my case )
d.) Switch back to the world editor window
e.) Move your mouse pointer first to the upper left and then the lower right corners of your land ( red dots on the picture ).
f.) Write down the data highlighted on the picture with blue outline. One of them is a zone identifier ( 1_AA ), the other is the x,y coordinate pair ( 0,0 ).

g.) Go back to the Georges editor with your land's sheet open.
h.) Fill in the "selection name" and "continent name" fields with the name of your land ( "developerland" in my case ).

i.) Fill in the minx,maxx,miny,maxy fields using the data you wrote down in f.)
j.) Find the "maps list" section, and add a new entry using the same procedure as before ( click and insert ).
k.) Rename the new sheet to your land's name but with a "cont_" prefix. ( "cont_developerland" in my case )
l.) Fill in the same minx,maxx, etc data you filled into the previous sheet.
m.) Fill in the name of the sheet into the "name" field, fill in the name of your land into the "contname" field.
n.) Fill in the "bitmap" field, in the format of "<landname>_Map.tga" where <landname> is the name of your land. ( "developerland" in my case )

o.) Save your work with Georges

3.Edit the land sheets

a.) Go to the subdirectory you created in II.1.b
b.) Open the .continent file there with Georges. This file is basically the sheet of Newbieland so we will have to customize it to our needs!

c.) Change the "Name", "PacsRBank", "PacsGR", "LandscapeIG", "WorldMap" fields. Change the word "Newbieland" to your land's name in the fields.
d.) Change the ZoneMin, and ZoneMax fields to reflect the data you wrote down in II.2.f. ( ZoneMin is 1_AA, ZoneMAx is 17_BK in my case ).
e.) Find the "villages" section in the list and then delete all of them except "start_village_newbieland" one.

f.) Delete the iglist of "start_village_newbieland". ( Remember this is a simplistic land, no buildings and such ). We will return to here later.
g.) Find the "ZCs" section and delete all ZCs.
h.) Find the "Landmarks" section and delete all of them.
i.) Save your changes.

III. Creating the region primitives

1. Setup

a.) go to L:\primitives, and create a sub-directory, with the same name as your land ( "developerland" in my case ).
b.) go back to the world editor
c.) Click project->new primitive
d.) Save the project, when asked navigate to L:\primitives\<nameofyourland>, where <nameofyourland> is the name of your land. ( "developerland" in my case ).
e.) Type in "region_<nameofyourland>", and hit enter.
f.) Go to L:\primitives, and open the file "file_index.cfg" with an editor.
g.) Add your primitive file's name to the end of that list there, using the same convention you see there. Don't forget that the numbers there need to be unique. In my case I added: "region_developerland.primitive", "768",
h.) Open "primitives.cfg" with an editor.
i.) Now you again need to add your primitive file with the same conventions you see there. In my case I added this text after the "MAPEND",

    /////////////////////////
    // DEVELOPER LAND
    /////////////////////////
    "CONTINENT developerland",
    "MAP developerland",
        "MAP developerland_all",
            "FILE region_developerland.primitive",
        "MAPEND",
    "MAPEND",

2. Creating the region, starting point, etc

a.) Right click on the primitive, and click "Add continent".
b.) Right click on the continent, click properties, fill in name of your land to the name field, in id select the name of your continent in the list (the name is the name we have add in 1-d), and in the sheet the name too.

c.) Select your land from the "sheet" drop-down menu.
d.) Right click on the continent again ( this time it has the same title as your land now ), and click "Add place".
e.) Right click on the place, click properties, and change the name field to "starting_place".
f.) Right click on the place, and click "Add teleport_spawn_zone".
g.) Right click on the teleport spawn zone, and hit properties, then change the name to "player_spawn_point".
h.) Click on the spawn zone/point again, you will notice a filled grey rectangle "light up" in the 10_AQ zone, right click on it and select "move".

i.) Click on the rectangle and move it to wherever you'd like in the map. I moved it to 14_BH.
j.) Click on the place created in d,e, hit space to enter "edit points" mode, then hit f11 to enter add points mode.
k.) Add some points around the rectangle you moved to create a "zone". Points must be draw in counterclockwise. When you are done, hit f5 to return to "select" mode.

l.) Right click on "start villages" and click "Add start_village". Right click on the new village, and rename it to whatever you'd like, I named mine "developerland_start_village".
m.) Right click on the village and click "Add start_point".
n.) Right click on the start point and hit "properties". Rename it to whatever you'd like, I named mine "developerland_start_point".
o.) Fill in the "spawn zone" field with the name of the spawn zone you created in f,g,h.
p.) Now click on the continent, and enter point editing mode again, then add some points around your continent. Points must be draw in counterclockwise

q.) Save your work!

3. Adding the primitive information to the Georges sheet(s)

a.) Go back to your continent's Georges sheet. ( L:\leveldesign\World\developerland\developerland.continent in my case ).
b.) Find the village we left in the villages list ( it says "start_village_newbieland" ).
c.) Rename it to match the starting village you added in the world editor. ( In my case "developerland_start_village" ).
d.) Edit the "zone" field to match the zone you placed that village ( the place where starting_place and player_spawn_point is, in my case it's 14_BH ).
e.) Save the sheet!

You should now progress to Building land created with the world editor using the build pipeline ( WIP )

Note:

To fix AIS server you must edit ai_service_default.cfg with the following comments

StartCommandsWhenMirrorReadyNewbieland =
{
//"loadContinent newbieland",
//"createStaticAIInstance newbieland",
//"loadMapsFromCommon newbieland_all",
};