Go Back   EQEmulator Home > EQEmulator Forums > General > General::General Discussion

General::General Discussion General discussion about EverQuest(tm), EQEMu, and related topics.
Do not post support topics here.

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 06-20-2013, 02:47 PM
PiB
Fire Beetle
 
Join Date: Aug 2012
Posts: 15
Default EQuilibre, an open source client

As a few people may have gathered from this thread, I have been working on an open-source EQ client called EQuilibre and some related tools like a character viewer, a zone viewer etc.

After quite a lot of time working on this, the client is able to do very very basic things like connecting to a server, selecting a character, entering a zone, moving around, seeing NPCs and other player move around, and change zones. You can't send messages, you can't target anything, basically the only interaction you can have with NPCs is that they can kill you.

The source is on Bitbucket. You can build it on both Linux (straightfoward to set up) and Windows (takes longer to set up). I have uploaded Windows binaries so that most people don't need to build from source. You will need a copy of EQ for the assets (which one does not matter very much).

A couple videos:
What mostly works:
  • Rendering terrain, objects and player for vanilla/Kunark/Velious zones.
  • Rendering weapons and other (non-skinned) equipment.
  • Rendering pre-Luclin animations.
  • NPC are rendered using the right models, genders and skins (for example, choosing between merchant and guard skins for Qeynos NPCs). There are some glitches with helm textures. This was quite a lot of work to match .s3d model names (like QCM, ELM, GNN, etc) to race IDs, likewise for mapping animations between models.
  • Collisions between player and terrain (it is still possible to fall below the ground, oops).
  • Low-level networking code (handle dropped packets).
  • High-level networking code (connect to a server, change zones).
  • Warping to a place in the current zone (#goto) or to another zone (#zone). Use Ctrl+F to bring the 'Go to' dialog in the client or zone viewer.

At this stage even these basic features are unfinished and buggy, for example:
  • NPCs may have the wrong scale or center (so they appear to hover above the ground).
  • The culling code is really bad which means a lot of NPCs don't have name tags.
  • Name tags are drawn above everything else which means you see tags for NPCs that are hidden.
  • NPCs do not yet collide with the terrain, so that corpses may be below the ground.
  • Nothing collides with static objects (like the lift in gfaydark).
  • Zoning only works at some specific zone points (in gfaydark, for example). Even with these zone points, you might end up in the wrong place in the new zone.
  • ...
  • and so on

I am developping against a local EQEmu server that runs 'loginserver', 'world' and multiple 'zone' instances. I don't want to distribute an implementation of the crypto code that allows connecting to live or EQEmu servers, that's why it's not present in the Bitbucket repo or binaries. I have written a simple authentication plugin that expects plaintext logins and SHA1 hashes of passwords (what EQuilibre uses by default). For now this is the only way to use the client.

You'll need to edit 'login.ini' with something like:

Code:
[security]
plugin = path\to\EQuilibrePlaintextAuth.dll
For Linux servers you will need to pull my dynamic loader changes and rebuild EQEmu.
I have only used EQEmu on Linux and never tested EQuilibrePlaintextAuth on Windows so this might not work, though I hope it does.

Anyway, though this is very unfinished and lacks tons of feature I hope somebody will enjoy playing around with it until I can make it better!
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 09:45 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