EQEmulator Forums

EQEmulator Forums (https://www.eqemulator.org/forums/index.php)
-   General::General Discussion (https://www.eqemulator.org/forums/forumdisplay.php?f=586)
-   -   EverQuest in Unity Engine project (https://www.eqemulator.org/forums/showthread.php?t=35658)

Ensane 08-15-2012 12:27 PM

EverQuest in Unity Engine project
 
Hey guys,
I'm an experienced unity programmer and a old school fan of everquest (rallos zek/sullon zek)

I been reading about a few attempts to make a eq client... One guy building his own in C++ and another using unity...

What i want to do is see how much interest/support i could get and id be willing to lead this project and build a new client using Unity.

Why I think unity would be good as it will allow us to compile a client for Mac/Windows/Linux/Web/Android/IPhone how cool would that be? and we wouldnt have to spend alot of time writing a new engine and spend the time just building EverQuest to work with the already sophisticated emulator servers.

This will allow for alot of things, improved graphics options, a true classic theme, as well as improving the code all together to make EQ less hackable, and we can go custom route with it and make a new game based on eq only more modernized. Options are endless but, we all know the eq client now is holding things back.

Please feel free to reply here on your thoughts and message me on skype: bruinp8n

rhyotte 08-15-2012 04:21 PM

A couple of reasons I want to see this project take of:
- 1) *LINUX* !! ...did I mention LINUX? Sick of windows.
- 2) The client Chase / legality issue in obtaining / server-different-clients-issues are a pita. One client to wrestle with would make life on all sides so much easier.

I really hope this takes off.

Ensane 08-15-2012 04:48 PM

Well im all about developing/managing it, but, only if i can get additional support.

Caryatis 08-15-2012 07:28 PM

Its a pretty safe bet we will never have a non-Sony client, for quite a few reasons but really the only one that matters is the mountain of work is to accomplish something like that.

Also a problem is that nobody has extracted useable animation information from EQ models(or whatever killed Tyen's browser thing, I never really paid attention) and its just not feasible to reanimate every model in Everquest.

If you want to get momentum on this project, you can't wait for others. Start proving your concept and create a plan, its going to be very hard to convince the people with the skills to help unless they can see a way through. Don't worry about the easy stuff either, everybody knows you could reproduce the inventory or compass in Unity without issue but get a pipeline for extracting and importing assets or something like that and you might get something going.

Ensane 08-15-2012 08:47 PM

Yea I totally agree, however, before I can really commit myself to a new project I'd have to have a few good men to start with.

I been trying to contact both pixel & tyen... if i can get them both on-board then that should be enough motivation for me to get started.

Tyen05 06-02-2013 07:48 PM

Quote:

Originally Posted by Caryatis (Post 211754)
nobody has extracted useable animation information from EQ models(or whatever killed Tyen's browser thing, I never really paid attention) and its just not feasible to reanimate every model in Everquest.

Problem Solved

http://www.eqemulator.org/forums/showthread.php?t=36726

Shin Noir 06-10-2013 04:37 PM

I don't like being a naysayer, but I'm not sure it's worth the investment time is the largest challenge. It would definitely be a faster production to develop EQ with modern tools compared to development of original EQ, but it would need a lot of time and dedication between many experienced developers (who likely work full time engineering cool stuff for cool amounts of money) to get the ball really rolling.

But if you can make it happen, more power to you.

I think a smarter use of time is developing the PEQ/EQemu source, as it is in a very playable state with great contributions but always available for more development and refinement.

Imagine if we could do edits to the EQ client executable? Things like custom handshakes for network traffic, SSL encryption, improving range of valid numbers to display on client (beyond caps), etc.. the last I checked EQEMU intentionally avoids the client executable to try to stay as legal as possible, but even still, this is what I'd like to see to allow emu servers more capability.

Ensane 11-14-2013 04:56 AM

Something that could happen tho if we had our own client is we could eventually re-create our own game that captures the eq nostalgia... We got alot of the server end coding done for it with this project... Could improve it and end up with our own community built game in the end if we did get a client going.

knowom 11-14-2013 05:20 PM

Quote:

Originally Posted by Ensane (Post 225950)
Something that could happen tho if we had our own client is we could eventually re-create our own game that captures the eq nostalgia... We got alot of the server end coding done for it with this project... Could improve it and end up with our own community built game in the end if we did get a client going.

That's pretty much what every MMO company has done basically just they've kept it all closed source and proprietary.

Tyen05 11-16-2013 09:43 PM

Entire titanium assets will be up for download soonish.

Assets are ezpz to put into unity and we are mainly focusing on the initial connection between eqemu and unity

rhyotte 11-17-2013 06:44 PM

This is sounding very promising...!

Tyen05 11-18-2013 09:20 PM

Thanks bro.

rhyotte 11-20-2013 01:04 AM

OpenSuse 13.1
 
I am going to install OpenSuse 13.1 tomorrow and kick the tires so to speak. Their Open Build Service looks very promising. Point being... this Unity // open client is something I would be only too happy to try to contribute to. I am not a coder, but I will see what I can do for packaging up OpenSuse 13.1 builds etc...

I would also be willing to put work into a User Interface basic "mod" if such a thing would be of interest.

One of the things about OpenSuse 13.1 that is of interest to me is that this will be supported for 3 years :)

Gary

Tyen05 11-20-2013 10:06 PM

Not sure what the correlation between Unity & OpenSuse is, but if you want to contribute jump into the source I provided on eqbrowser.com and mess around a bit.

Any work connecting Unity to Eqemu source is appreciated.


The GUI we will be using is a plugin called NGUI that I have yet to purchase.

I currently have eqbrowser on a crowdfunding platform so I can raise funds to purchase a few pieces of software/plugins.

Shin Noir 11-21-2013 12:59 AM

I own NGUI, but it goes against it's copyright to release it on an open source project...
If you close the source to only people you give permission to, I could contribute my copy of NGUI.

Shin Noir 11-21-2013 03:38 AM

I took a few minutes playing around with the eqbrowser, seeing how stuff is being done. Since sounds and animations are interesting, wrote a quick mouse raycaster thingie and now you can click stuff.

@ensane I would love to help with the EQEMU/browser support, I just know I don't have enough time due to RL projects.

Here's that demo. (I forked the project and pushed any changes I did)
http://gigaplox.com/eq/web.html

Tyen05 11-21-2013 05:30 AM

Any help on networking is valuable. I plan on purchasing NGUI way later.


Lol at your build. The NPCs were a good touch, and lol @ dark elf doing a human monk animation with keypress 6. Some hilarious wiggle arms.

Tyen05 12-02-2013 07:23 PM

Update:

New assets incoming soon, this includes another pass of the NPCs as there are more heads and textures that need to be added.

As shown in Shin's build there were some textures missing, so that's going to be fixed.

More info on this round of Assets soon.

Tyen05 12-08-2013 11:43 AM

ECOMMONS example - textures, texture maps, zone model, object models, object Locations via XML

Models in .x format - I use http://mofo.pns.to/wibs/#5 to import .x into 3ds max


http://eqbrowser.com/misc/ecommons.rar


http://oi42.tinypic.com/2lj5eog.jpg

sereal 12-12-2013 05:39 PM

A lot of the work could be mitigated by using an already established opensource client.
One example would be "Ryzom" http://www.ryzomcore.org/ One of the interesting things they did was release ALL of their games assets under the CC license.

Worldforge is another one... http://www.worldforge.org/

I mean don't reinvent the wheel guys.

I'll also say that I think there are some issues with unity and linux. The main one that comes to mind (I could be wrong) is that development can't be done on linux you can only target binaries for linux.

Tyen05 12-12-2013 07:02 PM

-Importing EQ assets and having the client communicate with an Eqemu server has to happen regardless of what we use.
-We are using EQ assets only.
-Both of those clients look like they don't run in a browser.
-Id rather use a platform that is becoming the standard for game development which has employees and updates.

-I don't believe the phrase "reinventing the wheel" is applicable when saying "Move from Unity to some other platform."

sereal 12-13-2013 02:57 PM

Quote:

Originally Posted by Tyen05 (Post 226763)
-Importing EQ assets and having the client communicate with an Eqemu server has to happen regardless of what we use.
-We are using EQ assets only.

Agreed. Though there are advantages in regards to having alternate free to distribute and modify assets. Someone else might be more qualified to discuss the legality of distributing the EQ client assets (and effectively running it in the browser is doing that)

Quote:

Originally Posted by Tyen05 (Post 226763)
-Both of those clients look like they don't run in a browser.

Unity browser extension does not run in linux (as far as I can tell). The advantage of the browser is portability and what you're proposing is not portable. Technology like http://threejs.org/ is far more portable.

Quote:

Originally Posted by Tyen05 (Post 226763)
-Id rather use a platform that is becoming the standard for game development which has employees and updates.

That's arguable. Unity has a indie following for sure. Ryzom has employees and if you bothered to look at the technology at all you would see a very active reop https://bitbucket.org/ryzom/ryzomcore/commits/all

Quote:

Originally Posted by Tyen05 (Post 226763)
-I don't believe the phrase "reinventing the wheel" is applicable when saying "Move from Unity to some other platform."

Of course it is applicable. You are doing the work other platforms have already done. It's not like i'm says to use say a techX engine.

Going with unity means you exclude certain developers. Specifically any linux developers.

Regardless it's not my project. I can understand why someone familiar with unity might want to stick with it instead of learning something new. Maybe I misinterpreted the reasons behind the project.

I had mostly assumed this was to allow the EQ client to be run on platforms other than ms windows.

Ensane 12-13-2013 03:28 PM

Actually Unity does compile to Linux now and unity is far more powerful then Ryzom and will save alot more time with a better pipeline for importing and using are from eq too being able to code and test systems.

Anyways, im working with the EQ browser project now as well and im working on a UI system to load EQ's ui .xml data and recreate EQ's ui within Unity.

We are also working on getting a simple connection to authenticate to and from eqemu and unity.

There should be alot of progress made in the comming weeks, as this develops we may need more help. Right now it would be kind of EQEmu to release us a few of there source files so this process can speed up =P

sereal 12-13-2013 03:49 PM

Quote:

Originally Posted by Ensane (Post 226784)
Actually Unity does compile to Linux now and unity is far more powerful then Ryzom and will save alot more time with a better pipeline for importing and using are from eq too being able to code and test systems.

Unity will compile. The web browser thing does not (a quick google showed that apparently they plan on releasing a plugin for linux, but the requirement for a plugin is broken one)

I haven't actually looked too deep into Ryzom so I can't really say one way or the other. Unity is certainly more flexible as a general purpose engine.

Quote:

Originally Posted by Ensane (Post 226784)
Anyways, im working with the EQ browser project now as well and im working on a UI system to load EQ's ui .xml data and recreate EQ's ui within Unity.

We are also working on getting a simple connection to authenticate to and from eqemu and unity.

There should be alot of progress made in the comming weeks, as this develops we may need more help. Right now it would be kind of EQEmu to release us a few of there source files so this process can speed up =P

What files? EQEmu code is completely available. https://github.com/EQEmu/Server

If you mean the loginserver crypto stuff - that should be released to the public. I still have never received a clear answer to why it hasn't been. That's another discussion though.

sereal 12-13-2013 03:51 PM

on a side note, I take it this isn't the correct git anymore? https://github.com/eqbrowser/EQBrowser only one commit from 6 months ago.

rhyotte 12-13-2013 08:15 PM

That is a bummer...

Tyen05 12-13-2013 11:12 PM

Quote:

I haven't actually looked too deep into Ryzom so I can't really say one way or the other.
Ryzom is a joke compared to Unity. This is a Unity thread.

Quote:

Someone else might be more qualified to discuss the legality of distributing the EQ client assets
I don't care

Quote:

Unity has a indie following for sure
Unity has received over $17 million in Venture Capital and has more corporate partnerships than any game development platform on the market.

Quote:

You are doing the work other platforms have already done
Ryzom has not successfully connected to Eqemu nor does it have EQ's assets nor does it run in a browser. Therefore what you said is false.

Quote:

I had mostly assumed this was to allow the EQ client to be run on platforms other than ms windows.
Our domain is eqBROWSER, therefore it is safe to assume it will be for the BROWSER.

Quote:

only one commit from 6 months ago.
That is the correct RELEASE git.

You are most likely not going to see a public repository of non-stable or questionable source linked on Eqbrowser.com. When a big milestone is reached, the git is updated, which contains big plays.

rhyotte 12-14-2013 12:27 AM

Running linux here... no browser plugin. Hopefully they get the linux plugin soonish.

Tyen05 12-27-2013 04:46 AM

Update-

Basic Summary:
Besides the regular asset/mechanics grind, we can send and receive packets from Unity to an Eqemu server, but we have to do a handshake for each packet (which is our current networking issue).

Advanced Summary:
We are halfway/half-assed through setting up the EQ packet protocol checksum.

The packets are the easy part, but the protocol acknowledgement system is still unimplemented (OP_Ack) which is our current "hangup".

I've included the Prototype's Source below if you want to check it out.

http://eqbrowser.com/misc/EQLoginClient.zip

Code:

public enum EQProtocolOpCodes
    {
        OP_SessionRequest    =      0x01,
        OP_SessionResponse    =      0x02,
        OP_Combined          =      0x03,
        OP_SessionDisconnect  =      0x05,
        OP_KeepAlive          =      0x06,
        OP_SessionStatRequest =      0x07,
        OP_SessionStatResponse=      0x08,
        OP_Packet            =      0x09,
        OP_Fragment          =      0x0d,
        OP_OutOfOrderAck      =      0x11,
        OP_Ack                =      0x15,
        OP_AppCombined        =      0x19,
        OP_OutOfSession      =      0x1d
    }


drakelord 12-30-2013 02:13 PM

When you say hangup, do you mean you just haven't done it yet or are you having an active problem with it?

Edit: And the handshake issue, are you having a problem where you have to re-establish the tcp connection for every packet or something? That would be horrendous.

Tyen05 12-30-2013 04:10 PM

Quote:

Originally Posted by drakelord (Post 227214)
When you say hangup, do you mean you just haven't done it yet or are you having an active problem with it?

Both

Quote:

Originally Posted by drakelord (Post 227214)
Edit: And the handshake issue, are you having a problem where you have to re-establish the tcp connection for every packet or something?

The handshake issue was that we had to re-authenticate every time a packet was sent.

Those problems are now solved and we have the packet sequence pretty much done (sending / receiving).

The networking will be released open-source just like everything else.




We basically took Derision's EQExtractor code and tweaked it for a networking scenario instead of a packet collection scenario. Uses naez's class for sending and derision's constructor to recieve the proto packet

naezbutt 12-30-2013 04:53 PM

My sending class was just a quick prototype of a UDP client (read: it's pretty shit). It will likely need read/write threads and processing in the main thread in a design pattern that is seen a lot in the server code, so that network I/O will not lag each frame. Actual packet managers will probably need to inherit from this generic UDP client base class so that it can be reused for communications with the loginserver, worldserver and zoneserver (with a different virtual function for each, handling packet opcodes). It's got some utilities in it though that can translate C# structs into a raw byte buffer compatible with C, the Crypto API .dll symbol imports are working (though we still need embed it as a resource or something so it can be loaded by the web client), and I'm told Secrets has the CRC16/32 checksums working now too. Secrets is working on tying the infrastructure together.

It's still kind of a clusterfuck right now but once we get through to the breakthrough point of this network backend and can reliably commmunicate with the server, we should be able to rapidly make progress on a ton of features like tracking movement, attacking, commands like /who and /con etc, adding spawns/other players, and some of the more basic spells like heal and nuke.

drakelord 12-31-2013 10:07 AM

I'm looking forward to this project simply because it'll make porting custom content easier. EQEmu is such a robust server solution in it's current form. It'd be nice to see it used for more diverse situations.

Tyen05 02-11-2014 12:45 AM

Update:

Secrets has generously offered to create an open-source way for developers to create custom clients to connect to an Eqemu server.

I don't believe many will understand how legendary this will be for actual custom client control, but this is a big deal. Secrets will be going down in EQ history as the person that allows any developer to have complete client customization for EQ.






Naez has started with Unity Gameplay Mechanics in relation to the 450 op_codes on the Eqemu server.

For example, you feign death in the game, and the server knows your feign death.






Tyen/Salty is continuing asset implementation into the Unity Engine, starting with Ecommonlands.

Ecommons object XML (rotation, scale, location) into Unity. (this)







Requiem is "thrashing" the server code and also making it more customizable in-game by putting "things" in the database.

Example; having a database editor in-game with additional options such as waypoints and spawns to customize your server.

Secrets 02-11-2014 07:52 AM

Let me make it clear Salty: As long as you are wanting to attack Project 1999 and EQEmulator servers, you are considered too mentally unstable to assist in any projects.

If anything is done by myself, it will be open sourced so you could benefit from it. I am not 'working' for you, I am working for everyone.

image 02-11-2014 11:23 AM

http://2.bp.blogspot.com/-UUBBVvfBUc...n-bush-gif.gif

Tyen05 02-11-2014 12:15 PM

Quote:

Originally Posted by Secrets (Post 228228)
If anything is done by myself, it will be open sourced so you could benefit from it. I am not 'working' for you, I am working for everyone.

Exactly how I stated it in my post, and I appreciate your continued contribution towards Open-Source EQ development.

Tyen05 02-12-2014 05:30 PM

Quote:

Originally Posted by Secrets
you are considered too mentally unstable to assist in any projects.

I'll bite.

You may feel I'm "unstable" because I like to demonstrate server-related problems, but the EQEMU code-base is becoming more stable due to what the EQBrowser team found and the information I have provided EQEMU developers. Everyone who has played any Emu server knows things don't get done unless you generate attention.

I have yet to see any asset extraction tool (besides the one we created) that is able to do Models, Animations, Textures, Mats, & XML rot/scale/loc all at once.


I am assisting & contributing openly in custom client development, and have made huge strides, are you?

demonstar55 02-12-2014 05:40 PM

How to correctly report crash bugs with opcodes: Make a post with which opcodes can be used and how. If you want to provide a proof of concept crash plugin, send the source to one of the devs. If you want to include a tiny snippet, I personally have no problem, but some of the other devs might not.

How not to report crash bugs: Provide a compiled plugin in a public forum without source and not mention which opcodes cause problems.

Note: I like open disclosure on these things, but making it extremely easy for anyone to just grab the plugin and cause havoc is the wrong way to go about it. Calling devs names is also not a good thing. The thing is, more of the problems you've guys found were fixed because of the attacks you performed on servers, not you reporting them responsibly.

Tyen05 02-12-2014 05:48 PM

Quote:

Originally Posted by demonstar55 (Post 228256)
Make a post with which opcodes can be used and how. If you want to provide a proof of concept crash plugin, send the source to one of the devs. If you want to include a tiny snippet, I personally have no problem, but some of the other devs might not.

I have done what you described, yet the information is hidden from the public, as is anything that could make the project more stable for anyone starting a server.

It's basically the main problem with EQEMU "open-source development."

You want to gather anyone who has the time and expertise, yet keep it hidden from anyone who could contribute.

It's like a frat or sorority. Only the "cool" kids run the stable code, while everyone else is left in the dark.


All times are GMT -4. The time now is 09:38 AM.

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