GithubHelp home page GithubHelp logo

malicean / h3mp Goto Github PK

View Code? Open in Web Editor NEW
13.0 13.0 16.0 417 KB

A WIP multiplayer mod for Hot Dogs, Horseshoes, and Hand Grenades

License: MIT License

C# 97.74% Shell 0.09% Batchfile 2.17%
bepinex csharp discord h3vr

h3mp's Introduction

h3mp's People

Contributors

maiq-the-dude avatar malicean avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

h3mp's Issues

Tick Number as Timestamp

As the current synchronized time system stands, it notates time in seconds using floating points. This causes many conversion and comparison problems because of the nature of floating points.

An integer tick offset could be used instead of a floating point clock offset to notate a timestamp. If the floating point representation is required, the current tick could easily be converted to a time using the fixed tick delta time.

Basic UI

  • Mod version info
    • Displays current mod version
    • Displays current mod changelog
  • Displays latest mod version
  • Leave lobby wrist menu button

Advanced Avatar

For a better user experience, players should have a sosig body; the same body that they can see themselves as in single player with the spectator camera.

  • Players should have synced motion controllers (#3).
    • The motion controllers should be the same type of controller that the player is using (requires API change).
  • Players should have a synced Sosig body. (requires API change)
    • Players should also see each other's outfit, as set and show by the spectator cam (requires API change).

Server Simulation

The current input (only movement at the moment) system uses the server as a relay between which clients transmit their own inputs and receive others. This has a the significant downside of different timestamps/lag for different players, and because of that, a universal interpolation delay (required for shooting guns in the future) cannot be achieved.

Input-based movement would use deltas sent from the client on each tick (unless the client runs behind or packets are dropped) and simulate the actions on the server. This would unify the timestamps of all entities and thus the real time experienced by the player, as well as remove a tick step of interpolation delay in the process.

Movement is only one of the many things that would benefit from a such a tick-synced message, and there are especially plenty of examples we will be encountered down the line.

To achieve this, a few things are required:

  1. A delta system to easily use message deltas.
  2. Snapshot delta messages to bundle information changes under one timestamp.
  3. Client input delta transmission
  4. Server input delta reception and world simulation
  5. Client world delta reception

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.