Experienced Points: Zynga and the Rise of the New Gamer

By Shamus Posted Friday Apr 2, 2010

Filed under: Column 52 comments

The name of Zynga is somewhat accursed among mainstream gamers right now. I think it’s sort of like fighting for thirty years to make a successful family restaurant based on authentic Mexican food, and then waking up one day to find out you have one tenth the business of Taco Friggin’ Bell. I couldn’t fully cover the subject in this week’s article (and I had to leave out the bit about Zynga’s shady business practices) but seeing the armies of “casual social gamers” finally appear in the same venue as “hardcore gamers” for the first time is a really interesting process.

The hate coming from the hardcore crowd to the Farmville / Mafia Wars types is intense. Well, nearly as intense as the hate that the various console devotees have for the other platforms. So, I guess they’ll fit right in.

 


 

Stolen Pixels #182: RE: Your Claim

By Shamus Posted Friday Apr 2, 2010

Filed under: Column 14 comments

Here I take a stab at Red Faction: Guerrilla.

It’s a tough game to make fun of. It’s filled with absurdities, but they don’t translate well into comedy. It’s just, “Hey, you know how the game sometimes does that odd thing? Yeah? That’s dumb, isn’t it?” The plot is sometimes just tepid, sometimes painfully ridiculous and contrived. The fun comes from blowing up and knocking down buildings, and the game is always trying to portion that stuff out. It wants to make sure you eat a helping of driving around on labyrinthine brown terrain and babysitting NPC companions before you can enjoy your building-toppling cookie.

 


 

Spoiler Warning 14: One Small Step for Conan…

By Shamus Posted Thursday Apr 1, 2010

Filed under: Spoiler Warning 31 comments

Yes, this series is becoming increasingly irregular. Also, I’m not sure why the audio is so crappy. See, we had to change vent servers and then there were connection issues and the dog ate my homework and my car broke down and I had jury duty and a dentist appointment and my aunt got sick.

We’re uh… working on it?

Also, Randy and Josh have a debate on the relative size of the moon vs. an elephant.

moon.jpg

I do believe Josh is vindicated.

 


 

Shamus Plays LOTRO: Part 11

By Shamus Posted Wednesday Mar 31, 2010

Filed under: Column 26 comments

“Hey Shamus! You should do the hide and seek quest! You should do the pie quest! You should Slam your face in a car door!”

You people and your constant demands for me to abuse myself for your amusement.

 


 

Stolen Pixels #181: The Prognosticationater

By Shamus Posted Tuesday Mar 30, 2010

Filed under: Column 24 comments

Behold, the future.

 


 

Lingua Programmatica

By Shamus Posted Monday Mar 29, 2010

Filed under: Programming 187 comments

Typical non-programmer question: Why are there so many programming languages? Why doesn’t everyone just pick the best one and use that?

Fair enough.

The definition of the term “computer language” can be really nebulous if you encounter someone who is in the mood to engage in social griefing through pedantry. Instructions for a machine to follow? Does that include 19th century player pianos? Machine code? Flipping switches and wiring on those first-gen electric computer-type contraptions? Considering over half the “language” consists of dragging and dropping icons, does Scratch count?

Let’s just sweep that all aside and assume languages began with the idea of stuff like COBOL and FORTRAN and we don’t care to refine the definition further. Humor me.

It’s pretty much standard practice to do the “Hello World” program when you’re learning a new language. The goal is to simply print the worlds “Hello World!”, and that’s it. It’s basically the simplest possible program that can still do something observable and meaningful for someone new to the language.

Here is the program in assembly language:

_start:					
 
	mov	edx,len
	mov	ecx,msg
	mov	ebx,1
	mov	eax,4	
	int	0x80

	mov	eax,1
	int	0x80
 
section	.data
 
msg	db	'Hello, world!',0xa
len	equ	$ - msg

Here is a functionally identical program, written in standard C:

				
#include <stdio.h>
  
int main(void)
{
    printf("hello, world\n");
    return 0;
}

And in BASIC:

				
10 PRINT "Hello, world!"

The first is incomprehensible to anyone who doesn’t understand assembler. The second is tricky, but you might be able to intuit what it does. The last one is simple and obvious. So why would you ever use anything other than BASIC?

Here is how the trade-off works: On one end you have a powerful, flexible language that makes highly efficient code. It can be used to make anything and the code will always be extremely speedy and have the lowest possible memory overhead. (Setting aside the issue of individual programmer skill.) On the other end you have a language that’s easy to use and understand. Some languages are optimized for specific tasks. If you happen to be doing one of those tasks, then your work as a coder will be easier.

Let’s say you want to write a program to take a given number and perform two tasks:

1) Print the number normally in base ten. So, ten and a half would look like: 10.5
2) Print the number in a base-6 number system and use an @ symbol instead of a decimal point. So, ten and a half would look like: 14@3. I don’t know why you would want a program that does this, but I promise this isn’t really any more arbitrary or goofy than a lot of crazy stuff a boss might assign the hapless coder.

The first task is conventional and almost all languages will have a shortcut for making that happen. The second task is unconventional and thus we’re not likely to have a lot of built-in language tools for doing it.

In assembler, these two tasks will be of a similar level of difficulty. You’ll have to write your own number-printing code from scratch, but when you’re done the two bits of code will be about the same level of complexity (very complex) and the same level of efficiency. (Highly optimized. (Again, this is assuming you know what you’re doing.))

In C, the first task will be trivial, and the second will take some extra effort. Printing the base ten number will be much, much faster than printing in base 6 with @ symbols. (Although both will be so fast on modern computers you’d have trouble measuring them. Still, if you had to print out a LOT of numbers, the differences between base 10 and base 6 would become apparent.)

In BASIC, the first task would be super-trivial. One line of code. The second task would require pages of code. 99% of your programing time would be spent on the second task, and it would be much, much slower than the first task.

Assembly is referred to as a “low level” language. You’re down there interfacing with the machine on a pure, fundamental level. Every line of code is basically an instruction carried out by the processor. BASIC is a very high level language. You’re writing things in abstracted, human-friendly terms, and a single line of code might represent hundreds or even thousands of processor instructions. Generally, the higher the level of the language, the more tasks become either trivially easy, or impossible.

The C / C++ language seems to be the “sweet spot” in this particular tradeoff. Most software on your computer was written in that language. But despite its dominance, there are still a tremendous number of situations where other languages are better for specific tasks. Some examples:

  • Java is totally cross platform. Write one bit of code and it’ll run the same everywhere. Downside: It’s slower. Really slow.*
  • Visual basic is dynamite if you need lots of small programs with simple functionality but complicated interfaces. If you need a lot of complex dialog boxes with sliders and buttons and drop downs, it will be easier to set them up in Visual Basic than C++.
				
10 PRINT "My chosen computer language is better than yours!"
20 GOTO 10

* There. Now we can be friends again.

 


 

Disney’s Copy Paste

By Shamus Posted Saturday Mar 27, 2010

Filed under: Movies 131 comments


Link (YouTube)

I never noticed that.

I will note that most of those movies are from “early” Disney, before it became Mega-Disney. You don’t see any of their work from the last two decades in there. Most of it looks like stuff from the 50’s and 60’s. Still, it is amazing that they re-used so many sequences of movements. Makes me wonder what techniques they used to generate the sequences that made this an attractive option.

And then at 1:13 when they recycled the same terrible racist stereotype. Arg. I’ll bet they wish they could take that one back.

EDIT: People are questioning the stereotype charge. See, I have it in my head that the guy playing the drums is an Asian stereotype: Squinty eyes, buck teeth, and I swear I have this memory of him talking in an exaggerated Chinese accent. Maybe having some sort of “Confucius say” shtick?

But it's a childhood memory. So many people are questioning the stereotype that I'm now doubting myself. Maybe I'm confusing it with another character.