Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[Developement] GameServer based on Plugins

Newbie Spellweaver
Joined
Jun 29, 2009
Messages
23
Reaction score
23
At a certain moment I started to think, how would it be to have a GameServer to which you could customize it in a simple way? In a lay style, with the possibility of annexing functions, adding protocols or simply replacing parts and then, this idea was born. A Gameserver which works only with plugins, personally is a challenge that goes with the slogan in my signature.

For now there is only the basic structure.



Here is the heart of GS, it have a script file that says how it works


you can change properties of plugins or make calls to plugin functions, as you see


--Update 02/17/2018:
Plugin for SimpleModulus Working and a basic protocol added, accept and login player
 
Last edited:
Junior Spellweaver
Joined
Sep 3, 2008
Messages
146
Reaction score
75
Whats the idea? Independe self-moded code for every thing? Somekind of API?

How do you solve mu protocol interaction between plugins? Cuz All those that you named, keep doing interaction on every funcion by every socket connected to gameserver.
(GS Protocol get packet from main, gs send ask info to JS/DS/Ranking/Event and get info, and sended back to client, by ever player).

Whats about Objectstruct? Player fill some structures and mob others, NPC just 4 or 6(Maybe Related, but completly independent of each other).

Offtopic:

Lindas vacaciones que te mandastes eh? jajaja unos 5 años sin aparecer por foros?
 
Newbie Spellweaver
Joined
Jun 29, 2009
Messages
23
Reaction score
23
Whats the idea? Independe self-moded code for every thing? Somekind of API?

How do you solve mu protocol interaction between plugins? Cuz All those that you named, keep doing interaction on every funcion by every socket connected to gameserver.
(GS Protocol get packet from main, gs send ask info to JS/DS/Ranking/Event and get info, and sended back to client, by ever player).

Whats about Objectstruct? Player fill some structures and mob others, NPC just 4 or 6(Maybe Related, but completly independent of each other).

Offtopic:

Lindas vacaciones que te mandastes eh? jajaja unos 5 años sin aparecer por foros?

I have designed it in this way:
A plugin is a class saved in a dll
"Container" load the plugin into APP and read the "Event&Callback" list proced to registre it globally, next step is find references to this functions in anothers plugins and make links for fast calls, and so if more than one plugin have the same callback? Container broacast the same message to every plugin and stop when recive an P_OK responce, the plugin have procesed the message. in this way you can add missing protocols only adding a new plugin.

Every plugin have a list of Events, Proceders and Callbacks
* Events are emited from the plugin.
* Proceders are invokeables from script, another plugin or console
* Callbacks is invoked from Container in response an Event emitted.

Every plugin has Properties, this use a var for any type (like a php var) can be setted or change from script or console in any time.

For your question of Users the plugin ObjCore handle the users/monster/npcs is like the basic g_mObjs of all GS but this allow accept "infinite" properties, you can say some like (in console/script) ObjCore->Set(15,"AccountID", "Yomalex") and value is stored for object 15 if the parameter "AccountID" don't exist it don't matter is created and Stored in the Object.

Offtopic:
La Universidad me dio unas buenas vacaciones de los foros jaja
 
Last edited:
Custom Title Activated
Loyal Member
Joined
Apr 6, 2007
Messages
1,806
Reaction score
483
I have designed it in this way:
A plugin is a class saved in a dll
"Container" load the plugin into APP and read the "Event&Callback" list proced to registre it globally, next step is find references to this functions in anothers plugins and make links for fast calls, and so if more than one plugin have the same callback? Container broacast the same message to every plugin and stop when recive an P_OK responce, the plugin have procesed the message. in this way you can add missing protocols only adding a new plugin.

Every plugin have a list of Events, Proceders and Callbacks
* Events are emited from the plugin.
* Proceders are invokeables from script, another plugin or console
* Callbacks is invoked from Container in response an Event emitted.

Every plugin has Properties, this use a var for any type (like a php var) can be setted or change from script or console in any time.

For your question of Users the plugin ObjCore handle the users/monster/npcs is like the basic g_mObjs of all GS but this allow accept "infinite" properties, you can say some like (in console/script) ObjCore->Set(15,"AccountID", "Yomalex") and value is stored for object 15 if the parameter "AccountID" don't exist it don't matter is created and Stored in the Object.

Offtopic:
La Universidad me dio unas buenas vacaciones de los foros jaja
Lovely. Would love to see this working completely and with some players.....did you perform any kind of stress test? I think idea is great, but loading many plugins with many players online may cause some sort of delay on Gs....maybe im wrong.

 
Newbie Spellweaver
Joined
Jun 29, 2009
Messages
23
Reaction score
23
Lovely. Would love to see this working completely and with some players.....did you perform any kind of stress test? I think idea is great, but loading many plugins with many players online may cause some sort of delay on Gs....maybe im wrong.

Yes it need stress test but for now i have only the "select character", because i'm remaking all gs code for make it more readable and make it compatible with plugin formats.

but i think it will work good, because events and callback are practically direct calls
 
Experienced Elementalist
Joined
Jun 17, 2014
Messages
242
Reaction score
107
i saw video in your facebook. You have remake client MU PC in unity? But not smooth :). Good luck with your projects :)
 
Back
Top