Summary

Summary

Introduction

Introduction

Veloren is a multiplayer voxel RPG written in Rust. Veloren takes inspiration from games such as Cube World, Minecraft and Dwarf Fortress.

This book explains design plans for Veloren and the reasoning behind them. It is intended to be a reference for anyone looking to learn what's in development

Disclaimer: This document will contain spoilers for aspects of the game that are intended to be discovered during gameplay. Do not read this if you don't want to ruin some of the mystery of the game.

Basics

Domains

Veloren's gameplay is very diverse. While some players just want to explore, others want to fight bosses, role-play or start a town. Every core kind of gameplay is called a domain. A player has a level for each domain. At the beginning, a player is at level 1 in all domains.

The time a player spends in a level should be around sqrt(level)*30 - 15 Minutes. This value is also proportional to the mechanical power the player has in this level.

Domains and their content:

  • Combat

    • Kill enemies
    • Finish dungeons
    • Claim spawn points and territory
  • Exploration

    • Move through the world
    • Find and collect resources
  • Construction

    • Craft items
    • Build constructions in territory
    • Cook food
  • Social

    • Interact peacefully
    • Roleplay
  • Sorcery

    • Brew potions
    • Cast spells
    • Manipulate characters

When leveling up, the player gets one skill-point of the type of gameplay you were doing. Every domain has it's own upgrade tree and has to be leveled up with skill-points of the same domain. Upgrades in the skill tree cost different amounts of skill points based on how powerful they are.

The upgrades will be laid out so that the player gains a new strong upgrade every 5 levels in the early game and every 10 levels later, so the player always has something to look forward to.

This encourages players to explore different domains and gameplay styles.

Combat Summary

Our target audience consists of people who like:

  • Meaningful grinding as the main way to progress.
  • Gameplay among these dimensions:
    • normal, buffing, debuffing
    • melee, ranged
    • healing, damaging
    • damage over time, burst
    • single target, area of effect
    • fragile, tank

Combat should be:

  • Fast: Around 0.67 - 1.5 moves per second most of the time
  • Simple: The player should rarely have to think too deeply or too much on-the-fly (e.g. rock-paper-scissors = simple, speed chess = complex)
  • Flexible: The player should have many ways to achieve something, no one way is strictly better than another
  • Contextual: The player should want to use their skills differently in different contexts (environments, opponent types, given equipment, etc.)
  • Committive: Abilities and attacks should have windows of vulnerability and strength, animation canceling is not allowed to preserve this
  • Active: Enemies force the player to dodge, roll, use their environment and use attacks that will move entities to keep combat dynamic and engaging

Combat Progression

To explain the essential gameplay concepts to the player, combat-level 1-5 are the tutorial phase. The player can make passive upgrades, but he can't specialize yet. While they are in this phase, NPCs and PCs will give the new player quests that each explain a few concepts. Examples of these are:

  • Bring a bucket full of water from the river. (Movement, Interaction)

  • Slaughter a helpless pig with a weapon they can choose. (Combat, Inventory)

  • Craft food / repair a chair (Crafting)

  • Talk to NPCs to find out more about the world and choose a faction (Conversation, Religion)

  • Fight against a real threat (Combat)

From combat level 5 to 50 the player will learn new active skills that give combat more variety, but there are still many enemies too strong for the player (the player should retreat). They can also ask NPCs for dungeons near them that have a fitting difficulty. At level 50 the player will be able to kill enemies 10x as strong as a level 5 player could and they have access to a wide variety of active skills that make combat more fun and less repetitive.

After level 50, new active skills get rarer and the player is encouraged to look for difficult enemies and dungeons because of quests they get from NPCs or PCs. Strong enemies will have different attacks or stages and need more attention and player skill to avoid. The player will not get more powerful mechanically, but he will learn how to use the active skills he has in the best way and order.

Combat Upgrades

There are active and passive upgrades the player can choose.

Passive upgrades give advantages based on triggers not available to the player. They are the most common kind of upgrade and give constant or situational bonuses.

Examples:

  • When you take fall damage, you speed up for 5 seconds
  • When an enemy notices you, you gain 10 HP
  • You gain 2 HP per second

Active upgrades are triggered by the player. Most active upgrades are specific to one or two weapon types.

Examples:

  • You rush into the nearest enemy
  • You spawn 3 ghosts that look like you and run around, but don't deal any damage
  • Your hammer smashes the ground causing grounded enemies nearby to stagger

Weapons are one of three kinds: Rage, Focus or Mana. Each of these kinds requires a different way to collect. These resources can be used to activate active skills.

  • Mana is used by magical weapons. It has a relatively high maximum value but a very low regeneration rate.
  • Rage is used by strength based weapons. It starts at zero but will increase with every hit the player deals or takes.
  • Focus is used by dexterity based weapons. It has a relatively low maximum value but a very high in-fight regeneration.

Weapons

There are many weapons to choose from in Veloren. Each weapon offers a different playstyle and game feel so players can select the one they like most. Because most active skills are specific to certain weapon types, it is encouraged to stick with one weapon type in the early game. Players can still switch to any weapon they have with them at any point, but are vulnerable while equipping.

Weapon types and their basic attacks (which can be activated with the left mouse button LMB, RMB or holding a button):

  • Sword: Slash (click LMB), Stab (hold LMB), Parry/Block (RMB)

  • Polesword: Thrust (click LMB), Slices (hold LMB), Parry/Block (RMB)

  • Axe: Chop (LMB), Swings (hold LMB), Parry/Block (RMB)

  • Poleaxe: Thrust (click LMB), Swing (hold LMB), Block/Parry (RMB)

  • Hammer: Smash (click LMB), Swings (hold LMB), Parry (RMB)

  • Polehooks: Thrust (click LMB), Hook (hold LMB), Block/Parry (RMB)

  • Daggers: Stab (LMB), Throw (hold RMB)

  • Bow: Shoot (hold LMB)

  • Spear: Thrust (LMB), Parry/Block (RMB)

  • Staff: Hit (LMB), Magic (RMB)

  • Shield: Parry (click RMB) Defend (hold RMB), Ram (hold RMB while running)

The middle mouse button MMB will initiate a roll or a side-hop based on the weight of the weapon. Note: After throwing a weapon, the next weapon in the inventory is automatically equipped.

Defense

There are three ways to avoid damage in Veloren:

  • Block: Hold the shield or weapon in a way that makes enemy attacks hit it instead of the player. Damage is reduced.

  • Roll/Hop: Move quickly to get out of danger.

  • Parry: Deflect an attack and make the enemy vulnerable. Very difficult to time correctly.

Enemies

Enemies are the key to getting the player to engage and immerse themselves in the game. In a perfect scenario, a player or a group of players are fully focused on the combat and try to maximize profits.

Of course some players just want to kill a few weaker NPCs and focus on something else like a podcast at the same time, so this playstyle should be possible and rewarding as well.

  • Pigs: Roll and run around when damaged

  • Cats: Bite causing bleeding, then keep distance

  • Horses: Hit once, then run away

  • Cows: Ram into target causing knockback

  • Wolfs: Keep distance and circle around target

  • Archer (Bow): Keeps a clear sightline and shoots

  • Fighter (Sword): Try to hit but can parry and dodge

  • Barbarian (Axe): Rams into target causing knockback, slow but powerful attacks

  • Wizard (Staff): Shoots slow, magic, homing projectiles or puts a spell on an ally or chooses 3 x 3 blocks which start burning

Example

Team 1:

  • a: Orc, Axe, 75 HP
  • b: Human, Sword, 50 HP

a stands in front of b.

Team 2:

  • X: Giant spider, 100 HP
  • Y: Danari, Bow, 30 HP
  • Z: Human, Staff, 20 HP

Y and Z stand behind X.

EventabXYZ
175 HP Starts special move RAM to run into X50 HP Moves forward in blocking position100 HP Lays 3 eggs30 HP Prepares bow and arrow20 HP Backs off and prepares THUNDERSTRIKE
2Deals 20 damage to X and throws X into Y causing 5 damage to YRuns at Y100 HP Bites a causing 12 damage30 HP Shoots arrow at a causing 13 damage20 HP ...
350 HP Hits X for 15 damage50 HP Hits Y for 8 damage80 HP Goes towards a and builds SPIDERWEB TRAP15 HP Equips dagger and rolls to avoid damage20 HP launch THUNDERSTRIKE on X causing 30 damage
450 HP Tries to get out of trap50 HP Fails to parry attack from Y35 HP Go to b and bites to deal 11 damage7 HP Attacks b with dagger and deals 10 damage20 HP Casts HP-REGEN on X to heal 5 HP per second
550 HP32 HP35 HP7 HP20 HP

Exploration

Exploration can be both fun and necessary. It is necessary because you want to get from point A to point B, but it can be fun when you learn new things or collect resources or practice some skills.

Exploration Progression

TODO write this:

Levels 1-5: - learn new movements one after another (rolling, climbing)

Levels 5-50: - collect resources that can be used for crafting or selling - maybe something with a similar effect as bunnyhopping to make movement fun but difficult,

Levels 50+: - Completionist gameplay like "collect all insects/flowers/..."

Construction

Players can build blocks and structures in their territory and nowhere else. Players can gain new territory by placing some kind of magical flag in unclaimed territory.

Players want to build houses, farms and castles, but they don't want unprivileged characters to mess with their buildings or build structures right next to them. Because a magical flag is needed to start new territory, players can't just walk somewhere place 3 blocks and leave. We expect players to realize these flags are rare and using one should be well planned. We also hope the magical flag will be useful as a strategical combat mechanic, because when the flag is captured, the territory will change owners.

There are a few reasons to claim territory. A simple reason is that a player is motivated to be creative and build something interesting. To extrinsically motivate players, territory can be used to defend special items, gather and craft some resources and to get a higher social status. Expanding and maintaining territory is a core part of Veloren and there's always something to do, like planning a new house, hiring new NPCs to build something, farming and crafting or defending against an incoming wave of enemies.

It's also possible to claim enemy territory. For that you need to own territory right next to enemy territory. Then you can expand your territory into the enemy territory. Because killing enemies gives you power, one faction can continue to expand into the enemy territory. There are some rules that determine if one territory can claim part of another. Territory that is nearer to a flag and was claimed recently needs much more power to claim. This means that the defending faction can't immediately reclaim lost territory.

Every player starts with a single magical flag, which is a block. When it is placed in unclaimed territory, the player claims the surroundings as his territory. This means he can place as many blocks and prepared structures in it as he wants to. When a player builds blocks near the edge of his territory and he has enough power, his influence will be expanded. Power is a resource representing territory usage. The more a player uses his territory, the higher his power over it will be. When a player builds a farm for example, his power for this territory will go up. Other things that can increase power are:

  • Creatures living there (NPCs, animals)

  • Big contiguous structures like walls

  • Item storage

  • Killing enemies near that territory

New players should buy materials and workers for their projects from the next city. They should try to make their territory profitable as soon as possible. This means they should build a farm that creates crops that can be exported without much processing. With the money earned this way they can continue to buy workers so they build the first house and maybe a fence around the territory. While the player waits for his farm they can explore the surroundings and kill NPCs that give valuable loot. When the territory gets big enough, some NPCs might want to live there with the player. This means they take part of the farm to feed themselves but help the settlement where they can. This can go on until enemies realize that the player owns food they can steal (this depends on the power). At some times in the night these enemies will try to attack the base to get what they want. When more valuable resources are exported, smarter enemies will attack as well.

Territory Progression

Social

Because multiplayer is a big focus of Veloren, there need to be many interesting mechanics for interactions between players.

Social Progression

Sorcery

While every playstyle of Veloren can have some amount of magic in them, the sorcery playstyle is hard to master and requires much player skill and dedication.

The player (not the character) has to remember runes, the order of spells and more.

Sorcery Progression

Implementation

ECS Components

Components are only synced when the content differs (hash) and the entities are near each other.

Synced from server to all clients:

  • Body: Description of the visual appearance
  • Scale: Custom scale of the body
  • Stats: Properties of a living creature (health, ...)
  • LightEmitter: Emits light
  • Projectile: Starts triggers on hit
  • Gravity: Custom gravity
  • Sticky: Stops moving when hitting something
  • MountState: Can be mounted
  • Mounting: Can mount something
  • Inventory: Content of inventories like players or chests

Only synced from client to server:

  • Controller: Inputs a character gives to the game

Calculated on both one client and the server, then send to all other clients

  • CharacterState: Movement and active actions
  • PhysicsState: Information about physics (on ground/wall, touching someone, in water)

Calculated by one client, passed to all other clients via the server (which validates it)

  • Pos: Position
  • Vel: Velocity
  • Ori: Orientation

Server-only components:

  • Agent: The brain of NPCs
  • Waypoint: A spawnpoint

Analyzing the map of Zelda: Breath of the Wild

Maybe you've heard of the 40 second rule of open world games. It says that there has to be something that catches the players attention every 40s on average. Luke Stephens did an excellent video on this, where he tries to find out how well the 40s rule applied in a variety of open world games. This article is meant to expand on the idea to find out how open world games manage coming up with so many interesting ideas.

Points that you want to go to

The first category of points consists of those which can be seen from far away and are interesting enough to make the player want to go there. They are important to get the player's attention and give them a goal, even if they scrap it later when they see something else. When players look for something to do and they can't find anything, they feel like the world is empty, so having big, obvious points of interest make sure the player knows what he could do.

My journey started here. I saw the long bridge in the distance and found a raft that allowed me to go in that direction. Bridge far away And here I saw a small house: Interesting trees and house

An alternative to interesting objects like the bridge, are unexpected things. In this picture I saw a sign on a wall: Wall sign

This idea of unexpected things also applies to nature, like with these unique types of trees: Fat trees Thin trees

But even small hints can determine the destination of players. While gliding above a forest in this picture, I noticed that many points were shimmering below me. After landing I found out that this was a forest full of apple trees. Shimmer below

Points that are interesting when you're near them

Because the world can't consist of big points of interest every 40s, there have to be smaller things the player can do. You'll notice that there are multiple kinds of them. Here's a list of what I found on my journey.

Puzzle

These POIs make the player think and try out ideas:

Stone Formations Bomb-able stones: Breakable Stones Treasure chest in ground: Treasure Chest There's a sword inside of the bones: Bones There's a stone under the leaves, with a Korok under it: Bush

Reward

These POIs give the player a reward for reaching a certain point or overcoming a challenge.

Eggs Beehive Ore

Exploration

These POIs just look interesting and you can rarely interact with them:

Pink sea Wagon in water Park Well Logs Frog under stone

I was surprised to see a frog under this stone. Not because I expected nothing, but because I was pretty sure there was a Korok under it. Stones in Zelda BOTW have an extremely high chance of containing something interesting under them. When you see a stone on it's own you can almost be sure that there's a Korok under it. This makes you excited when you see one of those stones and makes you pick up any stone you see. Here the game played with my expectations and used the motive of the stone to surprise me.

Paths

As a player it's very relaxing to just go with the flow of the game and always find more interesting things. While analyzing the game I noticed that almost all my routes where crafted in a certain way to lead me to other POIs. One example of this is this forest. Games like Minecraft have no structure in their forest, so you almost always just walk in a straight line through them. Zelda on the other hand makes sure that the straight path is almost always impossible and leads you other ways instead. This can make a small forest seem a lot bigger, because you spend more time traversing it. Here are a few pictures of that forest. Can you see the "recommended" path or paths? There was a shrine behind that bolder in the middle: