Quote:
Originally Posted by Niak
Why ? any arguments ?
|
Code:
05[11:34] -Q- [#dorproject] Welcome the DoR project channel. Be friendly, have fun.
03[12:23] * Aelius is now known as Aelius|AFK
03[12:34] * Qoole (~[Only registered and activated users can see links. Click Here To Register...]) has joined #dorproject
03[12:34] * Q sets mode: +o Qoole
[12:37] <@Qoole> with regards to memleak finder, look at VLD (visual leak detector) it only works on VS though
01[14:43] <jMerliN> you shouldn't have memory leaks....
[14:51] <@Qoole> everyone makes mistakes
[14:51] <@Qoole> and "you shouldn't have memory leaks" isn't very helpful
[15:05] <raczman> what i read was:
[15:05] <raczman> 14:34 < jMerliN> I am awesome and you all suck. Bow to me.
[15:05] <raczman> or maybe my eyes played trick on me
01[15:13] <jMerliN> memory leaks are mistakes only rookies or java programmers make in C++, it's rare if you're properly managing references and pointers to have leaks, might i suggest reading on reference counting and pointer wrapping, it makes exception safe garbage collection in real-time, it's difficult to get leaks that way
01[15:14] <jMerliN> but i'm not really surprised looking at Troll, using a vector of bytes then resizing it on need (theoretically over time every buffer in the pool would be expanded to the max packet length), that design lacks a lot of foresight
[15:15] <raczman> first sentence was "I am awesome and you all suck" again. The second one was better, with some sense and a good point in it
[15:16] <raczman> you are trying to not come off as a highnose, i appreciate that
[15:16] <albator_> what are you suggesting then ? fixed size buffer with bytes array
01[15:18] <jMerliN> humor me a bit, in your tests on your emu, log the size of every packet exchanged between client & server (and inter-com packets)
01[15:18] <jMerliN> find the median, mode, and mean of those numbers
01[15:18] <jMerliN> that might point out why having a pool of very large buffers is a waste :)
[15:19] <@Qoole> question for you jMerliN, where do you work?
01[15:19] <jMerliN> but again, this is only a design problem with async write operations, which tbh, won't impact performance much until you scale beyond 7000-10000 connections
01[15:19] <jMerliN> sync operations let you do something like:
[15:19] <albator_> man, you lack of real-world programming. Optimisation is the LAST step
01[15:20] <jMerliN> this isn't optimization it heavily impacts design choices
[15:20] <raczman> in situation where we will have several proxies to load balance the network i bet we wont get past 2k per box
[15:20] <raczman> try getting more than 2k to play on a privaTe server first lol
01[15:20] <jMerliN> optimization is designing your net flow so that you have wait-free use of buffers
01[15:20] <jMerliN> so that your processors are busy as much as possible processing logic
01[15:21] <jMerliN> well tweaking anyway
01[15:21] <jMerliN> and then setting thread affinity and making your work queue busy-oriented with a scheduling algorithm to prevent sleeps and unnecessary context switches
01[15:21] <jMerliN> that level of optimization can get tedious, but what i'm suggesting isn't in that classification of changes
[15:21] <@Qoole> jMerliN, you didn't answer my question
01[15:22] <jMerliN> Qoole: i work for myself, but part-time I work at my school as an IT administrator
[15:23] <@Qoole> cool
02[15:29] * DrKane (~DrKane@78.113.255.8) Quit (Read error: EOF from client)
03[15:39] * Looking up Qoole user info...
03[16:07] * MajorPain (~pokemon.z@91.11.225.199) has joined #dorproject
02[16:30] * MajorPain (~pokemon.z@91.11.225.199) Quit (Quit)
02[16:49] * albator_ (~[Only registered and activated users can see links. Click Here To Register...].wanadoo.fr) Quit (Read error: Connection reset by peer)
02[17:29] * DaRk|WTF (~[Only registered and activated users can see links. Click Here To Register...].highway.telekom.at) Quit (Quit: 12( www.nnscript.de 12:: NoNameScript 4.02 12:: www.XLhost.de 12))
03[17:44] * stinka is now known as sTinKa
03[17:50] * Aelius|AFK is now known as Aelius
03[17:54] * Qoole sets mode: +b *!*jmerlin@*.users.quakenet.org
03[17:54] * You were kicked by Qoole (You're falling in a bottomless pit of loneliness)
I could dissect the code there for you and point out all of the bad design, errors, and common mistakes but it would require an extensive amount of time and very little good would come of it.
From my discussions with these people, they all seem to be very inexperienced with development of projects such as this. The novice level of their work is evident in the over-use and reliance upon heavy, bloated, "frameworks" and collections of libraries to perform the most basic operations that any programmer worth his salt could do in less than 200 lines of code (importing 50,000+ lines of code to replace what is easily covered with completely debugged code in 200, that is a VERY poor implementation decision and will lead to severe maintainability issues in the future).
I've got 12 years of development experience, and my own work on private emulator projects is quite extensive. It's in my best opinion that these individuals do not contain the necessary experience to make a project of the scope nor magnitude that would encompass a server emulator for a game as large as WAR, nor even for one of much simpler design. If even correct buffer handling, and networking/threading design evades them, you can be sure the use of complex data manipulation methods such as using quadtrees to track entities in the world will almost certainly be an impassable obstacle for them, to the point that they will borrow much code from existing and poor emulators such as "TrinityCore" (which is where a lot of their design idea and direction is coming from, at least in their new build).
I've dealt with enterprise level server software capable of handling loads that no one on these boards will ever likely see, and I have plenty of people on MSN from many various emulator projects bothering me about helping with "what's the best way to do this" or "can you help us figure this out" etc etc, with far more complex questions than anything this emulator contains so far, and I laugh at the very idea of a group of kids banning me from their IRC channel for pointing out major flaws in design and implementation while my help is freely available at no charge. That alone should give you a hint as to how successful this project will be.
Now, if you are interested, I will be porting my server emulation core to WAR and I'll gladly advertise the alpha here. No, I do not share my binary nor source code, however my servers are solid, stable, and of the best quality you will be seeing from any server emulators.