Architecture
Hi all,
just wonder if there is any architectural design documents flushed out for world.exe and zone.exe? regards, froglok |
Im guessing that by no repeonses, there is little to none architectutal information available :(
Looks like this is a job for the weekend :) class diagrams, etc :) froglok / Dark-Prince |
That would be great... One of the most frustrating things is trying to find where stuff happens in the code base.
Good luck |
Firstly, This post is to do with the post at: http://www.eqemulator.net/forums/showthread.php?t=22622 also.
Iv been going over the code now for a few hours here and there on and off for the last couple of days and have some suggestions. The Architecture I feel needs to be flushed out to at least 2 more projects. These projects would be : "Network" and "Database" The "Network" project. In short, this project will contain all code which sends / receives opcodes, deals with communication to/from the world/zone/eq client The "Database" project: This project will contain the classes to deal with MySQL only. It will handle the saving / retrieving of database rows/columns. So basically, here is an example using 'Guilds': Zone Project: GuildManager -> The General logic which contain "Game" logic, i.e AddPersionToGuild(Person, Guild) { Database.AddPersonToGuild(Person, Guild) Network.AddPersonToGuild(Person, Guild) } // Note this wont complie and is only a example Network Project: GuildNetworkManager -> Handles sending of the Opcodes / Anything which uses the network side of EQEmu Database Project: GuildDatabaseManager -> Handles Saving and Retrieving of Database related information (Guild Names, Listings, Members, Adding members, removing members, etc) Please note, that the above example, is a very basic and cut down example. Pros: Cleaner Project & Easier to read All related code is in its own area / project Easier to promote code reuse (why reinvent the wheel) 2 Tier Architecture Reduced size of the code base due to reuse Less code is less testing When les code is used, the same code, gets tested, retest and retested several times. Easier to understand, read and follow Allows for easier development Easy to maintain Cons: Requires extensive time to implement Will need to retest a lot of code Bigger project (almost twice the amount of files, but will be less code) However, I do believe this is something which should be done, sooner rather than later, so in an attempt, Ill be doing it for Guilds over the weekend :) With this new architecture, EQEmu will be given a new source of momentum and drive to push towards version 8. Ill also be adding a lot of documentation to the source code while doing this as iv noticed that there isnt much in code documentation due to the current and previous developers under pressure to get the code out. froglok / Dark-Prince |
frog, how goes your attempt?
|
All times are GMT -4. The time now is 07:49 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.