Snakey Monster - Copyright Infringement

Copyright Infringement - Part 1

I gave Aylina and Numerous my source code in October, 2023. It is copyrighted (I paid to have the copyright registered with the USPTO).


They were welcome to use it, conditional upon any improvements being shared with me.

Copyright law is pretty simple, and nearly universal: you can only use copyrighted material with permission. Their permission was conditional upon sharing improvements.

As soon as Aylina, Eiriker, and Numerous stated that Aylina's server was better than mine -- which can only be done with improvements -- she was obligated to share the improvements, or give up any usage of the code (even having a copy on her computer). That's pretty basic copyright law (although conditions such as the "improvements" piece are not common).

So every single time they say their server is better, they are flaunting copyright law.

Aylina seems to think that by "porting" the code (taking my code, and re-writing it), she avoids the legal (and moral!) obligation she agreed to. But, copyright law is also universally clear that a work based on another is a derivative work. This is most easily understood with translations of books: if I take Harry Potter and translate it to Esperanto, I cannot claim it as my own.

Plagiarism

I stated that what Aylina did was plagiarism.

This one is pretty simple, too. Plagiarism is an academic concept (it is not against the law): the use of someone else's ideas without attribution. Using the Harry Potter example, I can legally write a book with the same general theme about a boy who becomes a wizard. But, if I turn that paper in to a college, I have to say that it was based on Harry Potter... or else I get a failing grade. And if I forget to give credit, and my teacher approaches me about it, and still refuse to give credit... I would likely get kicked out of the college.

Aylina's "havent looked at your code" lie

I have proof that Aylina accessed at least 7 different files I sent her.

In DM's to me, she cut and paste from at least 5 files (ss.cpp, unique.cpp, worlds.cpp, ss.h and helpers.cpp).


Then, somehow her server until recently sent a "challenge" of "eULXuGxMjvoPvrGwNfvUDtnatqDrjCuKbxHergzVibpHxVFAnlTUCqkCRjBAKbnJwvHyPPyKbqJgWmdPMYpEbVGhOCWVHbMMuKcukJVpZzHHpNcXJdrGzmHTOlxREdKlvhzCLZtmbnkWpfzZHwpFVjguJGVpZxiHur". That came directly from the packet.cpp file that I sent her. It originated from a game that I played months earlier (the server generates random strings; those challenges likely have never repeated).

Similarly, the correct response to that challenge (that the browser sends back to the client) is "OVJOsEjRpcOuhirgshXRPWml". Again, I got that from an official server from a game I played, and had it in my ss.cpp file to verify that the client sent the correct response. Aylina copied that, too.

Finally, the files I gave Aylina and Numerous included a file bots_normal.txt that had the names of 596 bots I collected from the official servers. Rather than do the research herself (as she pretends she does), she just copied the names from that file. How do I know? I later analyzed the servers more, and came up with a total of 616 bot names... so there were 20 bot names that I had not given Aylina. I checked her servers, and she would send those 596 bot names I gave her, but never any of the 20 I did not.

To be clear, these are not necessarily copyright violations... but clear evidence that Aylina lied to the public and did not give credit to the source.

Did Aylina Copy My Work?

When I confronted Aylina and Eiriker, their position was that Aylina ported everything, and so it was her code. They further suggested that she came up with all algorithms herself (Eiriker stated "She came up with all new novel approaches for everything").

I paused for a minute and wondered: maybe she did? And that is why Aylina, Eiriker and Numerous are experts at: making you doubt yourself.

But, let's take a look-see. It's very hard to know what Aylina did without looking at her code. But, when I looked last December:

  • I came up with the idea of having "inedible" food: food that snakes cannot eat. I chose to use the term "inedible" and used a flag FOODFLAG_EDIBLE. Her "new novel approach" was to have a flag named FOOD_INEDIBLE.
  • I happened to pick "eULXuGxMjvoPvrGwNfvUDtnatqDrjCuKbxHergzVibpHxVFAnlTUCqkCRjBAKbnJwvHyPPyKbqJgWmdPMYpEbVGhOCWVHbMMuKcukJVpZzHHpNcXJdrGzmHTOlxREdKlvhzCLZtmbnkWpfzZHwpFVjguJGVpZxiHur" for a challenge, based on a game I had played a few years ago. She used the exact same one. Statistically, it is impossible she did anything other than cut-and-paste.
  • Likewise, the "OVJOsEjRpcOuhirgshXRPWml" challenge response, that had to have come from the code I gave her
  • I did not have dense mass reduction in the code I gave her, she did not implement it. This is what makes a curled up snake generate less food when it dies than a snake that is not curled up.
  • I did not implement the port 80 /ptc code, she did not either
  • For the target number of server bots, the official servers have a time-based algorithm. I did not investigate it, and used a hard-coded (unchanging) value. So did Aylina. So Aylina copied the algorithm I used, not the one the server used.
  • For the snake IDs (from 0 to 65535), I assumed the server assigned them in order (0 for the first snake, 1 for the next, and so forth), so that is what I did. So did Aylina. After further investigation, I found out that the server assigns them randomly. So Aylina copied the algorithm I used, not the one the server used.
  • The server bot names she used were directly from the file I provided her.
  • My code did not have live prey (the moving "orbs"), Aylinas did not.
  • My code did not have straightlining code (kioskers unable to control their snake for a few seconds after kiosking for about 30 minutes), Aylina's did not.
  • I came up with the idea of having the leaderboard used for something other than snake names/scores (e.g. the server name, to be seen on the NTL leaderboard). Aylina copied that idea.
  • I did not implement a check (that the official servers do) to verify that the browser sent an origin: HTTP header with "slither.io". Aylina did not either.
  • She copied the map encoding algorithm that I used. There was a flaw in my algorithm that made the map packets bigger than they needed to be, and hers had that flaw too. The official servers did not.
  • My server code did not restrict the number of connections from a single IP, Aylinas did not either.
  • My server code did not de-spawn food that was not seen for a while by live players, Aylina's did not either (I later implemented this).