Voronoi noise is cool

I’ve been playing with procedural world generation for a while now (because I’m lazy when it comes to level design), which of course means noise functions!

I’m really starting to dig voronoi noise after looking at some of the stuff you can do with it So, I hacked together a voronoi noise previewer:

(Next step: making it actually update in real time. It’s slow!)


Lambda!

Made this goofing around to see if I could compress an entire python program into a single expression. Who said Python Lambda’s aren’t powerful?!

(lambda:
    not globals().__setitem__('sys', __import__('sys'))
    and not globals().__setitem__('this', sys.modules[globals()['__name__']])
    and not globals().__setitem__('time', __import__('time'))
    and
    #program
    [setattr(this, k, v) for k,v in {
            'set_color': (lambda c: w(['*', ' '][c])),
            'abs': (lambda t: (t + (t >> 31)) ^ (t >> 31)),
            'w': sys.stdout.write,
            'smash': (lambda t: -((t * -1) >> 31)),
            'color': (lambda n,k: set_color(smash (k & (n - k)))),
            'col': (lambda n, k: k <= n and not color(n,k) and col(n,k + 1)),
            'row': (lambda n: not w(' ' * (40-abs(n/2)))
                              and (col(abs(n), 0) or True)
                              and not w("\n")
                              and (abs(n) < 63 or n < 0)
                              and not time.sleep(0.05)
                              and row(n+1)),
            'triangle': lambda: row(-60) or True and triangle()
        }.items() ] and triangle() )()

 


My reddit game jam game

I made this for the reddit game jam about a month ago, but forgot to post it here. So… here it is. It’s pretty short, but for 8 hours it’s surprisingly playable. (I started late)


On Motivation in Game Design

This is a pretty cool animation of Dan Pink’s talk on motivation at the  RSA. (I didn’t make it, just linking it here). I think he also did a  similar talk at TED; and if you haven’t read Drive yet, you should.

A connection I think worth making here is that, in terms of game design, a lot of being a game designer is being a professional motivator. You want to motivate players to engage in some sort of activity (presumably a fun one — but; I’d argue it doesn’t have to be fun). If you’re good they’ll continue to do that task for a long period of time, and if not, they’ll quickly move on to something else. I know that’s a leaky abstraction, but it’s a potentially useful way to think about it.

Now, the most interesting point of that video comes about two minutes in when he’s talking about how rewards affect motivation, and the surprising conclusion that science has come to, which is: adding rewards to tasks only increases performance for activities that are cognitively rudimentary. Once tasks require more than basic cognition skills, rewards actually hurt performance.

So, if I were to give you a dollar every time you pressed a button, you would press that button a lot more, but if I were to give you a dollar every time you solved a puzzle, it’s likely that would actually solve fewer puzzles, even though you’d want to solve more for because it would net you more money; and increasing the reward seems to magnify that effect.

When you think about casual and social games, which tend to lean very heavily on reward systems to motivate players, it becomes obvious why they tend to be so stupidly simple. It has to be something anyone can do without thinking, or else it will become frustrating.

Now, what I’m curious about (and I don’t have an actual answer for this), is this: while we know that changing how we motivate players affects performance, it’s unclear to me how it affects engagement.

I mean, Farmville/Cityville/Whateverville games are not an intrinsically interesting activities on their own merits, I’d say. Those games rely heavily on intermittent reward schedules and social obligations. Yet they’re pretty engaging to the people who play them. On the other hand, games like Dwarf Fortress and Minecraft don’t rely on extrinsic motivation at all (if anything they tend to arbitrarily punish players), yet they’re also quite engaging to the people that play them.

So it seems to me that both intrinsic motivation and extrinsic motivation can be effective, but it’s not clear to me if mixing the two motivation types can amplify the amount of engagement they provide, or if they’re fundamentally incompatible. I’m guessing it could potentially amplify, but I couldn’t say for sure. As a thought experiment, say you put a leader board into Minecraft for who mined the most gold. Would that detract from players enjoying the game as a creative sandbox? Would players then not view the game as a sandbox, and instead focus solely on the most efficient way to dig for/find gold? Would that be less fun? I suspect the answer might be yes to all of those, but it’s something to think about.


Lessons learned from rapid prototyping

One of my favorite things to do is rapid prototyping — of anything really — but especially of games. There’s something inherently thrilling about hitting the ground running as hard as you can and aiming for done rather than perfect. I think, if you want to be good at making games, you absolutely have to do this.

The key to having good ideas is to have a lot of ideas, and similarly, I think the key to making good games is to make a lot of games.

The trick is to not dwell on any one game for too long.

I’m far from perfect at this, but having done it a few times, I think I’ve learned a few lessons.

Lesson #1: Measuring “Done” is easier than Measuring “Good”

The hardest part of creating something, for me at least, is dealing with the constant inner critic telling you that what you’re making isn’t close to what you were expecting.

The critic is right, but he’s not useful.

Ira Glass describes this way better than I can:

Personally, I like to view my games as experiments rather than products. I find an idea I want to explore, and explore it, then come to a conclusion about it. Sometimes the experiment results in something great, and sometimes it results in something that sucks, but it allows for the possibility of constructive failure.

Lesson #2: Deadlines matter, pick one that’s absolute.

Ideally you should have a time scale that’s long enough to get to the core of the idea, but not so long that you have the luxury of padding the game. Work always expands to fill the allotted space, as the saying goes.

I like one week.

One day is probably too short, unless you’re well practiced. One month can work, but it can be hard to not get distracted. One week seems to be long enough to get to the core of the idea while being constraining enough that you don’t wander too far from the goal.

Lesson #3: You aint gonna need it

You aint gonna need it. Times a million. You should get this tattooed on your forehead.

Lesson #4: The biggest time sink is polishing things

You are going to be constantly tempted to polish features that don’t matter. You have to avoid this temptation. Polish the gameplay, absolutely, but if you find yourself spending a lot of time on the menu screen, you’re polishing the wrong thing.

Lesson #5: Minimalism is your best friend

Try to find an art style that’s interesting or attractive but doesn’t take a lot of effort. Most indie games go with a “retro” look for this exact reason. Vector art can work well too, although it can be difficult to render, so be careful.

Darwinia is really visually interesting even though it’s mostly stick figures and polygons:

Darwinia

Minecraft is all squares, but the consistency of it is what actually makes the gameplay possible:

Lesson #6: Try to focus on a few core mechanics

I think this is a good design principle in general, but it applies even more here. It’s tempting when you’re designing something to think in terms of what you’re adding, but sometimes, the best ideas come from subtracting things.


On elite education

This is a great article on the disadvantages of elite education.

This part in particular struck me:

But if you’re afraid to fail, you’re afraid to take risks, which begins to explain the final and most damning disadvantage of an elite education: that it is profoundly anti-intellectual. This will seem counterintuitive. Aren’t kids at elite schools the smartest ones around, at least in the narrow academic sense? Don’t they work harder than anyone else—indeed, harder than any previous generation? They are. They do. But being an intellectual is not the same as being smart. Being an intellectual means more than doing your homework.

If so few kids come to college understanding this, it is no wonder. They are products of a system that rarely asked them to think about something bigger than the next assignment. The system forgot to teach them, along the way to the prestige admissions and the lucrative jobs, that the most important achievements can’t be measured by a letter or a number or a name. It forgot that the true purpose of education is to make minds, not careers.

Being an intellectual means, first of all, being passionate about ideas—and not just for the duration of a semester, for the sake of pleasing the teacher, or for getting a good grade. A friend who teaches at the University of Connecticut once complained to me that his students don’t think for themselves. Well, I said, Yale students think for themselves, but only because they know we want them to. I’ve had many wonderful students at Yale and Columbia, bright, thoughtful, creative kids whom it’s been a pleasure to talk with and learn from. But most of them have seemed content to color within the lines that their education had marked out for them. Only a small minority have seen their education as part of a larger intellectual journey, have approached the work of the mind with a pilgrim soul. These few have tended to feel like freaks, not least because they get so little support from the university itself. Places like Yale, as one of them put it to me, are not conducive to searchers.


Oh hai.

They say you should have a blog because personal branding is important. So I made one. Consider myself branded. Ahem.