GithubHelp home page GithubHelp logo

Plugin System about openmu HOT 5 CLOSED

munique avatar munique commented on June 15, 2024
Plugin System

from openmu.

Comments (5)

sven-n avatar sven-n commented on June 15, 2024

I have an idea for an additional use case for plugins, as a replacement for IPlayerView etc. which defines dozens of methods and “sub-views”. All these methods could be extracted into single plugin interfaces, instead. This way, network messages for different client versions could be implemented by different plugins.
The server could hold all active plugins for each connected player. When a player connects, the server could select/create the right plugins for the specific client version. So it should even be possible that different players can connect with different client versions to the same server.

I already have a rough idea about how to implement this :)

from openmu.

sven-n avatar sven-n commented on June 15, 2024

Merged #91. See Readme of the added MUnique.OpenMU.PlugIns project for the documentation.

Next steps:

  • Creating Plugin interfaces/points for game logic
  • Creating a way to write and integrate view-plugins, packet handler plugins and network-related plugins (encryption)
  • A way to configure plugins on the AdminPanel

Nice to have:

  • A user interface on the AdminPanel to create new custom plugins
    • User selects plugin type
    • A template is generated and shown in an editor (e.g. CodeMirror)
    • When the user saves, it’s compiled (Roslyn) and added to the plugin configuration

from openmu.

sven-n avatar sven-n commented on June 15, 2024

Refactored packet handlers into plugins with #105

from openmu.

sven-n avatar sven-n commented on June 15, 2024

I’m currently close in getting multi client support. That means players with different client versions and therefore different network protocols will be able to join the same server instance and interact with each other.
However, to support other clients than season 6, it’s required to review all existing packet handler and view plugins and add new ones for those which need different packet structures.
I think I’ll start adding support for some lower versions first. I had version 0.75 (nostalgic 😉) and 0.97d in mind.
Higher seasons are a bit problematic as it will require to add actual features which might require additional player state (transient and persistent), too.
Season 3, 4 and probably 5 are difficult as well, because of a different master skill tree structure.

from openmu.

sven-n avatar sven-n commented on June 15, 2024

Basically solved by #108.

A code editor in the admin panel would be nice to have, but I think it's too early for now. So, I'll close this issue.

from openmu.

Related Issues (20)

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.