ligo_bricks - ryzom/ryzomcore GitHub Wiki


title: Introduction to Ligo bricks description: published: true date: 2023-03-01T05:22:10.860Z tags: editor: markdown dateCreated: 2022-03-16T08:40:26.786Z

Although online games usually need large areas to accommodate a large number of concurrent players, the time to produce all this graphical data is limited. To speed up production, the landscape can be generated, but distinct areas still have to be different, allowing players to get their bearings, and their appearance has to be editable. The NeL Ligoscape (Ligo library) is a 3D block combination system. It allows to rapidly produce large areas for NeL 3D landscape.

Principle

The system is a 3D extension of traditional 2D isometric grid systems. In such systems, each 2D block is usually a square. The landscape designer paints a grid, using several sets of blocks (e.g. plain, plateau, swamp). Each square is assigned a random block from the chosen set. It implies the border of all blocks in a set must be compatible. When the designer chooses another set, the software select the proper join between the blocks of the two different sets from a set of transition blocks. To produce transition blocks, the simplest way is to create three basic blocks. The resulting landscape is however quite monotonous:

ligo1.png

Using nine basic transition blocks, positioning borders at either 1/3 or 2/3 of an edge, is a well-known improvement:

ligo2.png

Standard Block Design

In a block set, all the blocks must be geometrically compatible. The texture at the border of a block must continue at the joint border of its neighbour (the left picture below shows a wrong block border while the right one shows a correct border).

ligo3.png

To produce a textured block, respecting the block constraints, the designer works on a pattern, seeing ghost copies of his work on adjoining blocks.

ligo4.png

Transition Block Design

To join blocks of two distinct sets, we can't use standard blocks but must use transition blocks. The left picture below shows a wrong block border while the right one shows a correct border).

ligo5.png

The designer has to produce nine transitions blocks for two block sets. He works on a 3D pattern.

ligo6.png

The designer can assign each block some attributes, for example he can decide if a slope can be walked over or is a barrier. This helps generating the collisions.

Landscape Design, Using Preset Blocks

As 3D data is much more heavy and complex than 2D data, it's easier and faster to use a 2D world editor to "paint" with the blocks already designed. The designer can filter the applied blocks, selecting some attributes. For example, he may position a barrier using blocks tagged with the "barrier" attribute. To make landmarks, he can make a specialized copy of a specific block.

⚠️ **GitHub.com Fallback** ⚠️