Skip to content

Player Isolation / Dimensions #408

Description

@Futuza

Player Isolation System

Purpose: for isolating players from other players (instancing).

Explanation

Right now only a very rough outline exists, that while technically compiling does not actually do much. The idea is that lua scripts, the game engine, or admins (through lua commands) can isolate players from other players on the server for various different reasons. Many things like this have been accomplished before with JKA (JA+ alt dimension, Daggo's server etc). We will probably use it primarily for duels, quest instancing and shadow banning.

The system will use a set of bit values to determine what aspects should be isolated. Here's what we'll probably have:

  • 0 = damage, whether or not the two players can harm one another
  • 1 = collision, whether players can be affected by each other's hitboxes/physic collisions/knockback etc
  • 2 = challenge interactions, whether players can send things like trade requests, party invites, duels. Discussion: do we need to separate each one or can we get away with all/nothing?
  • 3 = visual, whether the players can see each other visually. Discussion: Is all or nothing sufficient, or do we need more states such as a ghostly transparent version of players in other dimensions)?
  • 4 = audio, whether the players can hear each other (footsteps, pain etc),
  • 5 = chat(local chat), whether players can see the other players chat

Are there other situations we should be thinking about? These will probably also apply to all entities, not just players.

The idea is that all of these can be controlled/toggled simultaneously. (This could result in some odd combinations if not used with caution, such as being able to damage people, but not visually see them). By default all players would exist in a primary dimension (0), but when isolated could be sent to an alternate dimension with other players/npcs (such as when a quest instances a party together to an alternate location). For example, a party could be sent to dimension (2) where they only perceive people in that dimension. However, you can individually address each aspect if you wanted to, such as still allowing them to chat with dimension 0.

Common usages: quest isolation, duels, shadow banning someone annoying to a server where they can see everyone but can't interact and no one can interact with them.

What am I forgetting not accounting for? Too complicated? Is there an easier way to do this?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussionRequires discussion among developers.enhancement/featureImprove or expand on the game.

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions