Go Back   EQEmulator Home > EQEmulator Forums > OpenZone > OpenZone:: Q&A

OpenZone:: Q&A Support forum for OpenZone help

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 02-14-2007, 10:17 AM
Windcatcher
Demi-God
 
Join Date: Jan 2002
Posts: 1,175
Default Client discussion, blue-sky thinking welcome

Recently I mentioned that I (we? us?) plan to release a client sometime this year. While at this point I'm ever-so-slowly trying to climb that huge mountain called 'item icons', I'm still committed to that goal, and a message from someone kicked me into thinking that it might be high time to try to spur a discussion on what a client/server combo should have in it. From what I've read in these forums and what I've seen in the larger EQ community, I think that it's time to leave not just Norrath(tm) but the general game of EQ behind, or at least give ourselves that option. What I'd like to spur people into talking about involves customization, and I know I'm not imaginative enough to work out all the issues by myself.

The thing that kicked me into action was a question regarding whether the client I was planning would support things like AA's or custom GUI setups. I think the real issue is MUCH larger than that, but here's my response (sans anything that would identify the person asking) to give you all a starting point:

Quote:
It doesn't support AA's at this point because my test server doesn't support them, but I understand your question. The hardest part will be making the GUI configurable, just because it will be a lot of work to create an XML schema and subsystem for building the GUI dynamically. I want to do just that, but the first version probably won't have that yet. I haven't decided if I want to try to borrow from my OpenSpell dynamic GUI code but that would probably be overkill. I might be able to borrow parts of it, though, to speed the process up.

The client is configurable from the standpoint of server versions -- while I test it primarily with EQEmu 0.5.5, I've tested it with other versions as well. It has profiles for several versions and will automatically configure itself based on what it connects to. There is a custom protocol where the client tells the login server what server versions it supports, the login server tells it what's available within those constraints, and they show up for the player. The client uses dynamic opcode lists and packet definitions, and it can support most versions between EQEmu 0.5.5 and EQEmu 0.6.0. The reason it doesn't support 0.6.1 and newer is because the netcode is completely different, but the client has all of its netcode encapsulated in DLL's -- for it to work with newer versions only requires that someone write a DLL that matches the interface of the existing one. At this point I don't have time to figure out how the newer netcode works and write one myself. The netcode is GPL and will be opened up when it's released so others can work on another DLL if they want.

I think the biggest potential for configurability will be in features and ruleset, for instance:
- what gods are available
- what race/class combos are available
- what choices are available for the starting city
- the player stats (for instance, D&D rules use STR, INT, WIS, DEX, CON, CHA and don't have resistances).
- the types of money (for example, D&D1E has pp,gp,sp,ep, and cp, and other games have have fewer types)
- the money conversion rates
- the relevance of player skills (for example, DragonQuest is very different than D&D when it comes to skills)
- Whether grouping is allowed, and its parameters (more than six? less than six? other features or restrictions?)
- Spell memorization rules

I'm not imaginative enough to figure out all of these things. I think there needs to be a forum discussion on what kind of flexibility is desired, and the sooner it happens the better the design and implementation will probably be. All of these things will require changes to the server and the DB and so it should involve the entire community.
I keep thinking of the opening to The Outer Limits ("Do not adjust your television. We control the horizontal. We control the vertical.") With a client/server combination we control the entire equation, and within the constraints of staying away from anything that belongs to SOE there are loads of possibilities if we're imaginative enough to think of them (and if they're the sort of things I can implement with a reasonable amount of effort). This is something that's been on my mind for a while, but I'm so swamped with the minutia of trying to get everything ready that I really can't spare the brain cells for that sort of blue-sky thinking. About the only consolation is that I can plagiarize the hell out of my code, so for instance the dynamic server packet stuff borrows heavily from the Admin Tool (remember that?). Still, it's no substitute for the real kind of thought that this sort of discussion requires and is why I'm posting it now. Better to have this discussion now than at the 11th hour when I'm getting ready to release something. Fair warning: if participation here is anemic then you all shouldn't expect much because I'm oversubscribed as it is. This is a real 'help needed' call.

Last edited by Windcatcher; 02-14-2007 at 06:24 PM..
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 10:20 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 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3