all items
rss feed

/ \
Ugh, stop twitching
chris crawford
coding Posted 2005-12-30 01:11:35 by Jim Crawford
Remember Chris Crawford's essay about using social reasoning in games to attract female players? Remember when I asked how one could implement social reasoning problems in software? Well, obviously I wasn't thinking about the personal project Chris Crawford had been working on for the past 13 years: a program called the Erasmatron, which builds stories interactively by simulating a social environment. I'd known about this project forever and pretty much ignored it as a pipe dream, as has most of the world. Looking at the software, it's impressively robust -- as it should be, after 13 years -- but the stories it tells are still pretty fuckin' boring.

He still thinks he can make it work. His wife thinks it's doomed to failure and is sick of supporting him.

I wish I had half of his perseverance.
[link to this] [add a comment] [See more on “coding”]
coding Posted 2005-11-08 04:52:40 by Jim Crawford
Chris Crawford has a pretty convincing article in this week's The Escapist describing how men evolved to be hunters, giving us the desire to aim carefully and track prey in first-person shooters, whereas women evolved to manipulate people into caring for their children, giving them desire to watch “chick flicks” in which the insightful female protagonist sororizes her way out of complicated social situations.

The purpose of the article was to provide a fresh perspective on how to make video games appeal to women, but frankly, I still don't see how to do it. How do you make social reasoning into software? Did anyone find the socialization aspect of The Sims satisfying? I know I didn't. Social reasoning challenges will arise when you throw a bunch of people into a game world, of course, but what value can the code add to the experience?

Computers do easy stuff. They can do arithmetic and they can reason their way out of delicate social conundrums like determining whether 2 is equal to 6. Using these tools, it's relatively trivial to determine whether the player has successfully shot his opponent in the head. How does a computer determine whether the player has ... hell, how would the computer even know what the social reasoning challenges are? They're set by the player! When the player's lives run out, how do you know whether to ask for her initials for the hall of fame?

We need a girl to weigh in on this. One who can write a subroutine to determine whether the player has shot his opponent in the head but would find it more entertaining to convince the opponent to care for her child.
[link to this] [add a comment] [See more on “coding”]
pdbs are usually larger than 4k
coding Posted 2005-07-24 23:03:15 by Jim Crawford
<pf> funny thing, that proxy [you sent me] screwed me over :D
<AdamMil> haha, you're still using it? :-D
<pf> i set it up as the IE proxy, not realizing that it would filter everything any microsoft program ever downloaded
<AdamMil> oh, shit
<AdamMil> even executables? :-)
<pf> hah, i don't know if that happened
<AdamMil> that'd be amusing. "Micor$$$oft w0rd"
<pf> but it took us a while to figure out why [visual studio] wasn't downloading the symbol information for various .dlls :)
<pf> until we noticed that all the .pdbs it got were 4k, opened them up in a text editor, and saw a message from the guy who haxored the proxy
<AdamMil> ahh, damn, somebody hacked the proxy? :-)
<AdamMil> that's pretty funny though
<pf> yeah, hey, i should blog it
[link to this] [add a comment] [See more on “coding”]
coding Posted 2005-03-27 05:00:13 by Jim Crawford
I've been sending out resumes to various companies and have been getting some tests back. I took one recently that had one quite interesting problem: to write a function that takes an unparenthesized arithmetic expression, and generate the results of all possible parenthesizations. e.g.: input of “2 + 4 - 6 * 8” would generate output of “3 unique { -42, -14, 0 }”, these being the possible parenthesizations:

((2 + 4) - 6) * 8 =   0
(2 + 4) - (6 * 8) = -42
(2 + (4 - 6) * 8) = -14
2 + ((4 - 6) * 8) = -14
2 + (4 - (6 * 8)) = -42

The test was in C, but I couldn't come up with an algorithm that mapped well to C. I ended up sending off a rather inelegant mess, but later decided to convert the code to Python, because I decided the algorithm I came up with was pleasant and deserved a pleasant implementation.

. . .

[read the rest] [add a comment] [See more on “coding”]
tim's working on physics
coding Posted 2004-09-15 00:09:24 by Jim Crawford
Tim:Drag seems to be working.
Tim:Yeah, it was normalize() not liking zero velocity.
Me:So now you have particles settling to the bottom of a bowl of jello?
Tim:They don't settle, they just fall. Forever.
Me:So it's an infinite volume of jello!
Tim:Hmm, I wonder if there's always room for an infinite volume of jello.
Me:I'm sure a lot of astrophysicists want to know this as well.

In the interests of full disclosure, I should point out that my friends and I aren't nearly as quick-witted as these exchanges I sometimes post make us out to be. For instance, according to my records, 35 seconds elapsed between the last two sentences. Though this kind of delay often happens due to both of us doing other things as we talk, in this case I was composing the reply over about 30 of those seconds. Try that in a voice conversation.

[link to this] [3 comments] [See more on “coding”]
clipping a line segment to a triangle
coding Posted 2004-03-02 15:35:07 by Jim Crawford
I'm working on some real-time light and shadow code to make Swarm look cool despite my mediocre artwork.

To this end, I just got a routine working to clip a line segment to a triangle. My old algorithm to do this was about twenty hairy lines, full of special cases that I had agonized over for hours, because I didn't understand at the time that the problem I was trying to solve could be stated as “clipping a line segment to a triangle.”

When I realized that it could, Google turned up the (easily extrapolatable) Cohen-Sutherland algorithm and suddenly I had seven clean, elegant lines that did perfectly what twenty did with edge cases visibly breaking all the damn time.

I don't know whether to feel triumphant or like an idiot.

. . .

[read the rest] [8 comments] [See more on “coding”]
swarm redux, engine only
coding Posted 2003-12-15 12:37:34 by Jim Crawford
I'm still working on the game that goes with this engine, but it's occurred to me that some people might be interested in just the engine portion of it, which is ready to be looked at and learned from, at least.

I've used test data converted from the previous iteration of Swarm, but it totally does not do the new engine justice. Details are available here, but in short, it's the most sophisticated 2D platformer engine I've ever seen ... mostly because the rest of the world moved on to 3D before consumer hardware was ready to support all the great features. But never mind that.

Here is a source download. Here is a Win32 binary and test data download. Here's a collection of DLLs that you probably don't have but will need to run the executable. Here's that details link again if you missed it before.

. . .

[read the rest] [12 comments] [See more on “coding”]
coding in english
coding Posted 2003-05-07 11:23:10 by Jim Crawford
I've been had this item laying around for a while, but I've been kind of reluctant to post it, since the previous article (threat part ii) has a more important subject and belongs on the top of the page. Go read that one first, I guess.

There seems to be a common meme floating about, that designing a programming language so that it looks like English makes it easier to learn. In this essay, the author intends to demonstrate that this idea is fallacious.

. . .

[read the rest] [3 comments] [See more on “coding”]
error messages
coding Posted 2003-02-09 20:19:04 by Jim Crawford
Today, I learned a very valuable lesson.

me: class foo
{ public:
    foo(typo bar);
Visual Studio .NET: unexpected 'foo ('

So, no more constructors for me. Thanks for the helpful hint, Visual Studio .NET!

On a less sarcastic note, I just checked out this whole “exception handling” thing, and it rules pretty damn OK.

[link to this] [add a comment] [See more on “coding”]
textmode demo competition
coding Posted 2002-11-30 17:01:35 by Jim Crawford
Back to demos for a moment. I think tAAt's text mode demo competition is a great idea. Not to say I wasn't proud, but I always thought the people who were impressed by the text mode effects of Foolish were too easily pleased. This competition ought to balance things out in that respect, and remind people that you can do wonderful things in text mode.

However, when I downloaded the invtro I was reminded of one IMO particularly ugly facet of the demo scene's decline into decadence: .ogg music. Why not just make the whole demo an .mpg while you're at it, hm?

Of the demos I've seen of late, I've been far more impressed by the third party .ogg or .mp3 player than anything in the demo itself.

[link to this] [3 comments] [See more on “coding”]
[Newer items]     [Older items] 
what's this?
This is Jim Crawford's blog. Details and contact information.

On Twitter: @mogwai_poet

recent comments
Overview (Anonymous on may 2014 microblog digest)
no subject (Anonymous on troboclops - hate edge)
no subject (Anonymous on troboclops - hate edge)
hp printer support phone number (Anonymous on troboclops - hate edge)
great (Anonymous on take a key for coming in)
Thank you very much (Anonymous on take a key for coming in)
Astrologer for Love Problems (Anonymous on troboclops - hate edge)
Hp Printer Support Phone Number (Anonymous on troboclops - hate edge)
Please visit site (Anonymous on troboclops - hate edge)
Please visit site (Anonymous on troboclops - hate edge)
Please visit site (Anonymous on troboclops - hate edge)
Please visit site (Anonymous on troboclops - hate edge)
Job Astrology (Anonymous on may 2014 microblog digest)
Finance Astrologer (Anonymous on may 2014 microblog digest)
SOURABH (Anonymous on troboclops - hate edge)
Comments RSS