Saturday, January 25, 2014

RUST: Why you shouldn't pay to alpha-test games

Recently, I have had the unfortunate experience of buying one of the most popular Early Access games available on Valve’s Steam platform, RUST. I, like many others, put down US$20 in order to alpha-test this new survival game, which is loosely based on DayZ. The inherent issues with Early Access games such as this is that they implement only the bare essentials, and they're asking you to pay in order to play what could be considered, at its best, unfinished/unpolished gameplay, and at its worse, a pointless waste of time.

To date, I have sunk 38 hours of my life attempting to make some progress, any progress, playing this game online with other people. Most of that time was spent collecting sparsely generated resources in an incredibly large environment, while trying in vain to avoid being killed by other overpowered players during that process. I wasn't alone either, I worked with my loving partner, who I convinced to buy the game in order to properly try it out.

The problem with RUST lies in the core concept of the game: it rewards those who are already geared up and leaves new players grinding for hours on end in out of the way areas with little to no available resources, only to eventually be ripped off by the more powerful players. In short, the game has incredibly bad balance, and this doesn't seem to be a major concern for either the developers or those who currently play the game.

Time after time, we tried to collect resources in order to reach the level that the others players were already at. Nine times out of ten we would run into another player who is fully loaded within the first few minutes of a new spawn, where they would instantly kill us for no reason; well before we could even build a rudimentary stone hatchet. On the rare occasions where we managed to evade detection and stay alive for a few hours, we would manage to build a base, only to be killed and looted before any real progress was made. Any attempts to object to the situation would be shrugged off by loaded players with “Welcome to RUST”, or even more obscenely, “Suck shit, that’s how the game is played”.

What’s going on here is more problematic than you may think. The game rewards players in a better position, and even encourages them to go around griefing new players, mainly because there is absolutely nothing left to do once you reach that “all-powerful” point. The players get so bored, they go looking for trouble in order to justify their position and the money that they have spent on a game with no goals left to pursue. The ones who pay for this design flaw are new players, which is completely contrary to proper game development.

Nobody wants to spend six hours grinding for resources, just to be killed and required to start from scratch again. As I said, I've wasted 38 hours already and still haven't managed to get past building a base. You may just think I am upset that I never managed to get anywhere, and that may be true, but I am myself an open source game developer, and if the games I made behaved in this manner, people would complain and probably stop playing entirely.

The biggest reason for RUST’s success is the “brand name” the developers brings to it, Garry Newman and Facepunch studios. This game is not popular because it is good, per se; it is popular for the sake of being popular, and it brings with it an entirely undesirable player base, all of whom get kicks from hacking, griefing, lording over the weak, and causing all manner of trouble. In time, this will limit the number of players who are actually playing the game to the elitist few; sales are not an accurate representation of how good a game really is.

It is insane that a game this broken continues to receive rave reviews and massive amounts of attention, but I have my doubts that this will change in the future, because the players that do continue to play are the ones who get the most out of the current structure of the game. Everyone else simply stops playing, effectively throwing those twenty dollars in the trash.

If I could get a refund at this point, I probably would. Instead, I may just end up building my own, balanced version of this emerging game genre, and I will do so under a free and open source license. You shouldn't expect people to pay for something that isn't even finished (or good), as they have no measure of the actual value that product has, or will have.

In summary, don't buy RUST unless you like being constantly frustrated and picked on, or you are willing to suck the penis of whatever admin is currently running the server you are playing on.

Thursday, June 21, 2012

Understanding Open Source


As the developer of the Open Source first-person-shooter project, Red Eclipse, I have come across many different types of personalities; some are good, some are bad. Quite often, I will have someone looking to contribute to the project who is so convinced that their point of view is so important that it only ever ends badly. Unfortunately, you can’t control this kind of thing, but in the past I have attempted to guide these people along the right path, albeit unsuccessfully most of the time.

I believe there is a misconception surrounding the phrase “Open Source”, that many people bang against and wonder why they’re met with such hostility. When a person decides to release their creations with an Open Source license, their desire is most often always to share it with the public in many ways, including allowing everyone to use and/or modify it for free.

You’ve probably heard the expression, “Free as in beer, not free as in speech”, but maybe don’t quite understand the implications of that. The creator of Open Source content is looking to give you something for free, and quite often allows you to take it and do whatever you want with it; the most beneficial part of which is the ability to study, modify, and play with it. This creator already has their own ideas, their own opinions, and their own way of doing things.

Every so often, you have an individual come along who has their own ideas and opinions, and they are so fixed on the concept that their way is the right way, they end up having a complete disregard for the creator, and the community behind that creation, if one exists. These people will enter a community, demand that everyone conforms to their vision, and when they discover the creator and/or community are resistant to it, blames everyone else for the fact that they failed. This often ends with the person declaring something along the lines of: “I should have known better, you don’t appreciate me, I’ll go elsewhere and get my way there.

The problem is, these people don’t ever try to integrate with a project naturally, they appear to expect instant results as soon as they come along, and assume they know everything they need to know. This is mostly untrue. Throwing a tantrum and refusing to share your toys is the best way to ensure that everyone will instantly dislike you. To them, they were doing just fine before you came along trying to shake the tree and making demands of them, and they will continue to do just fine without you.

Open Source is a democracy of one. Someone, somewhere up the chain, came up with the idea and executed it. They built it, and they own it. Just because they have given something to you free of charge, does not entitle you to start telling them how to do their “job”. You’re not paying them, in fact, they’re giving up their free time to follow an idea that they are passionate about, and it is just a side effect of generosity that they released it for everyone to enjoy. Too many people think that Open Source bestows a right of ownership on them, but if you ever read one of these licenses carefully, all a creator is giving you is the right to use, distribute, and/or modify it.

So, if you’re looking to contribute to an Open Source project, now or sometime in the future, try to remember this: You are a guest in someone else’s home, please respect them and the work they have done. Try to understand their vision and their rules, get to know the way they operate, find out if they’re even interested in your ideas. If you approach them with a good understanding of their work, you’re more likely to get the result you are after, or maybe even find some other way you can fit in.

Thursday, April 23, 2009

Linux Lunacy

Okay, so since I got my brand new PC, I've had a few spare parts to play with. I went to rebuild a system with some odds and ends using my previous board, only to have it mysteriously shut down and start screaming this high pitched noise. Further investigation (read; pulled the entire sucker apart until it was nothing) showed the CPU became unseated from its socket. I assume heat did it, because none of the clamps had come off and the heatsink was firmly attached. Unfortunately, the CPU is fried, so I dug out an even more ancient board, my old AMD K7 with a Duron 850MHz.

After messing around a little, I finally settled on using Debian; I was looking to set up a media center in the lounge room for my mother to watch videos on (as she's using her ASUS Eee-PC with its tiny screen at the moment), but I also wanted a system I could (ab)use remotely - Linux seemed to fit the trick nicely - or so I thought.

I have literally spent the last three days, two migraines, and generally making myself feel crappier than I am - not really over installing Debian itself, the whole process of putting a base system on there went flawlessly after I realised GRUB's "Error 18" meant the board's BIOS couldn't handle a boot partition of more than 8GB. I guess the board really is old, and to be honest I am surprised it still works, it's been collecting dust for over six years now. My problem lay in trying to get the 3D accelerator (an ATI Radeon 9550) going, which was orphaned by the dead system.

Now, I'm no Linux newbie, I've used it quite competently in the past (to the point where I even had fun playing with Gentoo at one stage), but the error I was getting had me stumped, X.org would boot, but all I would get is this:
(**) fglrx(0): using built in AGPGART module: no
(II) fglrx(0): [pci] find AGP GART
(EE) fglrx(0): [agp] Failed to get AGP mode!
(EE) fglrx(0): cannot init AGP
(II) fglrx(0): driver needs X.org 7.1.x.y with x.y >= 0.0
(WW) fglrx(0): could not detect X server version (query_status=-1)
(EE) fglrx(0): atiddxDriScreenInit failed, GPS not been initialized.
(WW) fglrx(0): ***********************************************
(WW) fglrx(0): * DRI initialization failed! *
(WW) fglrx(0): * (maybe driver kernel module missing or bad) *
(WW) fglrx(0): * 2D acceleraton available (MMIO) *
(WW) fglrx(0): * no 3D acceleration available *
(WW) fglrx(0): ********************************************* *

No amount of messing around with the Proprietary or Open Source drivers would do anything to fix this, something was stopping it from getting access to the AGP card. My friend, Hirato, even decided to give it a shot by logging in remotely and playing around (I suspect to stop me from getting dismayed at Linux completely), but even he gave up after a few hours, it seemed unfixable. Even Google was coming up pretty useless here, and us geeks basically use it as our #1 information resource on the internet. Most people were having the exact same problem, but there was never any real solution from others, and I guess anyone experiencing the problem either gave up or never posted their success story; so that's what I'm trying to do here now to fix that.

So, I was about to give up, as my headache was starting to return from overexertion, when I decided to whack one more last-ditch search into Google: "linux agp amd k7". The results themselves didn't look too promising, apart from the top two which were mailing list threads (on an almost completely irrelevant subject), but I decided to flip through the threads nevertheless. There was a bunch of talk about kernel crap and debug calls, but the end result of those discussions ended in one clear thing; EDAC on an AMD K7 running Linux steals system resources and doesn't release them to other modules, like "agpgart".

To me, it seemed a bit far fetched, but I decided to give it a go anyway - I had nothing left to lose. I ran a "lsmod | grep edac", two results; "amd76x_edac" and "edac_core". Okay, so I poked around /etc a little and found "/etc/modprobe.d/blacklist" to the bottom of which I placed these two lines:
blacklist amd76x_edac
blacklist edac_core

I then rebooted the machine just to be sure everything was back to running how it should be, as I had been messing around alot, but I'm pretty sure I could've just run "rmmod" on the modules if things had have been clean. To my surprise, I ran "startx" and the damn thing worked.
(II) fglrx(0): AGP card detected
(**) fglrx(0): using built in AGPGART module: no
(II) fglrx(0): [pci] find AGP GART
(II) fglrx(0): [agp] AGP protocol is enabled for graphics board. (cmd=0x0f000314)
(II) fglrx(0): [agp] graphics chipset has AGP v2.0
(II) fglrx(0): DRI initialization successfull!
(II) fglrx(0): Acceleration enabled

Honestly, I did a dance in the living room right then and there. Three days of messing around and it was something as simple as removing a couple of faulty modules, I really couldn't believe it. It's this type of obscure annoyance that made me give up on Linux in the first place, but I really have to say I am overjoyed to have found the solution which nobody else could seem to correlate. So if you're having trouble getting an AGP card going in an old system (namely the K7 series motherboards), try turfing out the "edac" modules - it worked for me.

And that's my success story on another adventure in Linux Lunacy, hopefully you Google'rs will come across this entry in the years to come, find it answers your question and be forever grateful that you never got the headache I had to endure. Happy 3D acceleration to you.

Sunday, December 24, 2006

A Drug Called Google

Google, google, google. Servicing millions around the globe, it now contains half my life, including; This very Blog, as well as my Browser Settings, Calendar, Docs and Spreadsheets, Email, Notebook, Webpage, Homepage, Search Results, Photos, News Reader, and Chat. Needless to mention the other products I frequently use like; Earth, Image Search, Maps, Toolbar, Video, Web Search, Groups, and Translate.

So you have to ask yourself; How much before enough is enough? Before it consumes us all? Also, what do they want with all this information?

Monday, June 26, 2006

CatX - A Story of Determination

CatX Loading an Archived File
CatX Loading an Archived File
I was looking for a program to catalog my cd collection, but unfortunately none seemed up to scratch. At first I was going to settle for an external program that worked off a central database, but after sifting around for a while I had other ideas.

What I wanted was something that'd show all my files in the main tree on the media drive in their respective directories. When you double click on an archived file, it tells you to insert the cd, then proceeds to execute it. I played around with WinAPI until my head hurt, but I did come across one thing I made use of, SetupPromptForDisk which handles the CD stuff. In the end I wrote the cataloguing program in mIRC, and just used a stub program I wrote to handle the association.

Lo and behold, CatX was born. In less than a day I managed to hack up this little program to run an archived file from CD anywhere on my network, so now the tedious task of remembering what is on which cd is no longer a problem, and it fits in with my nice little tree of data.