Difference between revisions of "User:CyberShadow/Assorted ideas"
From Worms Knowledge Base
CyberShadow (Talk | contribs) (→Network: Add a Multiplayer section) |
CyberShadow (Talk | contribs) m (→Game logic: Fog of war mode) |
||
Line 30: | Line 30: | ||
*** On-the-fly "extension" of maps (building girders in open space, or digging in any direction for infinite cavern maps) | *** 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 | *** Efficient in-memory representation of large maps with a lot of blank space | ||
+ | * Fog-of-war mode (map is hidden until within line-of-sight of controlled worm) | ||
=== Network === | === Network === |
Revision as of 05:21, 17 August 2020
Random ideas that came up over the years, and finer points of the broader items above.
Contents
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?
- Add easily-accessible Scheme Comparator
- 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)
- Pressing Escape pops up a menu and shows the mouse cursor, however it is not locked to the Escape dialog.
- Join "lobby":
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
- Fog-of-war mode (map is hidden until within line-of-sight of controlled worm)
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)
- Support sharing:
- 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
- Map editor: (also see separate section for feature list)
- 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:
- Rule enforcement as scheme options (see 4/Scheme options)
- Roper:
- Trick detection? (like here)
- 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?
- 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
- #Sandbox for all scheme options unlocked
- 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)