Log in

View Full Version : Request for Review of P99 Source


quido
02-04-2014, 06:00 PM
I am cordially requesting that Project1999 open up the core of their source to review from the community.

It seems that every time something gets fixed or changed with regards to the source, another bug or two pops up. Right now the ghosting and desync issues are so severe that I simply cannot believe this hasn't mandated emergency action with the highest priority.

I understand that you devs consider the source proprietary and don't want to release it, but I ask you - what are you really accomplishing? The real work on P99 is in the database - I'm not sure why you think guarding severely broken code is that worthwhile of an endeavor. You wouldn't even need to release it all - you could leave out the few parts that actually are innovative new code and not just stock EQEmu made worse by amateur developers.

Rogean is busy. The other devs are busy. Why not share some of the burden with capable neckbeards like myself and others who have a shot at fixing this sort of thing with minimal effort from the staff? It is appalling how clunky gameplay has become on P99, and I really just want to see a server that operates smoothly with as few bugs as possible.

Please share!

kank
02-04-2014, 07:00 PM
Maybe they'll add source-code access somewhere in the Kickstarter rewards...

Exmo
02-04-2014, 07:05 PM
I'd probably fork the code and contribute.

I'd love to see the code on Git.

khanable
02-04-2014, 07:10 PM
Yea desync has been a fatherfucker lately

loramin
02-04-2014, 07:14 PM
As a developer myself, I feel very strongly that developers should be free to do whatever they want with their own code. End of story. So, if Nilbog et all want to keep their source closed, I firmly support that position, and I'd argue that no one should give them any flack for it.

That being said, open source is what "all the cool kids" are doing nowadays. I believe most projects could benefit from open sourcing, and that includes Project 1999. Just imagine how many bugs would get fixed if it all it took was a pull request.

Plus, since P1999 isn't for-profit (and the usual reason to keep code private is to profit from it), I'm honestly not what the motivation to keep it closed is. I don't mean that as a dig against them; I mean I'm genuinely curious, if one of them wouldn't mind taking the time to explain.

But again, Nilbog and the other developers put all the hard work in, so they don't owe me or anyone else an explanation, and if they want closed source then more power to them. Even if the entire reason was "I hate the word 'open'", I would still support them 100%.

Oh, and I say all this as someone who has been trying to help the dev team for awhile (but for various reasons, such as me putting my application in the wrong spot, I have yet to hear back). I am genuinely willing to help with my L33T coding skillz, and if I could (ie. if the source was open) I'd already be trying to fix a bug.

quido
02-04-2014, 07:25 PM
Of course they can do whatever they want, but when you're regressing with regards to playability, it's time for action. Who cares about Velious if you're just going to repeatedly train yourself because mobs are ghosting everywhere? The previous issues of mobs teleporting, ghosting (to a lesser degree than now), and doing other dumb stuff have been obvious and well-known for over a year now (ever since they added the patch that made mobs rotate before changing directions while pathing/following), yet nothing has been done.

Help us help you.

letsallkillandy
02-04-2014, 07:29 PM
I'm a Sharepoint engineer if you need help with the site :P

NextGenesis88
02-04-2014, 07:58 PM
Yeah. My game has been pretty damn smooth previously, but now I get higher ping and tons of mobs that aren't really there. It's really a shame how much the experience degraded. I even see new players on streams who are seeing these things and mobs dissapearing and etc and they just think the servers and the code is unstable and that's just how it is here. It's by no means unplayable, but took a pretty big hit. I normally have like 36 ping too... so it's really surprising and odd to see the things that I am seeing.

Byrjun
02-04-2014, 08:04 PM
Agree, I also used to get a ping around 36, sometimes even in the 20s. Since the last patch it probably averages about 120-140, sometimes even higher. The ghosting is bad, but what bothers me mostly is when you try to zone and it just hangs forever and you have to crash the game and reload to get back in. This never happened for me over the past few months, now it feels pretty frequent, especially after dying.

It's not as game breaking as some people make it out to be, but I do miss the way the game used to run.

baalzy
02-04-2014, 08:31 PM
Any chance this is related to the higher populations? Or is it still this bad during off-peak hours? I've been lazily doing a static camp for the past week so haven't seen much problem with ghosting.

I have noticed when feign splitting a camp that the mobs don't smoothly return to the camp, instead they kinda warp back to it a few feet at a time while facing the wrong direction.

Sirken
02-04-2014, 09:07 PM
its fixed, just needs patch

Sirken
02-04-2014, 09:08 PM
and no

khanable
02-04-2014, 09:13 PM
and no

http://www.youtube.com/watch?v=XDYjSSiQdkU

Pringles
02-04-2014, 09:31 PM
and no

<3 this made me LOL for some reason, love it. Maybe because it reminds me of Archer.

Tasslehofp99
02-04-2014, 09:32 PM
will the constant crashes while trying to /camp to char select go away too?

Cynosure
02-04-2014, 09:39 PM
will the constant crashes while trying to /camp to char select go away too?

I'd like to put in a request for windowed mode crashes, too.

It seems anytime I'm in windowed mode and click outside the window for whatever reason (ie, to read, do research, or code while I meditate) the game freezes and I have to kill the process and wait a good while to log back in.

quido
02-04-2014, 10:26 PM
its fixed, just needs patch

I hope they've fixed more than just what was broken with the last patch.

if mobs started pathing correctly and stopped teleporting/ghosting, I will be ecstatic

Menaan
02-04-2014, 11:30 PM
I would comment on this topic from the view of someone new to the server within the last week. I indeed assumed this was just the norm of the server. Clunky emulation coding and low end budget server resulting in a buggy / laggy game play. But I just ignore it for the most part cause I'm having a lot of fun playing classic style eq again.

I too am a developer though. I agree the project could benefit tremendously as an open source project. I have always been a huge supporter of open source, and it generally makes things so much better when you have hundreds of people that can contribute instead of just a few with time limits.

However, due to the nature of what this particular code is, I don't know that it would be a good idea to open source it. Lots of people play this simply to play the game. If you open source it, you will suddenly have people with no interest in making it better looking at the code to find every possible bug they can exploit. Not really something that is good for the game at large.

Cyph
02-05-2014, 01:25 AM
Agree, I also used to get a ping around 36, sometimes even in the 20s. Since the last patch it probably averages about 120-140, sometimes even higher.

Being Australian, I get excited if my ping dips to 299ms...

tristantio
02-05-2014, 02:56 AM
I'm pretty sure (at least the current server source code for eqemu) is GPL, which means if any of that is reused on p99 the p99 codebase is GPL and source has to be given to anyone who requests it (as long as they've been distributed the end product - not really the case here though).

Since we're just connecting to the server and not playing a distributed game, this would not be affected by GPL (unless the project were AGPL - Affero GPL, in which case simply providing a server requires release of source code to whomever asks and uses said server).

However, I wonder if any part of the custom DLL's/distributed files that p99 provides incorporate GPL'ed code (whether GPL'ed via the eqemu server source release, or by including GPL'ed code from other GPL projects).

Edit: I'm a big fan of the AGPL myself (and use in my own projects) so if someone ends up using something I spend my time on, they can't simply close off the source by using the "service" loophole of the original GPL.

a_gnoll_pup
02-05-2014, 04:07 AM
I'm pretty sure (at least the current server source code for eqemu) is GPL, which means if any of that is reused on p99 the p99 codebase is GPL and source has to be given to anyone who requests it (as long as they've been distributed the end product - not really the case here though).

Since we're just connecting to the server and not playing a distributed game, this would not be affected by GPL (unless the project were AGPL - Affero GPL, in which case simply providing a server requires release of source code to whomever asks and uses said server).

However, I wonder if any part of the custom DLL's/distributed files that p99 provides incorporate GPL'ed code (whether GPL'ed via the eqemu server source release, or by including GPL'ed code from other GPL projects).

Edit: I'm a big fan of the AGPL myself (and use in my own projects) so if someone ends up using something I spend my time on, they can't simply close off the source by using the "service" loophole of the original GPL.

If everyone followed GPL like you are saying, every major MMO would have to distribute their code to the public because they use zlib or components of GNU.

I'm pretty sure no one at EQEmulator cares that P99 is doing what they are doing either, mainly because P99 is one of our contributors - and we're provided hosting by Rogean for PEQ, Loginserver, etc.

The DLL itself does not use EQEmulator or MQ2 code - it uses raw assembly and C++. The version that some of you have seen is an early test version made by myself that was never distributed by Project 1999. I have made both wsock32.dll and dsetup.dll versions of my test DLL that does not interact with the Project 1999 server in any way (it can't even connect), neither of which contain any code that Project 1999 or its affiliates use.

Clark
02-05-2014, 05:37 AM
Maybe they'll add source-code access somewhere in the Kickstarter rewards...

lol

Nuggie
02-05-2014, 07:37 AM
I'm not a dev, just a regular joe with another trade.

So I have two thoughts on this, keep in mind my previous statement.

#1 Keeping track of the changes that hundreds of people make would be problematic. In regards to backtracking to fix stuff that wasn't coded right.

#2 Who's to say he doesn't give out the code and someone starts antoehr server with it? Thereby losing control of the project.

I say he keeps it as is.

Samhain
02-05-2014, 08:47 AM
While many enjoy the playing atmosphere free of cheating and hacking another reason the code will not be released for review is because such would reveal the spyware that comes with the custom dll's that facilitate anti-cheating but are nonetheless illegal.

quido
02-05-2014, 08:56 AM
I'm not a dev, just a regular joe with another trade.

So I have two thoughts on this, keep in mind my previous statement.

#1 Keeping track of the changes that hundreds of people make would be problematic. In regards to backtracking to fix stuff that wasn't coded right.

#2 Who's to say he doesn't give out the code and someone starts antoehr server with it? Thereby losing control of the project.

I say he keeps it as is.

1. Obviously not just anyone can commit changes. Changes are pushed once they are thoroughly tested and approved by the real staff.

2. People can already do this. The real content of p99 is in the database, not the source. If you don't recognize the difference, you probably shouldn't be commenting here. Nuggie, you are officially on my idiot list.

While many enjoy the playing atmosphere free of cheating and hacking another reason the code will not be released for review is because such would reveal the spyware that comes with the custom dll's that facilitate anti-cheating but are nonetheless illegal.

Sensitive source such as anti-hacks wouldn't be shared. Sharing the code relating to NPC pathing and displayed animations is a bit different.

fadetree
02-05-2014, 10:07 AM
I am a developer. Open source has its benefits, but is a clusterf*ck as often as not. You need to have someone riding herd *constantly* and defending why developer a can't put special feature b in, and deconflicting changes.

JackFlash
02-05-2014, 10:10 AM
Never going to happen.

joppykid
02-05-2014, 10:10 AM
I'd like to put in a request for windowed mode crashes, too.

It seems anytime I'm in windowed mode and click outside the window for whatever reason (ie, to read, do research, or code while I meditate) the game freezes and I have to kill the process and wait a good while to log back in.
Download wineq2. This will help

Estu
02-05-2014, 10:11 AM
Guys, anyone who wants to can work towards being a P99 developer and getting source access. The first step is to work on issues for which the P99 source is similar enough to the public EQEmu source that you can fix them without having dev access. Talk to Rogean and Nilbog about it, or other devs. If you show them that you're competent and trustworthy, you can be a dev. I was going down this road for a while until a bunch of stuff came up IRL and I lost the free time to work on it - I have several unfinished projects I was working on that I can tell people about if they're interested in dev-ing.

One reason it doesn't make sense to make everything public is because it destroys what mystery there is about the game for the players. We already have a huge amount of information on how the game works on the Wiki and on old Allakhazam posts, but the moment you have access to the database and the source code, your amount of knowledge about the game increases dramatically. Once you know exactly how every single thing works, the game becomes a lot less interesting to play.

Aeolwind
02-05-2014, 10:19 AM
Sensitive source such as anti-hacks wouldn't be shared. Sharing the code relating to NPC pathing and displayed animations is a bit different.

The issue that fixed Trak's Teeth caused the ghosting issues. As Sirk said, it is fixed in an upcoming patch. The changes presented didn't have anything to do with pathing.

Currently, we use stock pathing code from EQEmu written by KLH (I think) a couple years ago. There are some improvements being made however to address a few exploits that have been brought to our attention ;). But, those had nothing to do with the ghosting issue that popped up from the Trak's Teeth fix. It didn't present itself in the test environment.

Unexpected bugs happen sometimes.

DrathMaximus
02-05-2014, 10:19 AM
I'd love to help myself (one day, not nearby future) if possible. Coding (C++ and BYOND.com) is one of the few things I know (I'm no expert at it by all means) along with severe weather forecasting (I got that aced) No clue what language EQ uses, never bothered checking - in fact I never knew there was a released source of (older?) live. While I was never a great game maker...I found that I did excel at troubleshooting mistakes lol.

fadetree
02-05-2014, 11:27 AM
Perl and c++ iirc

Estu
02-05-2014, 11:29 AM
Perl and c++ iirc

This. And MySQL database.

Haynar
02-05-2014, 11:54 AM
I fix stuff.

Sometimes fixes on complicated issues dont go smooth.

I have spent a significant amount of time working on the TT issue. Finding right balance of fix. But much is based on how client will behave. We dont have source code to client, so not all changes can predicted.

You would not believe the time spent just getting this clunky ass eqemu code to handle the user numbers we throw at it. And much is being done to prep for Velious release.

Ever seen a zone with 1000 ppl in it? Stand by!

Hopefully ghosting is fixed now.

Release source? Hah. Its very controlled access.

H

dax
02-05-2014, 12:07 PM
I fix stuff.

Sometimes fixes on complicated issues dont go smooth.

I have spent a significant amount of time working on the TT issue. Finding right balance of fix. But much is based on how client will behave. We dont have source code to client, so not all changes can predicted.

You would not believe the time spent just getting this clunky ass eqemu code to handle the user numbers we throw at it. And much is being done to prep for Velious release.

Ever seen a zone with 1000 ppl in it? Stand by!

Hopefully ghosting is fixed now.

Release source? Hah. Its very controlled access.

H



Thank you :) now if i can only hit the lotto i could donate more !

Aeolwind
02-05-2014, 12:47 PM
Ever seen a zone with 1000 ppl in it? Stand by!


Ice Clad will hit well over 1k, and the lucky few that can make it to EW will be kings.

Erati
02-05-2014, 12:58 PM
so anyone that is able to play today..

is ghosting fixed with the server reboot this morning or are we still on hold with the fix until the next 'official patch'?

baalzy
02-05-2014, 01:08 PM
I'd love to help myself (one day, not nearby future) if possible. Coding (C++ and BYOND.com) is one of the few things I know (I'm no expert at it by all means) along with severe weather forecasting (I got that aced) No clue what language EQ uses, never bothered checking - in fact I never knew there was a released source of (older?) live. While I was never a great game maker...I found that I did excel at troubleshooting mistakes lol.

afaik the eqemu code is not a release of any version of live (Sony would shut down every emulated server in a heartbeat if it were true) it's an open source project by people who wanted to create a private eq server by approximating the mechanics and implementing them in their own way.

Then the devs here branched the code, using some of it and completely gutting/rewriting other parts of it.

Tecmos Deception
02-05-2014, 01:12 PM
I fix stuff.

Sometimes fixes on complicated issues dont go smooth.

I have spent a significant amount of time working on the TT issue. Finding right balance of fix. But much is based on how client will behave. We dont have source code to client, so not all changes can predicted.

You would not believe the time spent just getting this clunky ass eqemu code to handle the user numbers we throw at it. And much is being done to prep for Velious release.

Ever seen a zone with 1000 ppl in it? Stand by!

Hopefully ghosting is fixed now.

Release source? Hah. Its very controlled access.

H

<3

loramin
02-05-2014, 01:25 PM
It's worth pointing out that open source doesn't have to be an all or nothing deal. If it was desired (and that's a big if) the devs could open source the non-controversial parts of the code, and leave the controversial bits (ie. anything that people could exploit by reading) closed source. They could even say "we won't expose any of our code, but we still use these ____ modules of the original (open source) EQEmulator code; by all means fix stuff in them and send the fixes to the EQEmulator maintainers".

This would have the benefit of ... well of not having most of the downsides people mentioned, while still leaving the possibility of "free" bug-fixes and code improvements from random contributors. And, that would include contributions of unit tests. As I'm sure all the developers here know: A) you can never have enough unit tests, and B) they are one of the only things you can really do to prevent random bugs.

I admit though, there is one valid downside that has mentioned about open source: you do need a "community manager" of some sort to accept patches and deal with the inevitable "why U no like me code?!?" fallout from rejected patches.

P.S. As I said before, none of this should be misconstrued as pressure on the devs to do anything they don't want to do with their code.

loramin
02-05-2014, 01:30 PM
However, I wonder if any part of the custom DLL's/distributed files that p99 provides incorporate GPL'ed code (whether GPL'ed via the eqemu server source release, or by including GPL'ed code from other GPL projects).


I think for the GPL to work like that the code has to be distributed, and in the case of server code it never gets distributed. This is one of the "loopholes" (if you're a Stallman fan) that GPL3 "fixes".

quido
02-05-2014, 04:51 PM
It is more than just the recent ghosting issue. Even before the TT fixes there existed a lot of issues. I'm talking about issues like this (http://www.project1999.com/forums/showthread.php?t=115991), and the issue of mobs appearing to be pathing at 2 o'clock, then teleporting 10 feet in the 9 o'clock direction from where they started, and pathing at 2 o'clock again, over and over. We have been dealing with these issues for over a year. Even though we deal with these bugs every day, nobody seems interested in fixing them. Why not let people help? I don't think you guys really have that much in the source that is that precious, and what is there you could simply not share. I think most of the source fixes on P99 are pretty obvious and you are simply doing yourselves a disservice by not throwing some of these problems at the community.

There's a lot of smart people out here.

tristantio
02-05-2014, 04:52 PM
I think for the GPL to work like that the code has to be distributed, and in the case of server code it never gets distributed. This is one of the "loopholes" (if you're a Stallman fan) that GPL3 "fixes".

Yea, that is what my post went on to mention (although I reference AGPL since it covers a bit more, AGPL3 that is) :D

If anyone wants some code to read/work on/contribute to, I have lots of open source projects on my github :p

Furniture
02-05-2014, 05:01 PM
I think benefits from releasing the source outweighs the negatives. These bugs and several others would be fixed much quicker. As quido said, the real meat of the server is the database and that does not need to be released in order for the community to fix the bugs in question.

I know the staff has been dead set on not sharing their work which is well within their rights but i wish they would consider this.

Haynar
02-05-2014, 05:13 PM
There's a lot of smart people out here.

Yes there are. And the majority who would look at the code, would be to find stuff they can exploit.

fadetree
02-05-2014, 05:47 PM
The path has been laid out in previous posts...if you want to do work to fix things, there is already a path to doing that. I suggest you take them up on it.

loramin
02-05-2014, 05:58 PM
(Mandatory pre-amble: P99 source code is the hard work of a group of individuals who have every right to do whatever they want with it, and I in no way wish to pressure them in to doing anything they don't want to with their code.)

Yes there are. And the majority who would look at the code, would be to find stuff they can exploit.

That logic has long been used to argue against open source in general (not game code specifically); just replace "exploit" with "security hole". After all, how could a project like Apache possibly be secure when anyone can just look at it's source code to find security holes?

The answer (and the reason why Apache safely runs the majority of the websites out there) is called "Linus's Law" (http://en.wikipedia.org/wiki/Linus%27s_Law). It states:

given enough eyeballs, all bugs are shallow

or more formally:

Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix will be obvious to someone.

Now of course that does depend on how many beta-testers and co-developers you have involved, but I'd be willing to wager that there are more than enough of us "good guys" (coders and testers) to more than make up for all the "bad guys" who would try and abuse the open code. In fact, my (completely un-backed up by facts) theory is that P99 would have less bugs and exploits if open sourced, not more.


EDIT: But again, it doesn't have to be an either/or thing; the devs could open source the non-exploitable parts of the code base, either as an experiment in open source or just to get the benefits of it on part of the codebase.

quido
02-05-2014, 06:00 PM
I would assume that most of the stuff you can exploit already exists publicly from EQEmu. I'm not even advocating sharing the majority of stuff - most things probably don't even merit review, though completeness is important in trying to isolate problems. The nature in which a number of these systems needing work manifest themselves makes the releasing of the source relatively harmless in my opinion. Take for instance pathing. I seriously doubt someone looking to exploit pathing will be better equipped to do so having read the source code. In fact, they would be better equipped to perform such an exploit by doing what anyone could do - simply sitting there and taking the time to see how things path, and bearing in mind an effective grid that mobs adhere to in a particular area. This code is likely independent of anything that can be realistically exploited by a player. Also consider the code relating to the disparity between broadcast mob animations (position deltas) and the reality of these mobs' positions on the server (which are then corrected upon a tick, causing the mob to teleport). I seriously doubt that anything relating to this issue is exploitable. I can, however, appreciate not wanting to share code relating to trading, tradeskills, vendors, and other systems that appear to be the likely targets of exploitation.

I fully acknowledge my own ignorance on a sysadmin level and am seriously impressed you guys manage to hold this whole thing together. I couldn't imagine trying to host near 100 static zones on a box or two, but I can imagine some of what you'd have to do to get the source to run efficiently. Nonetheless, I think the benefits of selectively releasing source to the community far outweigh the risks which can be eliminated with a little diligence.

applesauce25r624
02-05-2014, 06:11 PM
let the mystic help out, damnit!
( ^__^)V

a_gnoll_pup
02-06-2014, 03:06 AM
To all of you guys wanting an open-source P99, why not try these links?

http://www.peqtgc.com/
https://github.com/EQEmu/Server

Surely you're capable of forking these, if you weren't, why would you be making threads like this?

Pint
02-06-2014, 03:18 AM
Yes there are. And the majority who would look at the code, would be to find stuff they can exploit.

Hehe this is the first thing that went through my head when I read thread title the other day, I guess I'm a bad person

quido
02-06-2014, 03:27 AM
To all of you guys wanting an open-source P99, why not try these links?

http://www.peqtgc.com/
https://github.com/EQEmu/Server

Surely you're capable of forking these, if you weren't, why would you be making threads like this?

Reading comprehension fail

I've not said anything about open-source; clearly some things shouldn't be shared. I just want to see the bugs on p99 fixed, if not by the staff then by the community.

I have my own box already with which I mess around. PEQ isn't the same as here - many of the issues I'm talking about are p99-specific, so PEQ isn't much help.

redbug2
02-06-2014, 04:05 AM
Any chance this is related to the higher populations? Or is it still this bad during off-peak hours? I've been lazily doing a static camp for the past week so haven't seen much problem with ghosting.

I have noticed when feign splitting a camp that the mobs don't smoothly return to the camp, instead they kinda warp back to it a few feet at a time while facing the wrong direction.

No chance at all. I play off peak and try to attack shit that isn't there all the time. Fuck you early access velious pledgers.

Tongpow
02-06-2014, 04:58 AM
well on the bright side, i heard in chardok the entire train is warping and killing the puller, apparently its not every pull though ;/

this bug is doing god's work, deal with it.

Buriedpast
02-06-2014, 07:17 AM
To be fair, nearly everyone I see in chardok is fairly bad at eq.

Who repeats the same action and expects a different result for 7 hours straight. Lol at that. No consideration to move the group to pits, or just do 40mob pulls or pull in a different manner. Just continue the same for 7 hours killing he same lemmings.