News for hackers. Stuff that matters.

fgsfdsfgsfds

Re:A Pixel Artist Renounces Pixel Art on Wednesday May 13, 2015 @01:40AM (#9536983)
I have no idea, sorry. It would be very interesting if it were true, but it sounds like a bit of an urban legend. Working within the constraints of limited resources seemed to be a constant in all of Japan's pre-bubble successes, from comics, to calculators, so I wouldn't assume there would be any extraordinary reason for early Japanese animators to follow the same principles.

My interpretation was that anime's more limited, stylized animation was due to its direct influence from the prolific manga artist and animator Osamu Tezuka (sometimes called "the Walt Disney of Japan.") All comics, Western or Eastern, must heavily stylize motion in order to have any hope of expressing it in still frames. So having an accomplished dramatic comic artist lead most of the earliest, most influential Japanese animations, most of which were direct adaptations of his comics, working with the low framerate stylized motions that extended naturally from comic book stills, seems to have had a profound effect on the Japanese school.

In contrast, Disney's early animations were inspired by conventional cartooning in subject, and early film and Vaudeville in motion, so given Disney's influence, it should similarly not be surprising that the Western animation school tended towards comedy and fluid motion that attempted to emulate the impression of film.

Re:A Pixel Artist Renounces Pixel Art on Wednesday May 13, 2015 @01:04AM (#9536849)
Thank you for sharing your experience. Pencil mileage is a great way to sum up the difference between the two traditions. Sorry for sounding so down on Western animation; it's true that I'm more used to the look of Eastern animation, having invested much more time invested in it (hence my mistake about Western films animating on ones vs. twos; it's been a while since I watched one of the classic Western animated films, oops), but I don't want to discount the work of Western animators. I have my biases, but there are gems in both traditions, and of course I'm saddened by way Western 2D animation has fallen by the wayside in mainstream Western (or at least American) culture since the dawn of 3D animation.

As for games, I wanted to add a comment to my post about how I was mostly thinking about mid 80s-early 90s games, but Hacker News seems to have some restrictions keeping new users and throwaways from editing posts. Many European games from this time stood out to me as compromising gameplay at the expense of their animation. In contrast, many of the 90s and early 2000s Western mascot platformer games, as you mentioned, did great jobs of working charismatic, fluid animation into the medium. Crash Bandicoot in particular is notable for being one of the few games to use per-vertex animation; for each key frame of animation, the vertices that made up Crash were placed manually, giving the artists an unprecedented degree of control.

Since then, sadly, most Western AAA devs have tended overwhelmingly towards more "realistic" art styles that make heavy use of inverse kinematics-driven procedural animation for gameplay, and motion capture for cutscenes, leaving the animators much less room for expression.

Regardless, my intent was not to comment on Western animation as a whole, but (bringing it all back to the original commenter's remark about mobile games being sparsely animated) simply state that sparse animation doesn't have to be a bad thing, and in fact, there's an entire school of animation built around it.

Anyway, thanks again for replying, and I'll be sure to check your suggestions out.

Re:Verizon to Buy AOL for $4.4B on Tuesday May 12, 2015 @07:49PM (#9535788)
yeah man who the fuk has time to read two whole PAGES of words this aint social studies LMAO #yolo ☺☺☺☺☺☺☺☺☺☺☺☺

can i get the sparknotes for your middlebrow hacker news dismissal i got SHIT TO DO SON 💩

Re:A Pixel Artist Renounces Pixel Art on Tuesday May 12, 2015 @06:04PM (#9535274)
You hit the nail on the head.

Funding is also a big part of it. It's much easier to get funding for a mobile game than for an indie PC game, even though the mobile game is significantly less likely to make a return on investment. So perhaps some mobile devs know they aren't going to make it, but take the money anyway so that they can work on something on someone else's dime, while they build up experience and add another piece to their portfolio.

I'm not convinced it's a worthwhile trade, however, if it makes you lose your faith in humanity and your art form in the process.

Re:A Pixel Artist Renounces Pixel Art on Tuesday May 12, 2015 @05:54PM (#9535218)
I meant to imply that they (in the typical case) don't really have an interest in games as a medium, and are simply looking for small distractions to fill gaps in their lives. If they don't appreciate the games themselves, I don't expect them to appreciate the art behind them either.

But since you went there, I do think that exclusively playing freemium slot machine games is an indicator of bad taste. Just as someone that exclusively eats at fast food restaurants probably has bad taste in food (yeah, I made a fast food analogy).

I feel sorry for the kids that grew up with smart phones and have never known a game that wasn't vapid and exploitative. There are worse fates, but still.

Re:A Pixel Artist Renounces Pixel Art on Tuesday May 12, 2015 @05:14PM (#9534939)
That's fair, but if you want to make art, there's no sense in trying to appeal to everyone. The guy that disregards pixel art probably wouldn't see your traditional art for what it really is, either. You can be depressed that the "mainstream" doesn't appreciate what you do, you can crush your spirit trying to pander to them, or you can have fun in your cozy niche with a small handful of fans and peers that really get you.
Re:A Pixel Artist Renounces Pixel Art on Tuesday May 12, 2015 @05:04PM (#9534852)
A fundamental difference between Japanese and Western animation is their approach to motion. Western animation emphasized fluid motion, attempting to stick to the maximum framerate (24 FPS) allowed by the film medium as much as possible. This could produce striking results, but tended to limit artists to more simpler, slower, more deliberate stretch and squash movements that would make sense when interpolated across key frames. It was also very expensive to produce, which is part of why western studios have mostly abandoned traditional animation, and why the ones that still do 2D often use Flash to cheaply "tween" between keyframes to get fluid motion for the minimum amount of effort.

Japanese animation, on the other hand, plays fast and loose with the rules. Very little is animated at the full 24 FPS, drifting around 12 to 8 to 6 FPS (called animating on twos, threes, or fours) for typical scenes. This allows for the user's attention to be captured by backgrounds and stills in expository scenes, and encourages a different style of exaggerated movement that emphasizes the ''feeling'' of the movement over brute force motion quality. It also allows the budget to be conserved for the most important scenes, sakuga ("moments in a show or movie when the quality of the animation improves drastically, typically for the sake of making a dramatic point or enlivening the action.") So called "key animators" work exclusively on these parts of an animation, and here, their skills in creating expressive motions shine when given the time and resources to completely bring a dramatic scene to life.

As the game, comic, and animation artforms grew alongside one another, early games took direct influence from styles of animation native to their creators. The concept of sakuga fit Japanese games well, which would often sparingly animate unimportant "cannon fodder" enemies for the sake of saving budget and development time for elaborate boss monsters. In contrast, I was always struck by the fluidity of motion in Western games produced by groups like The Bitmap Brothers for the platforms like the Amiga, yet unimpressed by the gameplay underneath. It seemed almost as if these groups would spend so much time lavishly animating their characters, that they would forget they were making a game.

Another important consideration is that more frames can work against an action game. Every frame of a sword swing, for instance, is another 16th of a second delay between the player's button press and the intended action occurring. A 1 or 2 frame anime-style sword swish fits perfectly into this mold, allowing for responsive control and an expression of energy. Whereas many Western games I played would lavishly animate the beginning of a jump, or thrust or swing of a sword, compromising the feel of responsiveness for the sake of the artist's ego.

So if you notice the lack of frames in a modern "pixel art" game, then while the artists might have been lazy (the typical "pixelated platformer" drawn at a lower resolution than an Atari, with more colors than a SNES game), perhaps they instead were copying older Japanese artists without understanding the reasoning behind their animation choices. Or perhaps you just don't appreciate this style of animation.

Re:A Pixel Artist Renounces Pixel Art on Tuesday May 12, 2015 @04:07PM (#9534501)
Sounds like they should have been developing for PC instead of mobile. The average mobile user plays exploitative "freemium" garbage to kill time in lines. How can you expect them to appreciate the art behind it?

Meanwhile, "retro"-style games are doing gangbusters on Steam, selling to people that actually appreciate those styles of art, music, and game design.

Re:Verizon to Buy AOL for $4.4B on Tuesday May 12, 2015 @12:36PM (#9532939)
I hate this attitude. It reeks of privilege and naivety of the working world outside the speaker's bubble, which is especially ironic considering that its proponents are usually very liberal (and thus love to talk up how pro-worker and considerate of their privilege they are, except when it concerns xenophobic straw conservatives). But I digress, so let me tell a story instead.

My dad was working in $TECH_FIELD for a subsidiary of a multinational megacorp ($BIGCO; you might have heard of them). Said subsidiary had decided to branch out into providing $CERTAIN_KIND_OF_TECH_SERVICES to $OTHER_BIGCOS.

My dad's team was one of the few that got their work done without trying to play "the game" too hard. Almost everyone else in the company would fight them every step of the way, fighting to gain control over a certain aspect of his account (for the power and influence, of course), then never ever doing any work towards it, forcing my dad's team to pick up the slack for everyone else while they took the credit. Say, a team would receive the job of designing $TECH_SOLUTION, but the deadline would loom and my dad's team would never, ever receive the design from the design team for him to implement, so it would end up being all on him and his teammates to design and implement $TECH_SOLUTION.

So it was just under a dozen people with my dad, working their asses off to provide services to this particular account. A friend in middle management let slip once that they were the only profitable account in the entire division, and their customer was the only one happy about the service they were receiving.

After a few years of depressingly poor management and vicious office politics, $BIGCO decided it was time for a change, and brought in a new CTO to turn the ship around. Naturally, said CTO decides that the best course of action would be to lay off almost the entire team working on the only profitable account in the whole fucking division, and replace them with offshore contractors. Only a few months before a critical infrastructural change required by the contract needed to be completed, and just over a year before the contract was to expire. I'm sure you can see where this is going.

My dad was one of the few spared from this show of gratitude, and was promptly tasked with training the offshore workers. Pretty straightforward, right? Employees are just cogs. It doesn't matter if they've spent decades, almost their entire working careers, mastering this field. You can just take any random college graduate and bring them up to speed in a month, right? Better yet, get an offshore one that costs a 10th or a 20th of what a Red Blooded American would demand, and pocket the difference. That's like, free money!

Wrong. Said contractors barely spoke English, and knew less about $TECH_FIELD than I did. As futile as it would be to train a western college grad up to the required proficiency before the deadline, it is downright impossible to do the same with language barrier erected in front of you. My dad and the rest of his team would spend hours on the phone with the outsourced workers, trying to walk them through a process, starting from very basic first principles that anyone with their degree in their field should know, and... silence.

Needless to say, my dad and most of the other remaining members of the team got out of there ASAP. $BIGCO realized their incompetence too late, tucked their tail between their legs and tried to hire back the laid off team members, but unlike most of the stories you had scoffed at, they were all able to get new jobs in the mean time. Service quality plummeted, the customer was appalled when they realized what had happened, and when the time came, decided not to renew their contract. A few months later, $BIGCO decided to get out of $BUSINESS and laid off the rest of the division.

---

Ok, so what can we learn from this? Let's consider a few (not necessarily mutually exclusive) possibilities:

1. (Some) corporations are mind-boggling stupid, with the foresight of a goldfish, and greed that would make Ebeneezer Scrooge blush. They will happily ruin a profitable business to save a few pennies in the short term.

2. (Some) offshore firms from third world countries know this, and build their business around pulling fast ones on these stupid corporate executives. They tell them everything they want to hear about how the workers in $COUNTRY are just as good as the ones in America, but will work for pennies on the dollar, and so much harder! Then, when they seal the deal, they go out and hire a bunch of newly minted college grads with zero experience in said field, and tell them to play the part while they cook up some nice resumes. Yeah, I said it. It's stupid enough to begin with to fire 75% of a business, leave it in the hands of a few college grads, and expect everything to work out. It's downright suicide when you consider the rampant degree and resume fraud that these offshore firms perpetrate, and how brazenly corrupt many universities from the third world are. And the beautiful thing is, the language barrier makes it extremely difficult for management to tell that anything is wrong until it's already too late.

3. Of course not all foreign workers, or even all foreign workers from the third world, are like this. When people talk about incompetent offshore workers taking their jobs, this is the kind of downright fraudulent practice they speak of, not the honest workers that really are just as good as their western counterparts (and will probably end up moving as soon as they can...)

4. Don't be intellectually lazy and lean on the perception of racism or xenophobia. Said stupid corporations will also happily fire older workers with decades of experience for clueless American college grads, and ruin businesses that way. It never occurs to them that you can train young employees while the old guard keeps things running smoothly, because they're seeking the petty short term profit at the long term detriment to the business. Why?

5. Corporations are managed by psychopaths. They ruin their businesses in these ways because the go-getters all want the short term boost in profitability that will promote them up the corporate ladder quickly enough that they won't have to deal with the consequences. Even if it destroys the company, these psychos will have long since bounced to another job beforehand. Said psychopaths wage wage war in the office. An interpretation that I didn't initially consider of my dad's story was that maybe said CTO or one of his new managers was deliberately trying to justify axing the division by destroying the only profitable team. So it's also entirely possible that in many cases of offshoring, the "incompetent" actions of the corporation at large is really just one person trying to snuff out someone else vying for the promotion they want.

---

So, all of this giant wall of text considered, my point is that, well, there are a lot of reasons beyond employee incompetence why a corporation might offshore a worker. It's intellectually lazy and downright rude to imagine some straw factory worker screaming "DEY TOOK ERR JEERRRBS" and shut off your brain every time you hear someone complain about the practice.

As for the question of "what about the guy that got offshored and has been unemployed since," I have more stories (some my own, some from others) I could tell, but since I've already overstayed my welcome, I'll be explicit: Economic downturns suck. Getting laid off or offshored during one could very well leave you unemployed for years, during which no one is willing to hire you. Even when the economy picks back up, it's going to look bad on your resume if you spent years unemployed (or employed in an unrelated field). It's even worse if you're older, and ageism kicks in.

In this scenario, you'd probably need to change careers to survive. As programmers, this doesn't sound so bad to us, because we know (knock on wood) that some kind of programmer will be demand for the foreseeable future, and we should always be able to change a technology "stack" or platform or whatever and find a new job doing very similar things. But not everyone is as fortunate as us. For most people, having to change careers means throwing everything away and learning something new. If you need to do that to keep the lights on, you do it, but it gets harder and harder to do so as you get older. So don't be so hard on people that made the wrong choice and picked a career that disappeared from under them.

Re:Verizon to Buy AOL for $4.4B on Tuesday May 12, 2015 @10:11AM (#9531855)
Because you commented before reading the link.
Re:Abstraction without overhead: traits in Rust on Tuesday May 12, 2015 @10:09AM (#9531837)
No, I was talking about iterating over an array of objects calling their virtual functions (or either of the additional cases listed above). Of course it's easy to "do the right thing" with homogeneous arrays, either in the compiler or by hand if need be. But if you're iterating over a homogeneous array, calling the same virtual function on every single one, and your compiler somehow manages to notice this before you do, you probably screwed up in your design somewhere, so that's not the kind of problem I'm talking about.

It usually is smarter for performance to do the "data oriented design" thing and break the heterogeneous arrays into separate homogeneous arrays, so that you can potentially avoid a few levels of indirection, hoist loop invariants out, and maybe even make use of SIMD. But the whole point of the conversation was to talk about a nontrivial abstraction that (supposedly) trades performance for clarity. So I gave a scenario that would exercise that overhead.

Re:Abstraction without overhead: traits in Rust on Tuesday May 12, 2015 @09:55AM (#9531754)
I didn't say they were dynamically sized. You could either have objects of the same type, but with virtual functions, or you could make a union of all applicable objects (thus guaranteed to be constant sized, at the size of the largest object) and store those in the array/vector, switching on a type enum or calling a function from an inherited base class.
Re:Abstraction without overhead: traits in Rust on Tuesday May 12, 2015 @04:57AM (#9530351)
> you would store the concrete structs continously in Rust as well. Rust would also not waste space in the vector for storing a vtable-pointer, and would instead construct fat pointers dynamically when needed (since it knows the type, it knows which vtable to inject in the fat pointer).

Uh, what? How is the compiler just supposed to magically know which of the structures in the array are of what type, without any additional identifying information? I'm assuming that in this optimized case, there's a hidden type field in each struct, that it would use to index into a table of vtable pointers? If so, there you go, that's yet another level of indirection.

Re:Abstraction without overhead: traits in Rust on Tuesday May 12, 2015 @04:28AM (#9530239)
That's assuming that a "full pointer" (i.e. an unpredictable address to an arbitrary point in heap memory) is the only way to get a reference to an object. What about if you want to stick a bunch of objects in a vector, and iterate over them linearly? In the C++ approach, the data will have a nice linear cache access pattern. In the Rust approach (unless I'm missing something) you'd be storing a vector of (double sized) pointers, to god knows where in heap memory... suffering a cache miss on every access, on average.