23:39 <+ammar2> ez 23:40 <+ammar2> I am what they call a latex professional 23:41 <+XorBoole> ammar2 amazingly tex didn't explode 23:42 <+ammar2> XorBoole: huh, doesn't that put the interpreter in a loop 23:42 <+ammar2> I would think it would 23:42 <+XorBoole> knuth was a mad genius 23:43 < Aragas> was? 23:44 <+ammar2> XorBoole: did you know that $ is used for the beggining of math because it was considered an expensive function and knuth was trying to make a joke 23:44 <+XorBoole> well, I hear he's a little tamer now 23:44 <+XorBoole> ammar2 does that also mean that variable indirection is expensive in PHP, too? 23:44 * XorBoole runs 23:44 < Aragas> :D 23:45 <+ammar2> expensive php? pftt that isn't a thing 23:45 <+ammar2> php is hyper optimized 23:45 <+ammar2> everything takes 1 cpu cycle 23:45 <+ammar2> everything. 23:45 < dav1d> 1 CPU Cycle Takes PHP :> 23:45 < dx> also reverts entropy 23:45 < Aragas> php can even run minecraft!!!! 23:46 <+XorBoole> ammar2 can you find a hash collision for sha512 in one cycle with php? 23:46 <+ammar2> XorBoole: sorry no, there's no in built function for that 23:46 <+ammar2> you should make a ticket on bugs.php.net 23:46 <+ammar2> they'll add one in that does it in 1 cycle 23:47 < Aragas> just return 0, ez 23:47 < dx> yeah the problem with the sha512 code is that it's implemented in C, not PHP 23:47 <+ammar2> fuck that's right 23:47 <+ammar2> they should rewrite all hash functions in php 23:50 <+XorBoole> so, are we using the definition where 1 cpu cycle = 1/plank time? 23:50 <+ammar2> XorBoole: what do you edit your .tex files in? 23:50 <+XorBoole> ammar2 lyx 23:50 <+XorBoole> it's like WYSWYG for latex 23:51 <+ammar2> hmm yea I'm familiar with it 23:51 <+ammar2> it was too buggy on windows for me 23:51 < Aragas> http://www.youtube.com/watch?v=8DxQCNfCVLI 23:51 <+ammar2> switched to texmaker 23:52 <+XorBoole> ammar2 lyx is foss, that's why it freaks out on wandows 23:52 * XorBoole runs --- Day changed mer. juil. 08 2015 00:07 <+ammar2> XorBoole: tex was invented on windows 00:08 <+ammar2> XorBoole: https://en.wikipedia.org/wiki/Incompatible_Timesharing_System 00:08 <+ammar2> do you still use this at your school 00:21 <+XorBoole> ammar2 nop 03:28 < winny> tex was invented on windows? 03:29 <+ammar2> god no 03:29 <+ammar2> on the thing I linked, https://en.wikipedia.org/wiki/Incompatible_Timesharing_System 03:29 < winny> yeah 03:29 < winny> i thought so :^) 03:29 < winny> btw there is a public access ITS server running on a raspi 03:29 <+ammar2> actually tex was invented on php 03:30 < winny> http://up.update.uu.se/ 03:30 <+ammar2> a php os 03:30 < winny> is it better than emacs os? 03:30 <+ammar2> php > everything 03:30 <+ammar2> so yes 03:30 < winny> that website is served by a purpose written tcp/http stack for its 03:30 < winny> ... if it loads 03:30 < winny> written in maclisp i think 03:31 <+ammar2> looks pretty dead D: 03:31 < winny> yeah sometimes it's not available 03:31 < winny> some universities' project 03:31 < winny> iirc the same uni has quite a few other servers 03:32 <+ammar2> oh apparently scheme was made on ITS too 03:32 <+ammar2> fucking scheme 03:32 < winny> neat 03:32 < winny> <3 scheme 03:32 <+ammar2> hey kids do you like brackets 03:32 <+ammar2> do you hate lisp 03:32 <+ammar2> you'll love scheme 03:32 < winny> actually scheme has brackets 03:32 < winny> r6rs 03:32 < winny> they're equiv to parens in most contexts iirc 03:33 < winny> my god archive.org is down ._. 03:34 <+ammar2> where the archive for archive.org 03:34 < winny> i'm literally going to catch file without archive.org 03:34 < winny> catch fire 03:34 <+ammar2> what do you use it for o_O 03:34 < winny> wayback machine 03:35 <+ammar2> yeah, more specific 03:35 < winny> lots of junk is either unavailable or unreliable 03:36 <+ammar2> "junk" 03:36 < winny> interestingly it saved the pandora api documentation project, as pandora has DMCA'd the wikia the api was on, but archive.org still had the documents, so we ported it to a sphinx docset 03:36 <+ammar2> I like sphinx 03:36 < winny> worked well 03:36 <+ammar2> so pandora didn't have any official API documentation? 03:37 < winny> it's all private probably under nda 03:37 < winny> all the open source clients usually refer back to the original client pianobar 03:37 < winny> or to the documentation the author also wrote 03:37 <+ammar2> oh so this is non-official api documentation? 03:38 <+ammar2> that's weird 03:38 < winny> http://6xq.net/pandora-apidoc 03:38 <+ammar2> why have an API if you're not gonna document it 03:38 < winny> it's pretty common outside of the giants i think 03:39 < winny> not to mention pandora has to keep certain agreements with the record companies that the music isn't gunna get pirated 03:39 < winny> (it's pretty easy to download the tracks) 03:40 < winny> sorta like how there is wiki.vg for mc 03:41 < winny> https://web.archive.org/web/20130208114946/http://up.update.uu.se/ 03:42 < winny> i wonder if my account is still on there 08:40 < PierreC> Hello. Is anyone online right now? 08:43 < PierreC> I'd like to know is which packet is used to send to other players the current player's position on the server 08:44 < PierreC> http://wiki.vg/Protocol#Player_Position_And_Look would have been my first guess but it only sets the location of the player the packet is sent to 08:45 < PierreC> http://wiki.vg/Protocol#Spawn_Player works in live tests, but I am assuming that it isn't the right packet for properly sending movement 08:46 < PierreC> The entity look/relative move/look and relative move packets don't have the correct fields 08:46 < PierreC> if they are the correct packets to send player movement, what are the fields? 08:47 < PierreC> Thanks. 11:17 < rom1504> and he left 11:17 < Not-48e3> [wiki.vg] Edit by Fenhl to Protocol -> http://wiki.vg/index.php?title=Protocol&diff=6690&oldid=6687 11:31 < Not-48e3> [wiki.vg] Edit by Fenhl to Protocol -> http://wiki.vg/index.php?title=Protocol&diff=6691&oldid=6687 11:57 < gurun> LZ4F did anyone consider that for MC? 11:58 < gurun> zlib sucks 12:30 < Fenhl> delete http://wiki.vg/Units_of_Measurement y/n? 12:34 < Not-48e3> [wiki.vg] Edit by Fenhl to Protocol -> http://wiki.vg/index.php?title=Protocol&diff=6693&oldid=6691 12:43 < gurun> Fenhl, the datatypes page is pretty covering 13:06 < Fenhl> gurun: yeah, and I added a definition of meter to [[Protocol]] just to be sure 13:07 < gurun> :-) 13:07 < gurun> i should do a similar page for MCPE 13:15 < Not-48e3> [wiki.vg] Edit by Fenhl to Protocol -> http://wiki.vg/index.php?title=Protocol&diff=6694&oldid=6691 14:19 < shoghicp> gurun: there is something like that :P 14:19 < gurun> well, it's on the old protocol page if that is what you mean? 15:45 < SopaXT> Hi! 16:55 < SopaXT> Hi! 16:55 < SopaXT> Hi aragas 16:55 < Aragas> SopaXT hi 16:56 < Aragas> Want something? :D 16:56 < SopaXT> No, thanks! 16:57 < SopaXT> Do you tinker with MC too?! 16:57 < SopaXT> And your whois suggests that ты (вы, извините) - тоже русский! 16:59 < Aragas> Yup. Have wrote own networl-protocol implementation and currently trying to to do something that will look as a client 16:59 < SopaXT> Oh, nice! 16:59 < Aragas> Yep, i'm a russian too :DD 16:59 < SopaXT> Wanna check out my new project? 16:59 < Aragas> gimme link 17:00 < SopaXT> http://github.com/SopaXorzTaker/gamecheck 17:01 < SopaXT> Check it out! It is a webapp 17:01 < SopaXT> There is a json api 17:04 < Aragas> looks interesting, but i think that you should structurize packets that you use. Will be much easier to switch to new versions 17:04 < SopaXT> I already did something like 17:04 < SopaXT> (I think, lol) 17:07 < SopaXT> I have got BTC/LTC donation button on my site. It is profitable in either I write good code and people like it, or I write bad code, people hate it and donate for me to learn Python 17:08 < Aragas> i mean like different objects. Never used python, but i think it should have something similar to c-like structures 17:08 < Aragas> is it in russian? 17:09 < SopaXT> Yep. Russian and English. 17:10 < SopaXT> SopaXorzTaker.github.io 17:10 < SopaXT> Donation buttons are on the english page only 17:11 < SopaXT> You know, BTC is banned in Russia 17:14 < dav1d> why? 17:14 < Aragas> Seems like they have not really banned it 17:15 < Aragas> dav1d: mostly cause they didn't know what to do with it, if i remember correctly 17:15 <+SinZ> dav1d: does russia need a reason to ban stuff 17:16 < dav1d> :p 17:16 < Aragas> why not. it's always funny 17:33 < Aragas> for me bitcoin-like stuff is still exotic, i mean, it isn't really needed. As a russian, i could safe ~30% of my money, because of this crimea drama. That's the only use i see for now. 18:22 < rom1504> Aragas: minecraft is also "not really needed" 18:23 < barneygale> to do what? 18:27 < rom1504> context free 20:29 < Fenhl> do we have any documentation about how “Open to LAN” works? 20:29 < Fenhl> if not that would be a nice addition to the wiki 20:30 <+ammar2> do people actually use that 20:30 <+Dinnerbone> Lots. 20:32 < rom1504> I know that it doesn't work exactly like the vanilla server 20:33 < rom1504> which is kind of unexpected 20:33 < Fenhl> well the obvious usecase would be advertising a local server by putting it in people's server lists, pretending to be a LAN world 20:34 <+Dinnerbone> The main difference is that auth is relaxed 20:34 <+Dinnerbone> Because its primary use is multiplayer without internet 20:34 < Fenhl> is it like online-mode=false or a different kind of relaxed? 20:35 <+Dinnerbone> It does the auth dance and then if it fails, lets them in anyway 20:35 <+Dinnerbone> So they can have their skin/etc if it works 20:35 < Fenhl> ah 20:36 < Aragas> So server can handle both encrypted and non-encrypted mode on the same time? 20:36 < Aragas> I they success with auth 20:36 < Fenhl> yeah that makes sense. I've been looking around a bit about how the advertising works and the closest thing I've been able to find is http://www.minecraftforum.net/forums/mapping-and-modding/minecraft-tools/1264112-mineannouncer-announce-any-server-as-a-lan-world 20:38 < Fenhl> I'm not familiar with multicast but if anyone knows how to document it that would be nice 20:38 <+XorBoole> TIL lan doesn't require auth 20:52 < Aragas> I think a have asked somethink wrong, but i'm not sure where i failed 21:09 < PierreC> Hello. Asking the same question as last night: which packet is used to send player movement? 21:10 < PierreC> Currently using Player Spawn to update position 21:10 < PierreC> I am not sure if this is the right packet, and I'm attempting to use Entity Relative Move Look to move the player 21:11 < PierreC> However, either I am doing it wrong or I don't encode the correct fields, because the client doesn't accept the packet 21:18 < Aikar> will a skin url ever change if player doesnt change skin? 21:19 < Aikar> trying to fix issue with player heads not stacking due to the timestamp value being different 21:28 <+Thinkofdeath> Aikar: shouldn't 21:28 <+Thinkofdeath> since the url is a hash of the skin 21:35 < Aikar> ok cool, so make timestamp static on game profiles should fix the issue 22:09 < Fenhl> PierreC: are you talking about *the* player or a different player? 22:13 < Fenhl> PierreC: because if you want to move the player you need to use Player Position And Look, and if you want to move a different player you need to use Entity Relative Move or Entity Teleport, depending on the distance 22:13 < Fenhl> if I'm not mistaken 22:14 < PierreC> ah 22:14 < PierreC> alright 22:19 < Fenhl> PierreC: and next time you have a question, you may want to stick around a bit longer, maybe install a bouncer. Otherwise people can't answer your questions 22:19 < PierreC> I don't use IRC much unfortunately 22:19 < PierreC> thanks for the tip though 22:28 < PierreC> hm 22:28 < PierreC> I've tried Entity Relative Move Look 22:28 < PierreC> however the player appears to spawn in the void, fall, stop, and then spasm 23:13 < Not-a8a6> [1.8-Models] drXor pushed 1 commit to master [+7/-0/±13] http://git.io/vqojH 23:13 < Not-a8a6> [1.8-Models] drXor 5f3667d - Begin the Great Tool Refactor. 23:24 < Dhruv0> Is the serverbound Client Status packet sent before or after the world has been sent to the client 23:35 <+XorBoole> Aikar I believe not 23:35 <+XorBoole> though I think db et al can give you a better answer 23:40 < Fenhl> PierreC: which packet are you referring to? There is none the wiki calls Entity Relative Move Look 23:52 < Dhruv0> Let me rephrase my question, when is the Client Status sent on login? --- Day changed jeu. juil. 09 2015 00:07 < Fenhl> good question, that seems to be missing from the FAQ 00:09 < Dhruv0> Yeah :| 00:10 < Dhruv0> The login sequence is out-dated a bit too 00:10 < Dhruv0> (The packet ids at least) 00:10 <+ammar2> to be fair the FAQ explicitly mentions that bit may be outdated :3 00:11 < Dhruv0> Yeah ;p 00:12 < Dhruv0> It says "Initial Spawn", should I assume that be after I spawn the player? 00:12 < Dhruv0> My bad, I mean "Request stats" 00:18 < Fenhl> that FAQ though 00:18 < Fenhl> > We have a script 00:18 < Fenhl> > red link 00:18 <+XorBoole> Fenhl "NYI" 00:18 < Fenhl> :D 00:19 <+XorBoole> or, equivalently, "WONTFIX" 00:20 < Dhruv0> So I tested the Client Status packet very poorly (So don't take my results seriously) and it seems it is sent before or during the chunks 00:33 < Not-48e3> [wiki.vg] Edit by Fenhl to Protocol FAQ -> http://wiki.vg/index.php?title=Protocol_FAQ&diff=6695&oldid=5470 00:35 <+ammar2> so undefined behaviour then :3 00:35 <+ammar2> send it whenever pftt 00:45 < Not-48e3> [wiki.vg] Edit by Fenhl to Protocol FAQ -> http://wiki.vg/index.php?title=Protocol_FAQ&diff=6696&oldid=5470 00:45 < Fenhl> so I just got a captcha because I added a link to this channel in the Protocol FAQ article 00:46 < Fenhl> the captcha was, what is the name of our IRC channel? 00:50 < Not-48e3> [wiki.vg] Edit by Fenhl to Protocol FAQ -> http://wiki.vg/index.php?title=Protocol_FAQ&diff=6697&oldid=5470 01:01 <+XorBoole> Fenhl what is the name of our IRC channel? 01:02 < Fenhl> I don't know, I'm a spambot 01:02 <+XorBoole> you seem awefully quite for a spambot 01:02 <+ammar2> is it devmc? 01:03 <+XorBoole> no, devsmc. pleb 01:03 < Fenhl> JOIN NOW, RECEIVE COOKIES ===> #mcdevs <=== 01:06 <+XorBoole> pls join my server 4 drop party 01:06 <+ammar2> I am from planet mc devs give root 01:06 <+XorBoole> 127.0.0.1:25565 free op and admin 01:06 <+XorBoole> pls join 01:08 < Gjum> haha 01:09 < Gjum> mine is better, find it at ::1 01:12 * mniip ddoses XorBoole's server 01:14 <+XorBoole> Gjum I are jelly. nice ip 01:14 <+XorBoole> but xors-server.no-ip.org is betur 01:14 <+XorBoole> I hav a real ip 01:15 <+ammar2> that's not a real ip 01:15 <+ammar2> real ips have curves 01:17 < Gjum> ^ 01:17 < Gjum> 3 at least 01:28 < Dhruv0> So I have another question 01:29 < Dhruv0> I'm sending Set compression with -1, but the client crashes due to the -1 01:29 <+ammar2> lolwat 01:29 < Dhruv0> According to the wiki, -1 should mean "No compression" 01:29 <+ammar2> whats the error on the client side 01:30 < Dhruv0> java.lang.ArrayIndexOutOfBoundsException: -1 01:31 <+ammar2> well that functionality may have been removed, no clue 01:31 < Dhruv0> Oh 01:31 < Dhruv0> Ok 01:31 < Dhruv0> Bye for now I guess 01:31 <+ammar2> wait 01:31 <+ammar2> fuck 01:32 <+ammar2> I was gonna tell him sending a really high threshold would serve the same purpose 01:42 <+XorBoole> ammar2 what does 0 do? 01:42 <+XorBoole> compress all the things? 01:43 <+ammar2> well I'd imagine its packet size > compression threshold 01:43 <+ammar2> and everything is > 0 01:43 <+ammar2> so it would compress everything 01:44 * XorBoole deflates ammar2 01:48 <+ammar2> XorBoole: why did zlib choose deflate/inflate anyway 01:49 <+ammar2> surely that wasn't more popular than compression/decompression 01:49 < gurun> i'm giving any kid who ask for OP full creative. And then they are in chock when they are allowed to use Lava and Water as much as they want and spawn 100's of mobs. And then it turns boring when the server doesn't crash, but their clients do. 01:52 < Aragas> that's cold blood 01:52 < gurun> and then you have the pathalogical griefes. They have to grief even if griefing is allowed. And they act like it is griefing .. and simply don't know what to do when no one cares. 01:52 < gurun> or the guys coming in, using hacks .. and it's allowed. 01:53 <+XorBoole> lolwut 01:53 < gurun> it's so funny. They simply don't know how to behave. 01:53 < Gjum> crazy 01:53 < Gjum> where is that? 01:53 < gurun> So instead .. they end up PVP'ing eachoter for 2 hours with a game of 3 min kill-em-all k/d ratio counter. 01:53 < gurun> it's so funny 01:54 < gurun> it's on the test.inpvp.net server (it's running inside my visual studio) 01:54 < Gjum> wait what? 01:54 < Gjum> and it doesnt crash on all the mobs/lava flow/...? 01:55 < gurun> uh, no? 01:55 < gurun> why would it? 01:55 < Gjum> well it crashes clients 01:55 < gurun> yeah, after around 500 players (entities) .. or when the rendering gets really difficult, it crashes the clients. 01:55 < Gjum> ah k 01:57 < gurun> i had them wreck a PVP map with a wall around it. Fill it up with lava like a pool. They went on it like crazy for like 15 min .. and then it wasn't fun anymore. 01:57 < gurun> i always said that .. allow hacks. Just make sure that you reward fair play. 01:58 < gurun> so fly all you want .. but health only regenerates on the ground. 01:58 < gurun> etc 01:59 <+XorBoole> gurun you sound like some kind of crazed psychologist 01:59 < gurun> i'm a parent 02:00 <+XorBoole> Gjum this might amuse you: picture a java assembly language that is also a lisp, with lisp macros 02:00 <+XorBoole> gurun close enough 02:01 < gurun> guess so. I've observed my son .. he can also go into my worlds .. and kill me for nothing, for hours. 02:02 < gurun> i have absolutely no idea what makes these kids tick. 02:02 < gurun> but i'm sure it isn't boobs 02:02 <+ammar2> XorBoole: (imagine(what (language (? 02:02 <+ammar2> did I mention (((()(())(( 02:03 < gurun> Go? 02:03 < Gjum> mmh, now I want to eat fish somehow... 02:03 <+XorBoole> ammar2 (def (public) foo (void) ((new java.lang.Exception) (throw))) 02:03 <+ammar2> good god 02:03 < gurun> wtf is that? 02:04 <+XorBoole> where new and throw are the new and athrow jvm instructions 02:04 <+XorBoole> obviouslly 02:04 <+ammar2> gurun: lisp, scheme etc are notorious for having too many brackets 02:04 <+ammar2> we were making fun 02:04 <+XorBoole> agreed lisp is pretty silly. but it makes macros super easy to implement 02:04 < gurun> i don't remeber lisp anymore. The only thing i remeber about it is that i forgot it very quickly 02:04 <+XorBoole> which is the whole point of the language 02:04 <+XorBoole> super-low-level asm generation with macros 02:05 <+XorBoole> you could have a this macro that expands to (load-obj 0) for example 02:05 <+ammar2> that's literally what it was designed for anyway 02:05 <+XorBoole> you could have a macro to generate a lambda 02:05 <+ammar2> or one of the prinicpal focuses anyway 02:05 <+XorBoole> hence why I'm using lisp =) 02:05 <+ammar2> the other focus was to make it ugly as butts 02:05 < gurun> lisp .. was that functional or logical? 02:05 <+ammar2> :^) 02:05 <+ammar2> uhh kinda functional 02:05 < gurun> ok, so only one line allowed :-) 02:06 <+XorBoole> but lisp just writing the ast by hand! 02:06 <+XorBoole> well, kind of 02:06 <+XorBoole> a lot of the constructs are lists 02:07 < gurun> well, that's the def of functional, isn't it .. all is lists .. in one line, or you didn't think hard enough about it. 02:07 <+XorBoole> a method definition takes a list of modifiers, a name, a signature (a list of types ending in the return type) and list of opcodes 02:07 <+ammar2> lisp is literrally lists 02:07 < gurun> like ml 02:07 <+XorBoole> s/lists/ lists and atoms 02:07 <+ammar2> the name comes from list processing 02:07 <+ammar2> not even kidding 02:08 < gurun> i've never encounterd languages like that in the real world. 02:08 < gurun> the closest to "functional" i've ever seen is probably xslt 02:08 <+XorBoole> I thought it meant Lots of Incredible Stupid Parenteses 02:08 < gurun> eh 02:08 <+XorBoole> gurun there's some crazy fuckers running around using clojure in ldoruction 02:08 <+ammar2> XorBoole: that is also incredibly accurate 02:08 <+XorBoole> hell twitter used to use scala in production 02:08 <+XorBoole> now they use ruby which is a joke of a language 02:08 <+XorBoole> smalltalk is better than ruby in all ways 02:09 < gurun> ruby was seriously very popular .. only in the states. 02:09 <+XorBoole> ruby is only popular because of rails 02:09 <+XorBoole> you should use a real language, like haskell 02:09 <+XorBoole> with a modern, civilized compiler that can elide entire loops 02:10 < gurun> nah,i'm from pascal in the beginning. That's my home-language. 02:10 <+XorBoole> also. 02:10 < Aragas> gurun: i can try and connect a lot of clients to your server 02:10 <+ammar2> btw here's an amazing read on lisp if you have the time http://www.defmacro.org/ramblings/lisp.html 02:10 <+XorBoole> #define BEGIN { 02:10 <+ammar2> gurun: he's threatening a DDoS 02:10 < gurun> Aragas, it's MCPE .. so i don't think so. 02:10 <+XorBoole> ever seen the bash source? 02:10 < Aragas> oh, okay. have still some bugs with mpce 02:10 < gurun> Aragas, and i have an emulator already .. doing just that. 02:10 <+XorBoole> ammar2 http://www.loper-os.org/?p=42 02:11 < gurun> called "service killer" for a reason.. 02:11 <+XorBoole> wait there's PE emulators for PC? 02:11 <+XorBoole> where do I find this 02:11 < gurun> no, it's a code emulator 02:11 <+XorBoole> oh. =< 02:11 < gurun> runs the players as .. bots kind of. 02:12 < gurun> does all the right "bad" things to a server. 02:12 <+XorBoole> been wanting to check out PE ever since me and shoghi giggled like little girls at pocketmine's pre-startup 02:12 < gurun> XorBoole, end of month you'll have PE on windows anyways.. 02:12 <+XorBoole> gurun I have a mac 02:13 <+XorBoole> do I look like some kind of wandows pwasant to you? 02:13 < Aragas> wandows iz life 02:13 < gurun> serously, that have to be YOUR problem :-) 02:13 < gurun> but i'm sure as always that windows 10 will also run best on mac 02:13 <+XorBoole> soon enough everything will be PE protocol and I'll never have to worry about it 02:14 < Aragas> hope not -_- 02:14 <+XorBoole> win10 is evidence ot that 02:14 < gurun> yeah, well . 02:14 <+XorBoole> PC will either peter out or merge with PE 02:14 < gurun> the userbase is a "bit" bigger on PE anyways. 02:14 <+XorBoole> PE also has a better protocol 02:14 * XorBoole runs 02:15 < Gjum> does it? 02:15 < Aragas> shots fired 02:15 <+XorBoole> so I'm told 02:15 < Gjum> whats the main differences? 02:15 < gurun> XorBoole, i completely agree.. but we seem to be the only ones thinging that. 02:15 < Aragas> tcp\udp 02:15 < Gjum> only udp? 02:15 < gurun> 125.000.000 messages on my laptop 02:15 < Gjum> or are important things like inventory still tcp? 02:15 < Aragas> no magic varints 02:15 < gurun> i can't do that on TCP 02:15 < Aragas> pure udp 02:16 < Gjum> how does it handle dropped clicking packets? 02:16 < Gjum> or block place 02:16 < gurun> double click on them .. and UDP takes care of the rest 02:16 < Aragas> who needs so much messages anyway? 02:16 < gurun> ? 02:16 < gurun> Gjum it handles it very well .. not sure what you mean 02:17 < Gjum> no I mean, if I click and my client updates its state, but the server never does? 02:17 < gurun> it's sequenced reliable UDP 02:17 < Aragas> i mean, entity movement via upd will be really nice, but other stuff not so much 02:17 < Gjum> ^ 02:17 < gurun> so ACK/NAK .. and shitloads of resends on bad clients 02:17 < Gjum> ok, as expecting that 02:17 < Gjum> *was 02:18 <+XorBoole> sadly PE isn't Java(tm) 02:18 <+XorBoole> C# would have been nicer... but we have C++. oh well 02:18 < gurun> no, it's cross platform 02:18 < Aragas> php would be the best option 02:19 <+XorBoole> Aragas don't encourage them 02:19 < gurun> Aragas you are making us gigle again 02:19 <+XorBoole> inb4 PocketMine: Client Edition 02:19 < Aragas> wow i can literally feel all those burns 02:20 <+XorBoole> what burns? I haven't notcied, but I'm probably too busy playing pokemon 02:20 < gurun> yeah, it's us stairing at you forcing you to leave the room. 02:20 < gurun> but WAIT! 02:20 < gurun> i've heard PHP will be much faster .. 02:20 < gurun> .. next release. 02:20 <+XorBoole> fix your fookin servers nintendo 02:20 < Aragas> man they even have a 3d engine 02:21 <+XorBoole> there's a PHP 3d engine? 02:21 <+XorBoole> well, now I've seen everything 02:21 * XorBoole jumps out the window 02:21 * gurun tailing XorBoole on the way down 02:21 < Aragas> it's our duty do to a client/server 02:21 < gurun> but i remeber saying the same with Java3d came out. And we all know how amazing that turned out to be 02:22 * gurun runs reaaaally fast now 02:22 <+XorBoole> let's see if you can beat Thinkofdeath at the client game 02:22 <+ammar2> but his renderer is so pwetty 02:22 <+ammar2> aside from the segfaulting amd drivers thing 02:22 <+XorBoole> I have attempted to do a wonder render three times now. fix your fucking servers nintendo 02:23 < Aragas> Minecraft PiHiPi Edition: The GameKillah 02:23 < Aragas> Now with awesome http based protocol! 02:23 <+XorBoole> but does it run on a raspberry pi? 02:23 < gurun> why are there so few client implementations of MC? I'm thinking that PVP clients could be popular, just like the PVP servers are. 02:23 <+XorBoole> spigot does 02:23 * XorBoole runs really fast 02:24 <+ammar2> XorBoole: but the pi doesn't have enough memory to run on the pi 02:24 <+XorBoole> gurun because 3D is hard and the only person crazy enough to try is thinkofdeath 02:24 <+ammar2> what the fuck 02:24 <+ammar2> the pi doesn't have enough memory for the build process** 02:24 <+ammar2> christ 02:24 <+ammar2> not sure what happened there 02:25 <+XorBoole> ammar2 download more dedotated wam 02:25 < Aragas> Yup. #d< redstone, physics. i'm not even hoping to emulte redstone 02:25 < Aragas> Not sure from where #d< come from, lol 02:26 < gurun> lisp? 02:26 < Aragas> <_< 02:26 <+XorBoole> this is the fifth time in a row a wonder trade has failed. nintendo, who the fuck wrote your load balancers, notch? 02:26 < gurun> XorBoole, who the fuck plays on nintendo these days? 02:27 < Aragas> They don'tr even have consoles! 02:27 <+XorBoole> gurun people like me who like pokemon 02:27 * XorBoole hides 02:28 < gurun> Yeah, guess that would have been funny, not being true... 02:28 * XorBoole give sup 02:28 < gurun> now it's mostly sad. Nintendo .. duh .. 02:28 * XorBoole throws his 3DS in the pool 02:28 < Aragas> Nonono 02:28 < Aragas> Wait with that 02:28 < gurun> who is going to take care of the little pokemons now!? 02:28 < Aragas> I heard 3ds have some development tools 02:28 < gurun> Aragas, AXE and HAMMER! 02:29 < Aragas> :DD 02:29 < gurun> that's what you learn from late nights with AIX :-( 02:30 < Aragas> I wonder how big the safe file there can be 02:30 <+XorBoole> gurun well, I think I have somewhere around 600, you can take them 02:30 * XorBoole pushes gurun into a bin full of pokeballs 02:30 < gurun> lol 02:31 < gurun> God .. remeber when people had daycare for that shit 02:33 < Aragas> I wonder 02:33 < gurun> hmm, youtube. There something seriously wrong having a sexy bitch singing "bend over" 02:34 < Aragas> What if minecraft will be ported on nintendo platorms? Maybe they will get some money, i heard they had problems with it 02:34 < gurun> yeah, Mojang is struggling 02:35 < Aragas> Swing your sword with a wiimote! 02:36 <+ammar2> ( ͡° ͜ʖ ͡°) 02:36 < gurun> or go into PVP mode and use the development tools mentioned earlier 02:36 < Aragas> I think i just saved nintendo, where can i contact them? 02:36 <+ammar2> Aragas: book a flight to japan 02:37 < gurun> Aragas i don't think they use email. 02:37 < Aragas> should i contact first godzilla? 02:37 < gurun> XorBoole, can have his pokemons setup a meeting 02:38 < gurun> but seriously, that would be kind of cool. I think there is a place for that. 02:38 * gurun wispers the name of the place silently to himself 02:39 < Aragas> I wonder if a cubic pikachu can be copyrighted 02:39 < gurun> No guys. I think that when I'm listening to Selena Gomez on youtube it is time to throw in the towel for today. 02:39 < Aragas> If i'll do him as a pet, i'll become the new minecraft 02:40 <+ammar2> Aragas: depends on the likeness 02:40 < gurun> i think that could work. And you can do tours in Japan and meet fans. 02:41 < Aragas> i'll voice my own pika-pika sounds, cause, u know, copystuff 02:41 < gurun> and if you succeed, will you celebrat? 02:42 < Aragas> they'll never know what got 'em 02:42 < Aragas> depends :DDD 02:43 < gurun> do it in PHP and blameshogi. 02:43 < Aragas> wow it just got to a whole new level 02:43 < gurun> i'm sure that if PHP could speak, it would do pika-pika sounds. 02:43 < Aragas> didn't even needed a candy for that 02:43 < Aragas> AI with pikachu voice 02:44 < Aragas> in php 02:44 < gurun> make the adult version end with pikabooob 02:44 < gurun> and everybody wil be happy 02:44 < Aragas> ppppi..pppi..ppphi..pi 02:45 < Aragas> what are we doing with our lives 02:45 < gurun> playing nintendo and watching Selena Gomez on youtube? 02:46 < gurun> hmm, i'm going to run into the bedroom and ask my wife to do pikachu imitations. Cosplay. 02:46 < gurun> so .. now it's really really time to go to bed 02:47 < Aragas> i just wanted to connect to a minecraft server via rainmeter, and now i'm here, discussing pikachu cosplays 02:47 < gurun> I think this was the intention behind IRC, was it not. Night guys. 02:49 < Aragas> WCGW? 10:24 < shoghicp> so many PHP mentions in this channel lately 10:52 <+md_5-> php php php php php 11:04 < morfin> fuck PHP 11:04 * morfin is PHP programmer learning C++ ) 11:04 < shoghicp> <- PHP programmer doing C++ as well :) 11:06 < morfin> PHP is for sites, not for anything else 11:06 < shoghicp> I'll show you that is not true :D 11:06 < shoghicp> only for the fun of doing it 11:07 < morfin> you write daemons on PHP? 11:07 < shoghicp> actually I do 11:07 < morfin> sick bastard! 11:07 < shoghicp> with multithreading as well! 11:07 < morfin> that's shit 11:07 < morfin> i'd prefer Node.js ) 11:08 < shoghicp> :P 11:08 < morfin> what? 11:09 < shoghicp> I have a NFC library written in PHP as well :) 11:09 < shoghicp> and other to dump firmware from some USB devices 11:10 < morfin> you try use it in wrong places) 11:10 < morfin> don't forget history of PHP 11:11 < shoghicp> hmm? 11:12 < shoghicp> anyway, I'm that guy that wrote a full MCPE server in PHP :P 11:12 < shoghicp> the one that has thephpguy@mojang.com >:D 11:13 < shoghicp> and I hate PHP as well :) 11:13 < morfin> but i am trying to implement Minecraft server using C++ and ASIO ) 11:13 <+md_5> anyway, I'm that guy that wrote a full MCPE server in PHP :P 11:13 <+md_5> he also wrote a full CLIENT in php 11:13 <+md_5> TWICE 11:13 < shoghicp> two of them * 11:13 < morfin> shit 11:13 < morfin> you have no life 11:14 < shoghicp> second one was compatible from b1.6 to 1.5 final I think 11:14 < morfin> PHP is ugly language 11:15 < morfin> look at Python - it does not have such ugly API like strtr,str_replace,trim,strpos etc 11:15 < shoghicp> multithreading :) 11:16 < morfin> and array_merge,array_search,in_array etc 11:16 < morfin> what about multithreading? 11:16 < shoghicp> D: in_array 11:16 < shoghicp> people use that instead if isset(), O(n) vs almost O(1) 11:18 < shoghicp> anyway, got work to do 11:24 < morfin> yes, i am going to return to my little C++ experiment ) 11:29 < nic> hello 11:30 < Guest45803> i am having trouble with handshaking 11:32 < the_user> hi 11:34 < the_user> hello any one 11:36 < nickim> hello 11:52 < morfin> hmmm guys 11:53 < morfin> remember you said packets size is not predictable? 12:02 < barneygale> you can predict it once you've read the packet length field ;) 12:04 < morfin> i mean outgoing 12:04 < morfin> that's more messy 12:12 <+md_5> morfin just use a stream to write your data which wraps either an expanding buffer, or a collection of scattering buffers 12:14 < morfin> i can just allocate max packet size for some packets 12:16 < gurun> yes, randomly. just to make some of the packets happy 12:16 < morfin> becaus expanding means unnesessary copying after every reallocation 12:17 < morfin> gurun, some packets size is predictable 12:17 < gurun> i do something similar in C# 12:18 < morfin> do what? 12:19 < gurun> allocate "max" memory, and use a var for size 12:19 < morfin> that's reasonable only for some packets 12:19 < gurun> it's reasonable for some specific byte operations, not always related to packets. 12:20 < morfin> there is lots of stuff like metadatas, entities, NBT etc 12:21 < gurun> but when you have stuff like varint .. it makes it rather difficult to make really optimized implementations with stuff like struct buffer copying etc. 12:21 < morfin> because protocol developed is mentally retarded) 12:22 < morfin> i think size of packet should be fixed always 12:23 < morfin> like HTTP2 developers did - they have fixed size block for size so you can read it and use to read rest 12:23 < morfin> *SPDY 12:25 < morfin> well, you can't predict size of NBT of cours e 12:26 < gurun> well, i think that any and every protcol with messaging should always start first by giving you the complete size. 12:26 < morfin> but size should not have variable size) 12:26 < morfin> that's some crap 12:27 < gurun> i don't care so much about that, just care about being able to read the full message in one chunk without having to parse it. 12:29 < morfin> that's why i say 12:29 < morfin> read first N bytes, cast to int, read rest 12:30 < gurun> yah, that's what i want 12:30 < gurun> just a very fast and predictabe way to get the full buff out as fast as possible 12:31 < gurun> and then, never dynamic datatypes for basic stuff, like varint. 12:40 < barneygale> yeah, I agree with that too. I have to double-buffer my read queue because of the packet length varint 12:40 < barneygale> happy with varints everywhere else, but packet length should be a long or something 12:40 < barneygale> idk 12:40 * Thinkofdeath is lazy and doesn't buffer 12:41 < barneygale> using async io so I need at least one buffer 12:42 < barneygale> I need the second because to determine whether I've got a complete varint read, I need to consume data off the front of the buffer (checking its length isn't enough) 12:44 < gurun> well for MCPE there is a new trend, variable content. So you need business logic in the middle of the packet-parsing in order to get a full message out. It's like varint on steroids. 12:47 < morfin> barneygale, one buffer for data is enought 12:49 < barneygale> morfin, I'm using qbuf (http://pythonhosted.org/qbuf/qbuf.BufferQueue-class.html) which doesn't allow you to peek at data, only to dequeue it. 12:50 < morfin> what do you mean peek? 12:51 < morfin> no random access? 12:51 < gurun> barneygale, you should really get some peak going there 12:51 < gurun> peek 12:51 < barneygale> I struggled to find a fast python queue implementation that supports it 12:52 < barneygale> Here's my packet reading code, for reference: https://github.com/barneygale/quarry/blob/master/quarry/net/protocol.py#L183-L232 12:54 < gurun> L197-L198 12:55 < gurun> that's what i would want 12:55 < gurun> in PE 12:55 < shoghicp> gurun: that exists as well in MCPC :P 12:55 < gurun> you have to being the parsing before you get to it, you know that too 12:55 < shoghicp> also in 0.12 batch packets have the length prefixed :) 12:56 < gurun> that's better 12:58 < gurun> probably have to rewrite the whole packet handling for 0.12 anyway, in case it would go encrypted. 12:58 < morfin> ah i started rewriting my shitcode) 13:00 < morfin> i forgot one tiny detail 13:01 < morfin> packets in Minecraft can be encrypted in case of using premium account 13:01 < shoghicp> 0.12 won't have encryption 13:01 < morfin> i mean not MCPE 13:01 < shoghicp> but we will have in the future, and maybe not RakNet 13:01 < morfin> but Minecraft 13:01 < shoghicp> morfin: it's for gurun 13:01 < morfin> oh 13:02 < morfin> not sure how should i handle such encryption 13:03 < gurun> changing RakNet out, i hope there is a really good business value behind that. 13:04 < shoghicp> we send 1500 bytes, of those 340 are RakNet 13:04 < shoghicp> maybe more if we send bigger packets 13:06 < morfin> maybe they'll use protobufs) 13:06 < gurun> you mean all the overhead for reliability and packet splitting? 13:06 < shoghicp> gurun: yep, if you split packets you'll get more 13:07 < shoghicp> it can be done in less bytes because we know what to send specifically 13:07 < gurun> so, is that RakNets fault? 13:07 < shoghicp> RakNet is generic 13:07 < morfin> guys what if i sent shitty server-id to client? 13:07 < shoghicp> we want something more specific and simple 13:07 < morfin> will it crash? 13:07 < gurun> Hmm, RakNet is simple? 13:08 < shoghicp> simple = less features 13:08 < gurun> you have to hae a business value for that stuff shogi. We are coders, so simple or complex doesn't really apply like that. 13:09 < gurun> are you looking for less bytes, is that it? 13:09 < gurun> like with compression 13:09 < shoghicp> yep, and not raknet, but something we can control 13:09 < shoghicp> (we want to get rid of it as well) 13:09 < morfin> hmm 13:09 < gurun> so we are talking about an implementation that can handle 5 concurrent user, right? 13:09 < gurun> the MCPE server. 13:09 < morfin> is encryption done over ready to send buffer? 13:10 < shoghicp> 10 on mine, but will support more 13:10 < gurun> are they users complaining about the bandwidth used by MCPE? 13:11 < shoghicp> we want to lower it even more to allow to use data if the user really wants it 13:12 < shoghicp> also, comparing MCPE over PM with the same usage (10 users around the world, not other entities) shows that MCPE does it horribly 13:13 < morfin> so i should build packet and then encrypt>? 13:13 < gurun> hmm, didn't understand that last one 13:15 < gurun> so, the biggest problem right now, is being able to understand the processing speed of the clients connecting to a server. Adjusting based on NAK is simply too slow instrument. 13:15 < gurun> it wrecks havoc with a server. 13:16 < gurun> so then you have a choice. Evict bad devices (and loose them forever), or slow everything down for everybody. 13:16 < gurun> that is something i would like to have a solution for. 13:20 < morfin> guys am i right? i build packet and encrypt whole packet data? 13:21 < gurun> morfin, look https://github.com/barneygale/quarry/blob/master/quarry/net/protocol.py#L183-L185 13:21 < morfin> crap 13:21 < morfin> i don't understand hmm 13:22 < morfin> how you know "packet" boundaries? 13:22 < morfin> when encryption is on 13:27 < gurun> morfin, i don't do PC so i honestly don't know. Maybe they just hope that it's all in the same frame. 13:27 < morfin> can you explain - when encryption is enabled i should send |length|encrypted_payload|? 13:28 < shoghicp> the entire stream is encrypted 13:28 < morfin> so it's impossible to handle "packets" 13:29 < morfin> there is no boundaries - how will i know how split stream? 13:31 < morfin> or there is some boundaries for encrypted messages? 13:31 < shoghicp> because it's a stream 13:31 < shoghicp> and you first decrypt in the stream, byte by byte 13:31 < morfin> protocol is not implementable 13:31 < morfin> oh 13:33 < gurun> looks like SSL. Is it? 13:34 < shoghicp> mostly, but Mojang is the one that verifies things 13:35 < morfin> hmmmm 13:36 < morfin> if i only could switch to "SSL" in runtime ) 13:36 < gurun> so, mojang is in the middle of that communication? 13:36 < shoghicp> no 13:36 < shoghicp> mojang only helps the client and server to verify that they are communicating with each other and that there is no mitm 13:37 < shoghicp> people used to have a server redirect to another one 13:37 < shoghicp> and execute commands that way on the other server 13:37 < morfin> shit 13:38 < morfin> encpryption totally breaks my design 13:38 < morfin> *encryption 13:38 < shoghicp> use offline mode :) 13:39 < morfin> because i read N bytes and do not know what piece i just read 13:45 < morfin> SSL is applied over TCP stream yes but that's also big problem 13:45 < shoghicp> have it as a step of reading, it's not that hard 13:46 < shoghicp> not a problem for me :P 13:46 < gurun> morfin, what lang/platform are you on= 13:46 < morfin> it's a problem for me because idk how ASIO implements that) 13:50 < morfin> seems like i should do more streaming 13:58 < gurun> Are there any software out there that runs the vanilla servers world-generation code and stores it to file? Like in a batch-mode? 14:02 < shoghicp> ask williamtdr, he did something like that for 0.8 14:11 < gurun> sorry, i mean PC 14:15 < shoghicp> gurun: yep, he did something with PC for that 14:15 < gurun> oh, ok 14:15 < shoghicp> then he converted the world to MCPE in parts, but the first part is interesting for you 14:18 <+Thinkofdeath> How different is PE vs PC at this point? 14:23 < Owexz> There are several variations, mainly blocks/items that can't be found on one or the other. 14:24 < Owexz> I believe that The Nether is being added to PE, but no clue as to the End. 14:25 <+Thinkofdeath> ah, guess it wouldn't be easy for me to add PE support to steven then. Its pretty tied to the blocks that exist on the PC version 14:25 < Owexz> I saw you mention steven on twitter, care to explain? :3 14:25 <+Thinkofdeath> https://github.com/thinkofdeath/steven 14:25 <+Thinkofdeath> its a minecraft client in Go 14:26 < Owexz> Ah nice. 14:27 < Owexz> I was talking with shoghicp at Minecon about his protocol converter called BigBrother: https://github.com/shoghicp/BigBrother 14:28 < Owexz> Some of us at the Sponge team have also been planning to work on a converter also, the main issue at present is authentication. 14:30 <+Thinkofdeath> I'd imagine that would come in at a later stage 14:30 <+Thinkofdeath> since from the sounds of it PE is meant to catch up with desktop at some point 14:30 < Owexz> Auth should be around soon. 14:32 < Owexz> It has been mentioned that the ultimate goal is feature equivalence. 14:43 < shoghicp> soon after 0.12 :P 14:46 < rom1504> that should be done, just after the standard plugin interface ;) ;) 14:49 < Owexz> Well with the Win10 edition (PE-based) coming out, getting to a unification stage would be helpful in limiting fragmentation. 15:07 < rom1504> limiting fragmentation on all platform yes, but increasing framentation on pc 15:08 < rom1504> also, win10 edition won't run on linux/mac/..., right ? 15:11 < shoghicp> rom1504: I work on Linux :) 15:13 < Owexz> afaik, Win10 edition is just PE for Win10. 15:14 < rom1504> so they'll keep updating 3 clients ? 15:15 < shoghicp> we don't need to update win10 directly :) 15:15 < shoghicp> it's part of MCPE itself 15:16 < rom1504> shoghicp: oh you mean, you work on MCPE for linux in microsoft/mojang ? 15:16 < shoghicp> I develop MCPE in my computer that runs linux, and it works :) 15:17 < rom1504> oh ok 15:19 < Owexz> I find it interesting that apparently PC users get access to Win10 Edition for free, but existing PE users don't. 15:20 < shoghicp> PE users have PE itself :P 15:21 < shoghicp> also we don't have a way to know our users on iOS/Android 15:21 < shoghicp> no accounts either 15:21 < Owexz> Indeed, something you'll have to solve with the Auth stuff. 15:21 < shoghicp> yep. they need to create an account, but game ownership is still a problem 15:22 < Owexz> No way you can reference it with app stores? 15:22 < shoghicp> sometimes it can be tricky, and you have to consider accounts that are shared by a family 15:22 < shoghicp> also patents 15:23 < Owexz> X number of alts per PE buyer? 15:24 < Owexz> Limited to a specific purchaser account. 15:24 < shoghicp> yep, but then there are more issues 15:24 < shoghicp> also, you can verify a purchase, but not the user in some platforms 15:24 < Owexz> Bleh, damn fragmentation. :/ 15:25 < Owexz> Sounds like an annoying issue to handle though. 15:28 < Owexz> Still, it would be nice to have fully linked accounts across all platforms. :) 15:29 < rom1504> and oauth 15:30 < shoghicp> they will be linked to something, but nothing is decided yet :P 15:33 < morfin> ✎ 15:37 < Not-a8a6> [1.8-Models] drXor pushed 1 commit to master [+0/-0/±2] http://git.io/vqXPU 15:37 < Not-a8a6> [1.8-Models] drXor d57da7f - Fix beacons being broken by the minifier. 15:43 < SopaXT> Hi there! 16:58 < morfin> hmmm guys 16:58 < morfin> so it's possible to keep some clients unencrypted? 17:13 < Aragas> with encryption enabled? 17:14 < Aragas> morfin: ^ 17:17 < morfin> what if i will ignore Encryption request? 17:35 < rom1504> it's not a request 17:42 <+ammar2> that sounds pretty nefarious 18:29 < Techcable> morfin: You break the protocol if you don''t do encryption. If an encryption request is sent, its "encrypt or i send you gyberdish". 18:30 < Techcable> Wait no, what happens if the client doesn't respond to the encryption request? 18:45 < barneygale> morfin, the client has no control over it. If the server sends you a crypto request, you either respond or get d/c'd 18:46 < barneygale> encryption is tied to authentication, so if you don't want to support encryption, you won't be able to auth clients 18:47 < barneygale> (there are good reasons for all of this) 18:52 < morfin> is there any good working bot for Minecraft? 18:54 < Techcable> How 18:54 < Techcable> Whoops wrong channel 19:01 < morfin> if i will want to test how do i do that? 19:13 < gurun> morfin, somone offered to run one on my servers yesteray (in this channel) so i expect there to be one. 19:16 < barneygale> morfin, I have one 19:16 < barneygale> well, quarry does all the login sequence, and I have another local file that handles sending Player Position and Look etc 19:24 < morfin> i just asked because i want to proove i am right) 19:27 < morfin> because i feel like Minecraft have one bottleneck 19:32 < morfin> if it writes every change to disk instantly right? 19:34 < barneygale> map changes? no, they go into a queue iirc 19:34 < morfin> sooooo turn off server => rollback? 19:37 < barneygale> If you've run `/save-off` then yes. Otherwise it flushes the queue in a thread every so often. 19:38 < morfin> i mean just turning off PC/electricity) 19:39 < barneygale> I know 19:42 < morfin> i have interesting question 19:43 < morfin> did anybody compare custom servers perfomance? 19:43 < morfin> with vanilla 19:59 < gurun> morfin, i'm sure anyone that ever built a server did that comparison. 19:59 <+Amaranth> Has anyone made a custom server that does everything vanilla does? 19:59 < gurun> but .. it gets booring very quickly. 19:59 <+Amaranth> It's easy to be faster if you don't do as much 20:00 < gurun> Amaranth computation doesn't take all that long you know. 20:00 <+Amaranth> lol 20:00 < gurun> everyone keeps asking me "do you do block-tickingh" .. so what? 20:01 < gurun> one think that i'm pretty sure of is that the java code written by the Mojang guys are not bad. Not at all. 20:01 <+Amaranth> ha 20:02 <+Amaranth> I'm sure someone can make one faster but you can't brag about being faster while you haven't actually made Minecraft 20:02 < morfin> hehe 20:02 <+Amaranth> Subsets of Minecraft should always be faster than Minecraft 20:02 < gurun> you can brag about being faster on the parts that you do did. 20:03 < gurun> in my own case, i know why it is faster and it doesn't have anything to do with block ticking. If i'd do the same in Java it would also be faster. And if i did the same as they DO in java, it would also be just as "slow". 20:04 <+Amaranth> What part are you talking about and how did you do it? 20:04 < gurun> it's easy. I do what all the C++ winers talk about, but do it in .NET 20:04 < gurun> i bypass GC. 20:04 < Aragas> гк ф пщв щк ыщьуерштэ, 20:05 <+Amaranth> So lots of value types 20:05 < Aragas> Sorry 20:05 < Aragas> Ur a got or somethin'? 20:05 < gurun> no, they are equally slow. 20:05 < Aragas> aw man 20:05 < Aragas> god* 20:05 <+Amaranth> wat 20:05 < Aragas> try to bypass xamarin GC, that's a lot of fun 20:05 < gurun> i just class just like everybody else, i just don't create so many new. SO that it exactly the same as people like to do buffer-copy onto structs in C 20:06 <+Amaranth> So you do object pools? 20:06 < gurun> i don't do new McpePacket() instead i do McpePacket.Create(number of instances to count) 20:06 < gurun> yes 20:06 < gurun> instance pools 20:06 < gurun> and then built the infrastructure to reset the damn things and all that stuff. 20:06 < gurun> a shitload of work. 20:07 <+Amaranth> In java land they claim object pools are no longer better than GC because generational GCs 20:07 <+Amaranth> I never benchmarked it myself 20:07 < gurun> and that is real bullshit 20:07 < gurun> i've bencharked the hell out of that 20:07 <+Amaranth> IBM apparently did? 20:09 <+Amaranth> gurun: Did you benchmark it on the JVM or on .NET? 20:09 <+Amaranth> Because .NET's GC is basically trash compared to JVM's 20:09 < gurun> i did it on .NET 20:09 <+Amaranth> Although value types mean the GC is less used too 20:10 < gurun> and no i don't think it is "trash" in comparison :-) 20:10 < gurun> but java had some more years under the hood .. 20:11 < morfin> of course subset of Minecraft is faster 20:12 < morfin> but i think similar by functionality server will be faster anyway 20:12 < morfin> if somebody will rewrite it properly 20:14 < morfin> is not Cubenite full? 20:14 < morfin> *Cuberite 20:16 < gurun> morfin, it's that "properly" i don't completely agree on 20:17 < morfin> ? 20:17 < morfin> what do you mean 20:17 < gurun> "rewrite properly" implies that it's not implemented proper today. 20:17 < morfin> oh 20:17 < morfin> it's implemented as implemented 20:18 < gurun> everybody mentions that server that a couple of girls wrote, that is supposed to be way faster. 20:18 < morfin> without mobs... 20:19 < morfin> and end 20:19 < morfin> and netherworld 20:19 < morfin> :( 20:19 < Aragas> that russian server? 20:19 < morfin> i don't beleive anyway that 200 players for Minecraft is superhuge loads 20:20 < morfin> like simulating nuclear explosion on server hardware 20:21 < gurun> does anyone have numbers on vanilla. How many entity updates and stuff like that it can handle per second? 20:22 < gurun> servers like on mineplex, how many players on each server, ec. 20:22 < Aragas> their server had run 500 players, if i remmember correct. I was on that event 20:22 < morfin> so you think vanilla server designed perfectly? 20:23 < gurun> depending on if all the 500 sent updates to eachother, that's not bad. 20:23 < gurun> assuming that would be something like a highend server 4/8 core thing. 20:24 < morfin> maybe they fixed server 20:24 < gurun> ? 20:24 < morfin> because before it was awfully slow 20:24 < gurun> mojang or mineplex? 20:25 < morfin> mojang 20:25 < morfin> and required hacks like disabling mobs, cleaning up entities on ground etc to handle ~400 players 20:25 < Aragas> you're stiil about those girls server? 20:25 < gurun> 400 is not "bad" 20:25 < morfin> no 20:26 < morfin> about vanilla 20:26 < morfin> well, they did nothing i think 20:26 < morfin> but they modified idea and added new stuff 20:27 < morfin> i was playing on server not so long time ago(for like an 2-3 hours) it feels not like Minecraft ) 20:28 < gurun> what does it feel like then? 20:29 < morfin> it's like Minecraft but totally PvP 20:30 < morfin> i am thinking to implement server just to learn 20:31 < gurun> or you can do like Paprikachu,just talk about it :-) 20:31 * gurun ducks for cover 20:32 < morfin> wait seriously is not that Cuberite full? 20:35 < gurun> morfin, it doesn't say 20:37 < morfin> you said "subset of Minecraft is faster" 20:37 < morfin> sadly i can't op myselfs :( 20:37 < morfin> to create over 9000 TNT for first test) 20:54 <+Amaranth> If someone is running 400 players they're using a subset of Minecraft too 20:54 <+Amaranth> The subset called Spigot 20:54 < morfin> ? 20:54 < morfin> oh 20:54 <+Amaranth> The mineplex thing 20:55 <+XorBoole> spigot can't handle 400 players 20:55 <+XorBoole> you need bungeecord for that 20:55 * XorBoole hides under a table 20:55 < morfin> ) 20:55 < morfin> it use it i think 20:55 < morfin> as hub 20:56 <+Amaranth> You can put 400 players on a server if you turn enough things off 20:56 <+Amaranth> Like entities that aren't players :D 20:56 <+XorBoole> Amaranth pretty sure that on that definiftion you can keep going as long as you can send keepalive packets 20:57 < morfin> hmmmm 20:57 <+Amaranth> Although there is at least one factions server with more or less full gameplay that does 500 players 20:57 <+XorBoole> as of when? 20:57 <+Amaranth> But it's got really low block tick and entity counts as well as a custom server with specific hacks 20:57 <+XorBoole> minecraft's performance is anything but a constant function. it's gone up and down over time as a function of the number of players 20:58 < morfin> also last time i've played there was strange issues 20:58 < morfin> server after some uptime was lagging as hell ) 20:58 <+Amaranth> Was Gontroller iirc 20:58 <+Amaranth> Looks like they've got about 230 on right now 20:58 <+Amaranth> Err, 290 20:59 <+XorBoole> what about their tps though? 20:59 <+Amaranth> *shrug* 20:59 <+XorBoole> they've already passed the typical degradation point 20:59 <+Amaranth> Go on there and push a button, figure it out yourself :P 20:59 <+XorBoole> after 200 performance drops off kind of linearly with players 21:00 <+XorBoole> Amaranth but mah latency! 21:00 < morfin> but what before 200? 21:00 <+XorBoole> then it should be constant unless you do something stupid with plugins 21:00 <+Amaranth> I used to do that on a server, impressed the folks in mumble with how close I was getting :D 21:00 <+XorBoole> 19.5 is a good mark to shot for 21:01 <+XorBoole> > mumble 21:01 <+XorBoole> I feel old 21:04 < gurun> Amaranth, so what are the things that actually DO kill the server performance? 21:04 < morfin> oh endereye not working 21:05 <+Amaranth> gurun: Entities 21:05 <+Amaranth> iirc more specifically it was collision detection and pathfinding 21:05 < gurun> i see 21:05 < morfin> oO really? 21:06 <+Amaranth> Don't remember how much was the AI logic itself and how much was the things the AI logic called out to 21:06 < gurun> so .. how many entites are we talking about .. 100's or less or more? 21:06 <+Amaranth> About 100 per player iirc 21:06 < morfin> so generation of world is not that slow? 21:06 <+Amaranth> World generation is something that happens once 21:06 < gurun> ok, 100 is quite a lot 21:06 <+Amaranth> 100 players means 10000 entities 21:06 < gurun> ? 21:07 <+Amaranth> Yeah, that sounds like it's in the right ballpark 21:07 < gurun> 10000 entities .. doing what? 21:07 < morfin> hmm 21:08 < morfin> nothing but wandering around 21:08 <+Amaranth> Remember paintings and item frames and minecarts too 21:08 <+Amaranth> And item drops 21:08 < morfin> oO 21:08 < gurun> so you mean that for every player .. there could be 100 entities around? 21:08 < gurun> item drops doesn't cost anything 21:08 <+Amaranth> Item drops do collision detection 20 times a second 21:08 < gurun> "static" entities aren't expensive 21:08 < morfin> oh 21:09 < gurun> collision detection is cheap in MC. 21:09 <+Amaranth> Mobs are certainly higher on the profile but when you have 10000 of something happening it's really easy to be not cheap 21:09 < gurun> in fact, it's so cheap that it was cheaper to just compare all players with .. projectiles than to calculate the relevant ones :-) 21:10 < morfin> ok i admit there is no fully implemented server =) 21:10 < gurun> morfin, not even close i think 21:10 < gurun> but we are discussing features that affect performance. 21:10 < gurun> not how many "blocks" you implemented. 21:10 < gurun> stuff like lava, water, mobs. 21:10 <+Amaranth> That's the main problem, mostly everything in Minecraft would be alright if you had a view distance of 5 and maybe 100 entities total 21:11 < morfin> i am not about "blocks" 21:11 <+Amaranth> But you have a view distance of 10 by default, 100 players, and 10000 entities 21:11 < morfin> not all entities are done 21:11 <+Amaranth> (the view distance matters because block ticking) 21:11 < gurun> i never understood view distane on PC. What is 10? 21:11 <+Amaranth> It's a radius out from the chunk you're standing in 21:11 < morfin> and redstone is lagging server as hell 21:11 <+Amaranth> Except not a radius because it's a square 21:11 < gurun> in chunks, right? 21:11 <+Amaranth> Yeah 21:12 < gurun> ok, so 20 chunks across 21:12 < gurun> 20x20 roughly 21:12 < morfin> you forgot about redstone 21:12 <+Amaranth> So view distance of 10 is (10+1+10)^2 chunks or 441 21:12 < morfin> several big builduings could slow down server as shit 21:12 <+Amaranth> Block ticking was a much bigger part of CPU time in the betas 21:13 < gurun> is lava and water spread considered "block ticking" 21:13 < gurun> ? 21:13 < morfin> yes i think 21:13 <+Amaranth> Between beta 1.8 and the 1.0 release the number of blocks per chunk that were randomly ticked was cut 80% and then when 1.2 switched to the anvil format an optimization was put in to skip chunk sections that have no tickable blocks 21:13 <+Amaranth> In this case I'm just talking about crops and such 21:14 <+Amaranth> Random ticks, not scheduled ones like liquids and fire and redstone 21:14 < morfin> trees growing, crops etc 21:14 < morfin> but what about redsone? 21:14 <+Amaranth> Before 1.0 block ticking was usually the #1 thing on a profile 21:14 < gurun> as i understand, usually block ticks refer to the random ones 21:14 <+Amaranth> Before 1.2 it was a toss up between block ticking and entities 21:15 < morfin> it seems to be loading CPU 21:15 <+Amaranth> Now it's basically all entities 21:15 < gurun> but i just call all of them doing tick-updates on a block .. for block-ticks,. 21:15 < gurun> entity ticks, block ticks, and to some extend player ticks 21:15 < gurun> player ticks is mostly a plugin-thingy 21:15 <+Amaranth> Although I think some of the performance gains of block ticking might have been CraftBukkit patches, don't remember 21:16 < morfin> oO 21:16 < gurun> yeah, well. I'm looking for the "heavy" stuff because i like to simulate 21:16 <+Amaranth> I didn't benchmark vanilla much :P 21:17 <+Amaranth> The heaviest stuff on an established server is going to be all the entities 21:18 < morfin> i think they was understating perfomance issues better than Mojang) 21:18 <+Amaranth> World generation would probably be heavier if you were doing it every tick 21:18 <+Amaranth> morfin: They was me :P 21:18 < morfin> hmm 21:19 < morfin> but now Minecraft have no Bukkit but only vanilla and some custom servers which are not 100% replacement :( 21:19 <+Amaranth> Spigot is still limping along but their only answer to performance issues is to turn features off or otherwise heavily gimp them 21:21 < gurun> i stil don 21:21 < gurun> still don't get the 10000 entities for 100 players. Doesn't make sese 21:21 <+XorBoole> well, not always 21:21 <+XorBoole> just mostly 21:21 < gurun> (fucking keyboard) 21:21 <+XorBoole> I wrote a patch that lets you make the usercache as big as you want 21:21 <+Amaranth> gurun: Well, that is assuming the players are fairly spread out 21:22 < gurun> well 21:22 <+Amaranth> And iirc it varied between 6000 and 10000 21:22 < gurun> if you have 100 players spread out that much .. they aren't affecting eachoter 21:22 <+Amaranth> So? They still all need their world simulated 21:22 < gurun> and that is much easier than having 100 players fighting eachoter in close quarters 21:22 <+Amaranth> Hell no, 100 players in view distance of each other is nothing 21:23 < gurun> 100x100x20 positions is still .. something. 21:23 <+Amaranth> The main problem there is the performance of the PlayerTracker subsystem for sending packets 21:23 < gurun> 500x500x20 is .. a lot 21:23 <+Amaranth> But you've gone from 10000 entities to probably 1000 21:23 < gurun> 2000x2000x20 is .. massive. 21:23 <+Amaranth> So you can afford it 21:24 < gurun> so .. 100 entities per player. 21:24 < gurun> i'll have to test that you know, that's why i'm asking. 21:24 <+Amaranth> It's been probably a year since I tested it so be sure to do so 21:24 <+Amaranth> But I definitely remember seeing 10000 entities in my test setups 21:25 <+Amaranth> I just don't remember what I was testing at the time 21:25 <+ammar2> 10k isn't that muuch 21:25 < gurun> well, 10000 entities is no problem at all. But 10000 enities sending positions is a big problem. 21:25 <+Amaranth> I don't think I ever tested more than 100 players though and I usually tested with 20 (although those 20 were completely isolated) 21:25 <+Amaranth> Entities far enough from players to not send a position basically don't exist