suriyun-production / mmorpg-kit-docs

This is document for MMORPG KIT project (https://www.assetstore.unity3d.com/#!/content/110188?aid=1100lGeN)
https://suriyun-production.github.io/mmorpg-kit-docs
49 stars 11 forks source link

We need a robust logging system #306

Closed majimboo closed 7 months ago

majimboo commented 4 years ago

Developing and shipping a game specially an MMORPG is only a small portion of the undertaking, upon release and as long as the MMORPG is in service you will have to support your players.

Without proper support the game you have taken a few years of your life to develop will bow down to an overwhelming negative reviews and lose players.

So a system that can help you manage and support players should be a major feature of any MMORPG kit but often gets neglected.

I propose that another process called "logging server" should be created too. This will handle all logging where you can easily write your own logger, either log it to file or ideally a database that is separate from the game database.

For every action a player makes, the logging server is notified and logs that action. Basic information should include: player id, map server where the action happened, a timestamp, some meta data.

Connections

Chat

Death

Deal/Trade

Storage

Items

Character

Those are just a few of the things that could be logged to help make sense of your community and help players with issues.

I don't expect something like this to be included anytime soon, but would appreciate if it gets on the roadmap.

I understand that we can implement these ourselves, but having this out of the box where we'll just need to expand it to our needs would make this kit a lot more valuable than other kits out there that also didn't think to make logs important.

This is only a suggestion and thank you for the awesome kit!

insthync commented 4 years ago

Noted, Thank you for your suggestion :)

iMakedonsky commented 4 years ago

Some generic interface that makes adding logging for any function/method call would be great.

Like, a decorator/function/attribute to easily mark certain methods/network calls to log em, along with a possibility to log certain types of events(filtering), via config, say

config {
    LogFilter: (LogMessage mess) => mess.Level == INFO & mess.type == MessageTypes.ItemTransfer
}
Fr-Coder commented 2 years ago

Good idea, maybe using a separate process (as for MySQL) only for logging

tylerguitar75 commented 11 months ago

This is so important and I hope it gets implemented or someone creates an addon for it

insthync commented 11 months ago

Wow, it is very informative.

insthync commented 7 months ago

I've created a log handling component interface (IServerLogHandlers) in 1.87, you will have to implement the interface by yourself, and the component which implements that interface has to be attached to the same game object with map network manager to use it for log handling.