About

Here you can find all forums, blogs and similar sections, that are meant for different types of communication.

Banner Hide banner

#253

Simbiat
Simbiat

There is a "darker" part in my history. This part is associated with digital piracy, so I generally do not talk much about it, but it had a very special moment in it, which kind of defined my views on good products and good communication with its users, which in turn made me the tech support specialist that I am today. I've recently been seeing quite a few topics, like Baldur's Gate 3 success and some game developers hating it, the hype around Cyberpunk 2077: Phantom Liberty and how CD Project Red recovered from original "failure", AMD's issue with AM5 chips' voltage (especially ASUS failures in the matter), and even recent Linus Media Group blunder, that made me think back to those days. I thought that may be it's a good time to talk about those days, and what I am doing right now, and my general approach to things, because they kind of resonate with the above mentioned examples.

Hoarder syndrome

You know people who collect stuff, often even stuff that they do not need or even stuff that generally has no value? Well, I was someone like that, but with digital stuff. I think it started around the time Direct Connect networks became popular. It's like something in-between eMule of the yesteryear and modern torrents. Around like 2005, I guess, Russian network providers started opening official (and semi-official) servers based on DC protocol, so that people could chat and also share files.

It is important to understand, that at the time getting legal copies of digital stuff like music or movies or games was extremely difficult, if not to say impossible for majority of Russians. Not because of of high prices (although, they did affect things as well), but also because of lack of availability. So piracy scene thrived at the time, and it was thanks to DC networks. Of course, there were FTP servers, as well, but DC was faster and way more convenient.

It was around that time, that I started collecting stuff. Not just collecting mindlessly, too, but organizing it in some way or form. I was inspired by other people doing similar things and sharing the stuff, so my PC was running almost 24/7 sharing files, and I've wasted a bit of my parents' money on hard drives, which stored movies, music, digital scans of comics, TV series, adult content, anime, and, of course, games. If anyone is curious, you can, actually see what I had on a public (S)FTP server back then here. If I remember correctly, I had more than 8 terabytes, that at the time was a considerable size, especially since most of the videos were converted to .rmvb format, which essentially a predecessor of h.264.

Public service

At some point, I was no longer collecting stuff just for the sake of collecting it, though. In fact, I even lost some of the interest in collecting. But a lot of DC clients had statistics, that showed how much stuff has been downloaded from you. I believe, Serv-U, which I used for (S)FTP also did that, but most people were using DC. And the statistics showed, that I was "popular".

My share was consistently one of the largest ones on most servers I used and had one of the largest upload ratios, too. One may think, that it was because of adult content, but reality was different: people were downloading a lot of games. And mostly - Steam versions of those.

Steam was still relatively new, especially for Russia, but we had CSMania and CS.RIN.RU, where people were games downloaded from Steam. Not all of them worked without Steam and without owning the game, but still people shared them, and if anyone cracked those - that's their business. One of the problem was that most of bigger games were uploaded as multi-part archives to various filesharing services, like Rapidsahre or Megaupload (now Mega). Not only did those periodically remove files, but they were also slow, unless you buy a subscription, which... Why would you expect someone downloading a pirated game to pay for a subscription?

So, having a PC with a lot of storage, which is almost 24/7, I thought that I will be downloading all the archives for those games, repack them into 1 archive, where required, and then share both in DC and (S)FTP. And at some point, this turned into "a12.net.ru", which became the "public face" of the whole service. Domain was taken over from my study group back in university (because it was group "A12"), but extra meaning was put into "A12" - "All 12", meaning 12 types of content. Not sure if there was actually 12 types, but that was the main idea.

DarkSteam origin

I used vBulletin 4 (and then 5) for the public face. Since it was a forum, it allowed me to grow community, and for people who registered there, I provided unlimited speed to SFTP (without brackets, I think this was the time when I dropped insecure version). This was one the first times, I ever coded, because I needed a "hack" to make same credentials used in vBulletin to work in Serv-U, since they used different databases by default (I think just changing settings in Serv-U allowed to amend that) and different types of password encryption.

Community was not that big, obviously. Most people were just coming to download stuff and then leave (so called "leechers"). But some people did ask questions, made requests, shared stories and what not. And there was one guy, who came to me in a private message: "Hey, there is this DarkSteam Project, that I'm using. It's kind of similar to what you do, but it has a separate client, that allows to download games, and it has way less games. It would be awesome if you collaborated".

And we did. We had 2 domains pointing to my server, I removed everything except for the games, unpacked them all, and with gwolf2u as developer of the VB.NET client the new era of DarkSteam began around 2009 or something. It also now had several levels of subscription, where some newer games were not available without it. Idea was that money would help me maintain hardware and buy the games, and gwolf2u will be code the client. Money were split 50/50, and somehow due to Russian limitations all money went to gwolf2u and then he sent me my half. At least, that's how it was supposed to work.

Split...

For a couple of months this worked as we expected. But the client had a significant issue: it used approach of having large "cards" representing the games, and there were several hundreds and later thousands of them, so it was not easy to scroll through the whole list, let alone find something there. Search function was required. For some reason gwolf2u was more focused on minor improvements in the cards menu, though.

Listening to users' complaints (which became more vocal, the more users we actually got), I asked gwolf2u for source code, to see if I can do something that will work as proper search. He shared the code, and I started working on an alternative client with search. This was my first (and only) work with VB.NET, but I was able to implement a way to search for games, while also changing the layout to look more like what you see in Steam itself. On the forum I made it clear, that this is not proper new version, but a test one (practically an alpha), to see if we can improve things.

Something happened after that. I am still not sure what exactly, but the gist of it is gwolf2u decided to split from the project, practically silently (he started ghosting me), while also taking my part of the latest earning ($456, which was and is a solid sum). Was he discouraged by good reception of the alternative build of the client? Did something happen in his personal life, that he was not ready or willing to share? I have no idea. Won't deny I am still salty (if it was family emergency for which he required money - I would have understand it and would forget about the money), but it was what it was. And it was not the end yet.

... and fall

The service continued its life. I tried to be as transparent, as possible, with what I am doing and why, tried to help users with their issues, and if it was something that I could change on the side of the client - I tried to do it. It was not all sunshine and rainbows: for example, there was a huge issue, which even lead to partial outage. It was caused by a AES encryption/decryption, for which I used code found on the internet, which was supposed to work both for PHP and VB.NET (possibly this one, but not sure, since I commented on original one with a fix, and this one does not have comments). It had an issue with padding in either VB.NET or PHP  version (do not remember), which resulted in one of them not working with certain lengths of strings, and thus - in inability to login. Yes, AES was used for password storing, bad, but this was Serv-U's requirement at the time.

It was a weird bug, for sure, and it caused a long night of trying to fix things, while also temporarily breaking them even more, but surprisingly, community did not seem pissed about this. I assume - because I was transparent about what's happening. There were forum posts, and I also was active in Shoutbox (chat module for vBulletin), so people knew that I was working, and that it was not easy for me. Besides, I did improve loading speed by moving significant portion of code from VB.NET to PHP, which improved performance on client side with minimal impact to server resources. It did not stop me from ruining everything even more later.

People wanted more speed. More speed at the time was possible only through torrents, and I found Deluge, which could work as "seedbox" with ability for me to communicate with it through PHP. So I made strides to update the client and move it from SFTP to torrents... Only to fall flat on my face. It was not able to sustain any tolerable speeds for thousands of torrents at once, which was a problem in itself, but people were not continuing seeding. Which, in retrospective, is obvious: why would they keep DarkSteam client open for that, even if it could be minimized to tray? What's worse, I... Did not save previous version, which was using SFTP, so I could not roll back. I know, stupid, but I was never a developer in the first place, so I did not think of that kind of stuff (yet).

In the end, I had to close it. If I remember correctly, at the time, I claimed main reason was the failure with the torrent and no backup, and that someone from Valve reached out to me, but... It was not the case. Yes, torrent failure was part of it, and I could not go back and did not want to code from scratch. Another main reason was... I no longer wanted to risk it with piracy. I had enough money from my main job to buy the games I wanted, when I wanted them, so I did not really need secondary source of income, especially, since around the same time Steam's terms of service did get updated and clarified that distribution of games' files was also a violation, and could cause me to get banned on Steam. Which I did not want with library of over 2000 games.

So, yeah, that was the end of the service. If you see DarkSteam name anywhere else, it's not affiliated with me (or gwolf2u), and is probably not a safe application. The code of the latest build can be found on my GitHub, but I doubt it's of much use nowadays.

Lessons learnt

But what's my point in telling all this, and how is it relevant to the events mentioned in the beginning? It's clearly not about how piracy is bad, although it is, and you should support the creators. Except may be some of them. Like... Blizzard? EA? Ubisoft? You know, those who see you as stupid money bags and nothing more. But I digress.

My experience with DarkSteam not only taught me some things about coding, but it also showed me what community wants: honesty and transparency. Not in a sense that you need to tell them everything, no, but you need to be clear about what and why you are doing. The service did not have any marketing, was worked on at spare time, and yet I was getting $400-500 of monthly profits. And funny thing: even though I had a lifetime subscription for $30, almost no one bought it, and those few who did, still donated periodically.

Obviously, can't say for sure why, but I believe it was because community saw my work, my effort, and they wanted to support me, so that I can continue the work. This resonates with me, because when I play some free games, if I see that game is really good, - I will buy something there, to support the devs, but if I see it as a money grab with paid stuff being pushed in your face every minute - I will remove that game as fast as possible. I also try to acknowledge my mistakes and try to fix them, when possible.

LMG failed its community, was called out by Gamers Nexus, and they responded how I would have wanted them to: acknowledge the issue, and took a step back to see how they can fix it. CD Project Red screwed-up with Cyberpunk 2077 release, no doubt, and and their initial responses may not have been as good as they could have been, and they may not have been as transparent with all the happenings, but they have already addressed most if not all issues with the main game, and Phantom Liberty promises even more stuff, which is good. And better than what a lot of other companies do not even try to do.

And Larian Studio's success with Baldur's Gate 3? I've supported them from Divinity: Original Sin original Kickstarter and you can see my name in both Original Sin games (even though I've never finished either). I can agree, that Baldur's Gate 3 is an anomaly, but... They only did what everyone should do: be transparent, listen to community's pain-ponts (not necessarily fixing them as community wants), and do what they are passioned about trying to achieve the best possible outcome.

I believe, that this what I was doing with DarkSteam. And this is what I am doing with my current website. I specifically chose to do everything from scratch to be able to provide the best experience possible, and I made it open-source, specifically to have high level of transparency. And it will remain open-source, even when there will be monetized features in the future. If I ever get to them.

I know, that those features won't get a wide popularity, but I am sure, that the way I handle things, the way I strive to provide good service, the one that I would personally use, will still make them successful. But only time will tell. Let's hope I do get to those features, because I am surely want them in my life.