Go Back   EQEmulator Home > EQEmulator Forums > Archives > Archive::Development > EQ2 Development

EQ2 Development Everquest 2 Emulator development

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 06-05-2005, 03:22 AM
daeken_bb
Discordant
 
Join Date: Mar 2003
Location: Chambersburg, PA
Posts: 469
Post Generic Architecture

Ok, here are some thoughts I've been having. We have enough experience in the development team to pull all of this off, even if it is a bit more difficult. All of these things will make the project easier to maintain without it, well, turning into EQEmu lol. Let me know what you think.

1) We should make the architecture layered and generic, that way even if sony completely breaks the netcode, we don't have to rewrite from scratch. E.g. we split the code into 3 layers, the netcode, the abstraction, and then the modules that do the actual work... perhaps even a 4th layer that adds additional functionality, depending on the module.

2) Everything should be 100% modular. If this is done right, it means that we can use modules from other languages as well, which could mean greater efficiency (e.g. using C++ for one) or greater control while testing (e.g. using Python). I don't think I have to speak on the importance of modularizing code.

3) Database code should be 100% abstracted and modular, ADODB-style. Even though we are all using much the same data, certain RDBMS's are more well suited for certain loads or even architectures.

4) WindCatcher and I have been discussing how network code can be completely high-level (e.g. a networking metalanguage) without losing speed. This would give us the advantage of being able to change structs without recompiling (if in dynamic mode) or make changing from one structure to a new one a trivial task. Endianness would also be a non-issue with this system. I will post more on this concept in a seperate thread.

5) Modules should be capable of processing in parallel. We should have a thread pool, and when we get a request, we should start the appropriate module's handler in an open thread from the pool. This will allow us to process unrelated requests in parallel, and speed things up both on uni-processor and SMP machines. (Thanks to Image for bringing this up)

If you have any ideas, I'd love to hear them.

Thanks.
Lord Daeken M. BlackBlade
(Cody Brocious)


Edit #1: Added #5.
__________________
Keep me unemployed and working on OpenEQ, PM me about donating

Check out my deviantART page at http://daeken.deviantart.com/

Last edited by daeken_bb; 06-05-2005 at 11:34 AM..
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 01:36 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3