Comments (5)
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.
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.
Refactored packet handlers into plugins with #105
from openmu.
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.
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)
- Where can i download the MU Client? HOT 1
- Guild creation doesn't clear the info of the last guild that was created. HOT 1
- [Feature] Admin Panel Localization
- [Bug] Adding points by /add disconnects the character from BC and DS HOT 2
- OpenMU on Kubernetes HOT 2
- After restart i lost all my data HOT 2
- Local Run - No Internet HOT 3
- Can I help with any tasks? HOT 3
- Can't build the solution HOT 2
- Prevent equipping weapons and shields when not enough hands are free HOT 3
- Level-up points should be compensated when gaining Hero Status beyond level 220
- Guardian Angel damage absorption works in reverse HOT 7
- CPU 100% when the server is running HOT 10
- I love to help HOT 3
- Broken link on packets docs HOT 1
- A Fenrir cannot be repaired with a Jewel of Bless
- Can't promote guild members to battle master and assistant guild master HOT 1
- Guild Alliance, Hostility, Suspend Hostility nor working HOT 1
- The client cannot connect to the server. HOT 4
- munique net is slow HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openmu.