EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   General::General Discussion (https://www.eqemulator.org/forums/forumdisplay.php?f=586)
-   -   EQuilibre, an open source client (https://www.eqemulator.org/forums/showthread.php?t=36983)

PiB 06-20-2013 02:47 PM

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!

Tyen05 06-20-2013 05:53 PM

Awesome! Sent you a PM~

Your videos are amazing!

rhyotte 06-20-2013 10:41 PM

PiB....

You deserve Hero Status for this! I can not wait for this to come to a usable state! Even so, this is Very Exciting!

Thank you for all the hard work :)

squevis667 06-21-2013 10:04 AM

Post a Paypal link for donations
 
If you are scrounging for resources, I can think of a few people who would be willing to donate (including myself). You should check with the admins and try to get a Paypal donate button on this thread.

PiB 06-21-2013 02:28 PM

Thanks :) It is a lot of work but without Windcatcher's WLD reference and the EQEmu source I would have never gotten anywhere with this project. So kudos to him and the EQEmu devs!

I work full-time so what I am scrounging for is time to work on this project. I would definitely appreicate any testing and feedback. Especially from people familiar with the EQEmu source/EQ protocol, that would be awesome! Thanks for offering to donate though :)

PiB 06-24-2013 03:40 PM

I realized that the timeout used when connecting to a server was set too low which made it impossible to connect to EQEmu servers with default send rate thresholds. Getting from server selection to character selection takes over 10 seconds which is why I set this to a much higher value on my server.

I made a new release with some other minor changes:
* Save the user name, password, login server host and port in the settings file so that you don't need to enter it every time.
* Use GPU skinning by default. Helps if there are a lot of visible characters.
* Optimizations.

EQuilibre-v0.1.1-win32.zip

ChaosSlayerZ 06-24-2013 05:20 PM

awesome!!!

Wisteso 05-27-2015 10:08 PM

This looks very awesome. Id love to help work on something like this if I could find time.

Curious why bitbucket and not github though?

Maze_EQ 05-28-2015 04:51 AM

Go go Necromancer.

You have gotten better at thread reaping (101).

Wisteso 05-30-2015 06:18 AM

Wow.. didn't even notice how old the thread was. I have no idea how I even found it.

Whats more sad is that the project code hasn't been touched in almost two years =(


All times are GMT -4. The time now is 05:41 AM.

Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.