Today I want to write about an important aspect of all MMOGs and of Heroes of Asgard’s server side development.
This first aspects is Persistance. By definition, a MMOG is composed by a large scale and persistent world. This means that each change that a player makes on the world (like his position, etc) will be stored and can be retrieved when the player come back to play.
For this reason, I developed a module called PersistanceManager, that will deals with this target.
Each change to the world will be pushed to PersistanceManager, that will enqueue it and store it in a properly way.
Here is the flow:
- a change is pushed to PersistanceManager
- it appends it to a queue, if the same type of change is already pushed for that player it will be replaced
- on regular, customizable intervals PersistanceManager will store the changes to our database, ensuring world persistance
- if a player disconnects from server, PersistanceManager will store immediately his changes to our database
This process is transparent to the user’s view, this allows PersistanceManager to perform its work with no slowdowns or delay for users’ game experience.
That’s all for this post, I hope that this can be useful and interesting for someone!
Don’t forget to comment and to share it!
Emanuele Manzione, Crimson Games Development Department