Friday, January 9, 2015

Sluggish, Poorly Coded Games & Today's Overrated Hipster Indie Devs (Pro #GamerGate Dev Rant)


Real talk...the focus on slow, sluggish, upper upper level spaghetti code like Ruby or js might be the cause of the more, as they say... "cinematic" games.  Yes, Javascript is finally getting some ok (albeit still bloated) frameworks...but as somebody who came from an era when calling yourself a "game developer" in the Computer Science field was still taboo...we were strictly taught to make the best code for the specific system we are working on.  This included getting to know your computer's code all the way down to Assembly.  I'm not saying you should know Assembly for every chipset you code for...portability of apps/game is very important today due to the various marketplaces (Steam, IOS, Android, Web, PC, Consoles)...but a real programmer must understand that this one-size-fits-all methodology with IDEs like Unity won't always work as planned.  Not all systems are created equal.  What works on a an iPhone might not work on an Android phone... what runs smoothly on an Xbox might not work on a Playstation. A great example of that last example would be Skyrim.  Due to the now old PS3's memory allocation methodology with it's Cell computing, memory management is very tricky. The result was a very buggy and subpar version of a great game.

Again, I can understand from a business point of view why you would want to code once and have it run on all devices...but what the current indie scene forgets (in addition to giving all accolades to "devs" who hardly proved themselves beyond some political message and/or Patreon panhandling) is that there's a cost associated with a one-size-fits all coding structure.  




Even AAA companies like Ubisoft are running into this issue.  Tetris on the PS4 should not in any way run sluggish...but that comes from bloated firmware and bad coding practices.  Video game programming is not easy and unlike applications seen in other industries like business & finances... video game programming does in fact use ALL you learn in Computer Science, from coding a full structure of classes that use inheritance and polymorphism both logically and (most importantly) fast.  To code a fast and highly interactive game you need to know things like when to use certain data structures over others for the best performance... when to use a struct or enums instead of whole classes, what to throw into closures and what not to during each step of the game loop cycle...when to use linked lists and/or tree structures for level design and/or pathfinding.  You then have to code all of that with finite, well structured animations, camera/movement or maybe some dynamic lighting, etc that don't blow up that cycle and lead to such lag.  This is why the professors I had in college in 2003 were dead wrong in their notion that it was "childish" to be a Computer Scientist for the sake of being a game developer.  



Today, everyone and their dog are game devs... or at least claim they are.  Trust me, I love it.  I want more game dev, guys and girls and I'm glad to see this branch of computer science get the limelight it has so deserved.  Back when I was in my CS courses in the early 00s...it was just so taboo to say you were a game dev and, yes, as others on both sides of the Gamergate / Social Justice Warrior have claimed... women in CS were almost non existent in the entire field.  Some women where there with me when I was in Suffolk Community College's CS courses but almost all were gone when I was in the large lecture halls of Stony Brook University... while trying so hard to understand the barley legible bumblings of their CS professors then.  Was bad enough my manager job at Friendly's almost killed me... it was salt to the wound to see my CS courses at Suny Stony Brook not only have even more disenfranchised professors, but have the front row of the "class" have what I could only describe as autistic "melvins" who interrupted the lecture every two seconds with questions.  I, like many do indeed want to see more women in the field as those few who do make the choice to be programmers do indeed get paid the same as their male counterparts (see Roberta William's example above).  Please, we need more girls in programming.  The doors are open but those who close the doors behind them need to be told why they are wrong.

Except, there's been an issue that older devs like myself have noticed and it's brought up by Daniel Vavra's quote above. Due to the recent spearheading of indie game development into popular culture... we are getting people who are riding on the coattails of this movement..using clickbaiting, profiteering, trend-spamming and professional self victimization to get themselves known as either game "journalists" or even, more a more damning precedence, as "game devs" themselves.  In the past, in both the journalism and game development fields...such people would have been told to "put up or shutup", they'd be held up to their actual skills in those fields.  I'm not saying I'm the greatest programmer around; despite my quick understanding of one of the newest programming languages.. Apple Swift (and creating a published game with it), my past knowledge of "tougher" languages like C/C++, Java and Obj-C...I'm still so green in the system since I only have one fully "completed" game, PikiPop, one forever-in-development game, Tenshi-Oni, and code stubs of games that might never be..thanks mostly to a terrible job luck that didn't end when I left Friendly's.  I'm not writing this to say "I've been here forever thus I must have a place in the indie scene"...but what I see are what we don't need in the indie scene... organizations, ones as old as the IGDA pandering to psuedo devs who have less to show than even I do as a dev, yet getting all the fame, financial help and accolades.  
Not only are we getting a new wave of game devs that are using a political message, loud complaining or in some cases self-victimization to get known and help by these now cracked organizations...but an emphasis in programming methodologies and languages that are counterintuitive to the tenants of all Computer Science.  The abnormal focus in Ruby and Javascript is proof of that. Granted, when I was in school, Java was the new kid on the coding block... it was a great tool for learning OOD...but in no way would you want to code games or any applications that required speed and runtime efficiency.  Back then, to be a game dev, you'd learn about OOD through Java but if you were to actually make a game... you did it in C++.  If that was too hard to do...you'd then maybe use actionScript and kept your game in the availability of only online Flash portals.  As of today, that has changed. Java is not the hog it used to be and is what's under Android's hood.  Java is now where it belongs as a legit mid-upperlevel language that also is much easier to read, structure than C/C++ or even Objective-C can be.  The growth of Java and Android was inevitable.  Javascript is not Java though...it's a completely different language and only now getting some ok frameworks.  

My issue is that we are having organizations like IGDA putting favoritism in programmers who probably never made classes in C/C++ or Java, whom probably know nothing of OOD, who cut and paste a function in a .js file and think it's just magic and then slap their name on it.  What's worse is that these organizations and game journalists are promoting these pseudo devs based off of their political views.. not their coding prowess.  Like other situations where politics controls it...those who don't fit in that opinionated mold get shunned out from any opportunity no matter their skill or willingness to improve that skill.  What we are seeing is a "cliche" of what you can loosely consider to be game programmers, making sub par products despite all the Patreon money (or in the case of Brianna Wu, $200,000 from mommy and daddy... I mean, fuck, if I had that I'd be a AAA dev by now... and I sure as hell would not make 3D sprites that look worse than the 1995 3D models from Reboot if I had the resources she has.)

What I'm saying is that if this trend with the "Indie Scene" continues... not only will we see quality devs be pushed to the side in favor of a rich upper middle class club, but we as gamers will lose the quality gaming that the indie scene has and can give due to the creative freedom (which the SJW side wants to control) and we could even lose much of what has been built on in Computer Science as a whole.  As a programmer who was told I'm not good enough... I do want an even playing field, but at the same time, we need quality in the coding and art that makes games so great.  We don't need a political agenda forcing the hand of the industry...otherwise we'll see more games that should be simple to execute on current gen systems & devices run terribly slow and thus cause the entire industry crash.  

Promote quality code, quality game art (sexy, violent or not), and devs who push for excellence in that field... not those who use the popularity of gaming as a soap box, whom now seem to want to be gatekeepers in this industry.