Probably Dance

I can program and like games

Month: May, 2011

Template Metaprogramming, Reflection in C++0x

So I’ve been working on the serialization code for our engine. And I’m finally understanding the more complex aspects of template metaprogramming, and it turns out that there are some neat things you can do with it that aren’t directly related to serialization.

OK let’s say you have an editor in your game, and in this editor you have a button “Add Component” which adds a new component to an entity. That button would open a pop-up menu, where you can select from all your component types and after selecting one, a new instance of that component-class is created and added to the entity. How do you populate that list? My solution using template metaprogramming and reflection is after the jump:

Read the rest of this entry »

About Playtesting

So I’ve been thinking a lot about playtesting recently. Mainly triggered by Portal 2, my experience in making the game Leshy over the last semester, and also by lots of other stuff like this talk by Jonathan Blow.

I was showing the finished version of Leshy to our composer, Tyler and I was watching him play the game. He eventually got to an area where he got stuck. And I knew exactly that the reason why he was stuck was, that he had gotten to this area too early and that he didn’t yet know about a game mechanic that another area would have instructed him about.
If you have ever done a playtest, you know that this is a horrible situation. In playtesting you are not supposed to intervene. You don’t give hints, you just watch the player play and see if he figures it out or not. So I was sitting there watching this guy trying various different things, all of which were destined to fail. It was extremely frustrating to watch this. I knew that he couldn’t succeed because the game hadn’t instructed him yet, but yet he kept on trying. He got it almost right and failed. He got it very wrong and failed. He tried the very wrong thing again and failed. He failed, failed and failed again. And I’m sitting there just wanting to shout and scream and just tell him how to do this, and that this wasn’t his fault and that we’d fix this and oh why won’t you at least give up and go somewhere else first so that you may come across the training section that you missed.

Get the sphere up to those stairs. Shouldn't be that hard, right?

Anyway. That was my impression. He on the other hand was having a good time. For him this was a challenging puzzle that he was trying to figure out. It is totally OK for a player to be working on a puzzle for five minutes, at least as long as he can keep on trying new stuff and isn’t completely stuck. And he did eventually figure it out.
I don’t think he was frustrated at all. It was just me being frustrated. Below the jump I think about Valve in relationship to this experience:

Read the rest of this entry »