A lot of times when I post in here I use my posts as references so I can come back to it. So if it seems like I'm talking to myself, it's probably the case.
So anyway, we are pushing forward with custom client development whether Secrets decides she wants to be productive or not. Here is our current Prototype source (it's shit, but keeping things open to the community as always)
http://eqbrowser.com/misc/EQLoginClient.zip
From my understanding, to properly send and receive an opcode and related packet we have to emulate TCP in UDP... i.e. 3 way Ack(nowledgement of packet) handshake.
Some data, like chat message packets, is sent encrypted but we have that part done.
We need the ack system, the tcp in udp bullshit, and we need the library to be 3 threads.
1 main thread, the packet processing consumer thread which we have written on our own.
What we need is a producer thread for incoming packets, and a consumer thread for outgoing packets, so there will be 2 shared "volatile" mutex'd stacks (incoming and outgoing packets)
It gets even more complicated since there needs to be 2 stacks for incoming and outgoing (aka 4 mutex'd stacks) because some packets don't need the Ack system like movement packets, and other physics based packets.