Difference between revisions of "User:CyberShadow/Assorted ideas"

From Worms Knowledge Base

Jump to: navigation, search
(A few single player ideas)
(Network: Add a Multiplayer section)
Line 57: Line 57:
 
** Sync is achieved by "rewinding" the game engine and reapplying new input if it is received "in the past"
 
** Sync is achieved by "rewinding" the game engine and reapplying new input if it is received "in the past"
 
* Desynchronization errors don't disconnect players, but rather just cause them to surrender
 
* Desynchronization errors don't disconnect players, but rather just cause them to surrender
 +
 +
=== Multiplayer ===
 +
 +
* Sudden Death should be activatable by host or by popular vote, similarly to how it's available in the offline Esc menu. Can be used to hurry up games if e.g. a player realizes they need to leave shortly.
  
 
=== Map editor ===
 
=== Map editor ===

Revision as of 23:13, 11 August 2020

Random ideas that came up over the years, and finer points of the broader items above.

Options

  • Customizable background detail levels
  • Move instant replays from a scheme option to a game option, since it only works offline anyway?
  • Team favourite colour (honoured by hosts on a first-come, first-serve basis)
  • Allow customizing the six team colours (for people with colour deficiency, or who don't like certain colours).

Interface

  • Specific screens:
    • Join "lobby":
      • Add easily-accessible Scheme Comparator
        • Compares the scheme chosen by the host against all locally-available schemes, and displays the name of the closest-matching scheme, with an asterisk appended if there's any difference (e.g. "Hysteria *")
        • If requested by the user, shows a list of all the differences between the host's scheme and the closest-matching scheme (e.g. "Low gravity ammo: 0 -> 1")
          • How shall the diff display be triggered? Upon mouse hover over the scheme name? Upon clicking the scheme name? In the scheme viewer?
    • In-game:
      • Pressing Escape pops up a menu and shows the mouse cursor, however it is not locked to the Escape dialog.
        • With the mouse cursor unlocked, mousing over a worm brings its name/HP bubble to the front. (solves this idea)

Game logic

  • Maps:
    • Wrapped maps?
    • Auto-expand map size? (Allow placing girders outside map boundaries)
      • Infinite cavern?
    • Store map as a collection of chunks instead of a single solid object. This allows:
      • Loading maps of different sizes (dynamic resizing)
      • On-the-fly "extension" of maps (building girders in open space, or digging in any direction for infinite cavern maps)
      • Efficient in-memory representation of large maps with a lot of blank space

Network

  • Peer-to-peer
    • Measure pings and construct routes dynamically?
  • Don't artificially limit the maximum number of players and teams
  • Asset sharing
    • Support sharing:
      • Colour maps (as presently)
      • Scheme/script assets
      • Soundbanks/fanfares
      • Terrain textures
    • Caching
    • Bandwidth usage:
      • Normal (load maps, soundbanks, route data)
      • Low bandwidth mode (load maps, but not soundbanks, and do not route data unless required to keep the game running)
      • Minimal bandwidth mode (do not load colour channel of maps, only the B&W outline)
  • Unify front end (lobby) and in-game protocol
    • Map editor: (also see separate section for feature list)
      • Integrated with game logic (editing tools accessible just like weapons from a separate palette)
      • Maps should be sent as collision mask first, with progressive colour layer following
        • Colour data for loaded maps should not be stored in the message stream, but rather stored as an object reference
  • Real-time support
    • Turn-based games follow current W:A behaviour - current player is a few seconds (or whatever the latency is) ahead of other players, but other players would still be able to send certain messages "from the past"
    • Real-time games are synced simultaneously
    • Sync is achieved by "rewinding" the game engine and reapplying new input if it is received "in the past"
  • Desynchronization errors don't disconnect players, but rather just cause them to surrender

Multiplayer

  • Sudden Death should be activatable by host or by popular vote, similarly to how it's available in the offline Esc menu. Can be used to hurry up games if e.g. a player realizes they need to leave shortly.

Map editor

  • Support basic colour editing tools (MS-Paint-ish)
  • Support clipboard operations
  • Ability to flip maps horizontally and vertically
  • Ability to generate maps based on a string (as with other Worms games)
  • Ability to select a random map from the SavedLevels folder (or a sub-folder)
  • "Plug-in" code model for landscape generators and texturizers
    • Add map generation for common schemes, e.g. RR (see MapGEN)
  • Draw on the landscape (monochrome) level, see live texturized map?
  • Layers? (parallax foreground, destructible land, indestructible land, destroyed land background, parallax background)
  • Worm starting points?
  • Allow pre-placing hazard objects (mines/barrels)?
  • Crate drop zone probabilities?
  • Allow manually specifying water colour and the background gradient

Gameplay

  • Per-scheme features:
  • Scribble feature (allow people to scribble on the viewport, even not during their turn; superimposed on the map, but not limited to being inside the map)
    • Team Scribble to discuss private strategy
    • Global Scribble to be shown to all people present in the game
    • Spectators? (same problem as with spectator team chat)
    • Private Scribble? (player-to-player, like a /msg — would there ever be a reason people would want this?)
    • Option to toggle visibility of scribble, in case it is abused or becomes distracting

Replays

  • Replays are stored internally as broken into message streams / metadata / maps
  • Replay viewer has a seek bar (similar to video players), with turn starts marked on it
  • Allow resuming a game from replay file?
    • Allow hosting a game from current moment in the replay viewer? (idea)
    • Also allow resuming from in-between matches? (idea)
  • Replay library interface
    • Replays will be stored in object database, but exportable to self-contained files
    • Search chat
    • Search by certain parameters
  • Bookmark system (wkReplayShark replacement and more)
    • Bookmarks should be exportable, and show up on the seek bar

WormNET

  • Each player has their own unique username and profile
  • Channels structure:
    • #Sandbox for all scheme options unlocked
      • All other channels have the advanced scheme options locked (teststuff-like, scripting, etc.) to prevent overcustomization explosion
    • Separate roping and non-roping schemes into two channels:
      • #TotalWormage - using unlimited ropes is forbidden (Replaces old #PartyTime. Best name idea so far despite its similarity to Full Wormage.)
      • #RopersHeaven - using unlimited ropes is forced
    • Ranked channels with enforced settings for popular schemes
  • Ranking system is TBD
  • Return of flaming health bars (possibly some more tasteful team customization)
  • Snooper support? (allow connecting with an IRC client for limited interactivity)
  • Use a reputation system to penalize misbehaving players (quitters, griefers, etc.)?
  • Use public-key cryptography for security:
    • People joining the game must provide a server-signed join token, which proves that WormNET registered that they joined the game
    • Each player has their own public and private key
    • Replays and messages are signed using the player's private key
    • Private messages are encrypted using the recipient's public key
  • Nick list:
    • Show clan logo instead of flag if present, but show flag on mouse-over?
    • Color nicks by status (online, in-game, away, busy(?), snooper)

Single Player / Campaign

  • More CPU levels, which can use more weapons
  • Community-made missions?
  • Secret "Platinum" medal for trainings (no reward)
  • "Elite 🟉" Deathmatch rank (no effect other than to acknowledge that the player beat the Deathmatch "Elite" challenge)

External links

Personal tools