XNA SpriteBatch Stalling every Second

Public Service Announcement:

If you're doing simple 2D sprite stuff in XNA, and every second or so, the GC is hitching, it's because of SpriteBatch. Every call to SpriteBatch creates a new object, which eventually needs to be GC'd. This will give you a stall every second or so, as the GC runs and tries to clean up.

Kind of sucks really. Ultimately, it means that if you want to get around this, you're going to need to write your own Sprite rendering code that allocates everything up front, and doesn't release anything until a level change, and recycles as much as possible. Not too hard - just build a quad, and write the appropriate code to render it. But it's a lot more work than just slotting it in, unfortunately.

(more...)

Virgin America Rocks

I just got back from the X-Ray Kid Google Lively ship party in Los Angeles, which was frankly awesome and merits a post of its own as soon as I can get photos to go with it. But for now, I just have to write about Virgin America.

Virgin America is a relatively new airline, and frankly, it's the best one I've ever flown on in the continental United States. Period. There is no better.

Not only are the flights comparable in price to other airlines (eg. Alaskan - hithertofore my favorite airline), but they somehow have managed to do something no other airline has in a very long time.

They're classy.

No, seriously. They care about the traveling experience, and it shows.


The view from the seat. Look at the pretty mood lighting. It's positively forcing you to relax

Not only are they running a fleet of brand new Airbuses, but they do lots of little things to take the edge of. Little, psychological things that you might think wouldn't really make a difference, but do.

Like putting flowers at the check-in desks and at the gate. Which isn't a big thing... but it's nice. And it makes you feel more comfortable.

All their staff are probably the friendliest people I've ever seen in an airport. Ever.

They have mood lighting on the plane, which makes for a more interesting experience than the usual horrible white fluorescent lights.

Free headphones that they hand out from bins in the gantry as you get on the plane.

Free soft drinks - the first round of which is delivered to your seat standard style. After that, you can use the in-seat entertainment system (which you can use to play Doom, or watch a movie you can buy... or watch free TV and TED Talks - which kept me busy for over an hour because they're always worth watching) to order more drinks, which they'll bring to you personally when they have a moment.

Which is freakin' awesome.

It's also the first airline where the pilot (Lloyd, on flight 715 from LAX to Seatac, 6:35pm, 8/24/2008 in case anyone wants to pass this on to him) made a personal point to come over to me & Darci (who were waiting to see if we could upgrade to exit-row seats because the check-in systems were down), and to thank us for flying Virgin America, and for our business, and to tell us that he was going to be flying us to Seattle today, and he hoped we'd have a good flight and that the gate people would be there shortly.

Darci and I stared at each other. We were sure he had been drinking - or something. And then a little while later, he got up again and left the crew who were waiting for their flight to come in, and introduced himself to another passenger.

No, he hadn't been drinking. This is old-school airline hospitality, the like of which hasn't been seen since the days of Zeppelins. And you know what? It's so sad that this is so out of the ordinary these days that we thought he was on something. Because you know... that shows class. I have more appreciation for Lloyd and the Virgin America crew because of that small gesture than I would have ever thought possible, and I had a much more enjoyable flight because of it.

Virgin America guys, and Lloyd in particular - in fact, all of the crew of that flight (and the prior one I took on Friday) - you totally and utterly rock. You have literally made my flying experience better than I could have imagined would ever be possible in today's world of cutbacks and penny-pinching. And it didn't cost you a dime.

BTW: Exit row seats? They're counted as premium, and will cost you somewhere between $50 and $15 to guarantee that you get one. Frankly, I'm more than willing to pay it to guarantee the seat. Their upgrade to 1st class is cheap too - $200 on the flights we were on. We didn't take advantage of it, but maybe next time. (Darci hates to fly, so this is a good tradeoff).


In seat entertainment system...

 
... running Linux. Unfortunately, it had totally crashed and would not boot up at all on our flight down to LA. Fortunately, we got free drinks and food for the entire flight because of this...

It's not all roses though...

Written on the flight from Seattle to LA:

Unfortunately, the Linux-based in-seat entertainment systems keep crashing. They've tried resetting them, but to no avail. They just hang on startup at the initial login screen.

Yay. Linux. Thank you, you wonderful Open Source operating system, for all the free drinks and food I'm getting on this flight. Knew you were good for something!

Although to be honest, I'd rather have seen the movies. Either way, next time someone tells you that Linux never crashes, never blue-screens, never dies... just let them know: yes, it does. Except it doesn't blue-screen. It just hangs and sits there. Which is worse, because now I've spent over 30 minutes of this flight just waiting, hoping, pleading with the cute red screen in front of me... praying that it will turn into entertainmenty goodness.

Also, on the flight back from LA to Seattle, the self check-in desk systems were all down. So far as I can tell, those ones run Apache Tomcat on Windows. The desk people were incredibly nice and helpful though, and we got past it all without a hitch.

For some reason, Virgin has a LOT of computer issues (issues with its web-based train booking system caused problems for me & Darci earlier this year - but the Virgin Trains team went above and beyond to fix the problem for us as well). Small glitches aside though, their overall level of quality service just puts them head and shoulders above everyone else in the industry. They really rock. Am I saying that too much?

So far as I can tell, this is because they actually care about service. They care about making sure you have the best experience possible. They really do. And that's as rare as hen's teeth these days.

Give them your money. They deserve it far more than Continental, US Airways, Delta, or pretty much any other airline out there. They deserve to succeed, because they're making travel an experience that hasn't been around in this country for at least 20 years. And frankly, given how much of a pain traveling in coach is, it's worth it.

Photos taken from Dave Zatz's collection

(more...)

Amazon's Fall Textbook Promotion ... promotes pseudoscience

Go to any of these wonderful pseudoscience text books on Amazon:

Quest for Zero Point Energy Engineering Principles for Free Energy

The Final Theory: Rethinking Our Scientific Legacy

Occult Ether Physics: Tesla's Hidden Space Propulsion System and the Conspiracy to Conceal It

... and you get this:

Special Offers and Product Promotions

  • This title is eligible for Amazon Fall Textbook promotions. Get unlimited free Two-Day Shipping for three months with a free trial of Amazon Prime. Add $100 worth of eligible textbooks to your cart to qualify. Sign up at checkout. New members only.

Sorry, Amazon, but I hope this is automated, because if not... oh boy.

(more...)
#pseudoscience, #idiocy
Bookmark the permalink.

What makes games fun?

It's an interesting question. A better one, though, might be... what makes play fun?


Bet you've not made one of these since you were a kid...

There's a lot of psychology being worked on right now on why games are fun, but some of it is common sense. Here's a quick laundry list I put together of what's fun and why.

  • Are you emotionally engaged?
    That's fun... or at least, it's engaging. It makes you feel something.
  • Are you narratively engaged?
    (Do you want to see what happens, or how the story ends?)
  • Are you physically engaged?
    Are you pressing buttons and getting feedback? Are the buttons consistent? Is there room to learn a new motor skill?
  • Are you learning?
    Learning is fun, provided that there is feedback and reward.
  • Are you projecting?
    Do you feel attached to the character you're interacting with? (eg. move your mouse to the top of the screen, and smack it there. You'll feel a little psychomotor feedback, as if the mouse is "sticking" on something. That's projection. It's what lets you feel the tip of a screw when you're using a screwdriver).
  • Are you learning new projection-related skills that are unlike things you do in everyday mundane life?
    eg. Rolling things up in Katamari Damacy, jumping 3 stories in Crackdown, dreaming about tetris blocks, creating Portals. You can tell if you're doing this right, because you'll look around your mundane everyday world, and think about how to do those things within it...
  • Is there direct feedback in the system? Are your actions connected directly to the actions you see on screen? Are the consequences mostly immediate (ties to physicality) or long term (ties to narrative).
  • Are you competing with another player, human or otherwise?
    Humans are competitive animals, and a lot of play in animals is to lay down the rules for territory and battle.
  • Are you collaborating with another player, human or otherwise?
    Humans are societal animals, and a lot of play in animals is to lay down the rules for cooperation and collaboration.
  • Does it provide a change in state for the player, preferably into a "flow" state? (eg. Rez/Geometry Wars/Zuma = Trance/Flow state) http://en.wikipedia.org/wiki/Flow_(psychology)

Ultimately, a fun game requires:

  • Feedback - actions have consequences, preferably immediate (unless narrative)
  • Progressive induction - that is, start easy, get progressively harder. Challenge the player - but at a rate appropriate to them so that it causes frustration, but not too much.
  • Rewards - doing something cool must provide a reward.

Fun may or may not require:

  • Narrative engagement
  • Physical engagement
  • Emotional engagement
  • General learning
  • Competition
  • Collaboration
  • Projective learning
  • Induction into "flow" state

... but usually a fun game will require at least one or more of these ancillary categories to provide depth and engagement. The most powerful of these are Flow, Projective Learning, Competition and Emotional/Narrative engagement, in roughly that order. And they're also that difficult to attain, in that order. clip_image001

That's my take on it anyway.

Examples

Note that I'm only listing the dominant traits of these games. For example, Crackdown has a small narrative element, but it's really really small - certainly nothing compared to GTA4's storyline.


Panzer Dragoon Orta - a game which involves a lot of General Learning (to get the patterns right), Physical engagement, a smidge of Narrative engagement, and some gorgeous graphics

Rez
Physical engagement, General Learning, Induction into "flow" state

Crackdown
Physical engagement, General Learning, Competition & Collaboration, Projective Learning

Indigo Prophecy
Narrative engagement, Physical Engagement, Emotional engagement, General Learning

Portal
Narrative engagement, Emotional Engagement, Physical Engagement, General Learning, Projective Learning

Project Gotham Racing
Physical Engagement, General Learning, Projective Learning, Competition

The Suffering
Narrative Engagement, Physical Engagement, Emotional Engagement, General Learning

Schizoid
Physical Engagement, General Learning, Competition, Collaboration

PacMan
Physical Engagment, Projective Learning (hugging the walls), Induction into "flow" state, General Learning

Rock Band
Physical Engagement, General Learning, Projective Learning, Collaboration

So what's the Upshot?

If you're designing a game, see if you're missing any of these elements, and try to figure out how to get them in. You don't need all of them, but most games will involve some kind of General Learning (ie. they're not totally random because that's unfair - even Minesweeper won't let you click on a bomb on your first move) by default. Identifying which elements of your game correspond to each of these categories can also help you to refine those experiences.

(more...)

Schizoid!

You might not have seen this new XBOX Live Arcade game, and if you haven't, you should definitely check it out.


This is my ship... you can have the Red one. No, I don't care that blue is your favorite color. It's mine! Mine!!!

Schizoid (by Torpex Games) is a two player co-op game that you can play over the network or on the couch, and it has a really simple game mechanic - the Blue player can kill Blue things, and the Red player can kill Red things. The opposite color to your ship is deadly. And that's it. No controls other than a single stick to worry about, it's pure distilled simplicity, and rather addictive.

Never mind the tortuous Uberschizoid mode which has you as a single player try in vain to split your brain in half and control two ships at once - one with the left stick, and one with the right.


Obscure Schizoid Reference involving flapjacks, brainwashing, left vs right handedness, and black Russian cigarettes

I met creator Jamie Fristrom at Gamefest last week, and he can't complete it on Uberschizoid mode, although he's come pretty close. Other people at Torpex have done it, which probably means that they're drummers.

Check it out and download the demo for free - what do you have to lose but your sanity?

(more...)

subscribe via RSS