Monday, April 28, 2008

Performance reality check

Doing a reality check on JavaScript performance today. I've been running with the game loop turned off for normal development, since there's something about VMWare that makes it about 3-4 times slower in JavaScript graphic performance than a native OS. But I figured it'd be a good idea to make sure that JavaScript can even handle what we want it to do before I invest lots of (additional) time in building the editor UI. It'd really suck to write it all and then find we need to rewrite it in Flex.

So far, the results are - inconsistent. It starts out fast and then abruptly gets dog slow. Normally this would point to a memory leak (and I know there are a couple, but they shouldn't have much of an effect at the game sizes we're currently testing), but this is happening really suddenly, and often after a JavaScript error.

There're a bunch of errors too that may be masking things...I've gotta do quite a bit of debugging before we get useful results. And the profiler results are not what I expected at all - methods I thought would only be called once are being called thousands of times. Have to look into that...

Friday, April 25, 2008

Productive couple days

Did I mention in the last post that when it says "3.) Quit and take a job at FriendFeed", I nearly did just that. Was thinking about e-mailing Paul Buchheit and asking if he's still hiring, but instead I sent out the e-mail that's mentioned in the last post. Then I talked it over with my parents all Monday, and decided I'll stick with it a bit longer. It helped that the response of both my PlanWorld friends and former cofounders was quite positive.

I've had a productive couple days. Slowly filling in the missing widgets in the editor UI, one by one. Except it's not really one-by-one, since they're reused so heavily that when I finish one, it pops up in many places. Pretty nifty. Still lots and lots of little display bugs - JavaScript programming is really death by Chinese water torture.

Also helps that the weather has been great, so I've been working outside where there are fewer distractions. No more dad telling me how war with Taiwan is imminent and we're all going to die. I always seem to get more done in the spring college, my spring semester grades were noticeably better than the fall semester ones.

Monday, April 21, 2008

The problem with the idea

Just sent this to the project mailing list for comment:

I was thinking about the idea last night. Remember, Mike, when we were rejected from WFP08 I told you that I felt there was *something* wrong with the idea, but I didn't know what it was, and the best way to find out was to keep working on it. Well, I think I have some idea now. I'm going to start with a story about my last employer for context:

My last employer was founded "To manage information flow on Wall Street". It sounds like a *great* problem - in 2001, everyone saw this as the next big problem for the financial industry. Several people instantly said "Let me give you money." He turned them down, but based on the strength of the idea, he self-funded.

Problem is, "managing information flow on Wall Street" is a huge problem - it's practically the whole financial industry. So what he actually released was "Something that looks vaguely like a Bloomberg terminal, with charts & graphs & tables and a window where you can write code to manage it." This sold to maybe 1 or 2 clients; enough to keep going, but not a huge success.

Then there were a series of other products. I was hired "to work on hard problems in financial analytics", but what I ended up working on was "a webapp to ensure compliance with an obscure SEC regulation." Not really what I signed up for...

So where are we? GameClay was founded "to let users create their casual games." It's a bit narrower than managing information flow in the financial industry, but it's still a huge area. It's not a product, it's a mission statement. What we're actually delivering is "A webapp that lets users create their own single-player arcade games, as long as they stick to prearranged actions & patterns of movement."

The question is whether that revised description still makes for a compelling product. I suspect the answer is yes for Mike, no for me - hence the recent motivational difficulties. I'm not a huge fan of single-player games; I love multiplayer games, but that's not what we're building. (Ironically, when I was asking my former boss what his daughter thought of the idea, the note I wrote to myself was "Concentrate on the **multiplayer**", since her comments seemed to focus upon the "playing with friends" aspect.) I also like puzzle & word games more than arcade shooters and such.

Remember, users can't see your vision: they can only see your product. I think that's what's behind PG's response. He sees the description of what we're doing ("Letting users create their own casual games") and intuitively knows that that's too broad for a product, but he only looks at these apps for like 2 minutes, so he doesn't consciously write that. Instead, he pulls in all his preconceptions about games ("they're just for teenagers", "they're easy to write", "they're a highly competitive market") and superimposes them on our app to fill in the missing details. That's why he doesn't "get it".

So, I guess the next question is what do we do now? I guess I've got 3 main options:

1.) Push forwards until launch, then add whatever features are necessary to make a compelling product afterwards.

2.) Step back and try a different tack, finding another entry point into the casual game creation market.

3.) Quit and take a job at FriendFeed.

#1 sounds like the logical choice, and I know you guys are kinda egging me on towards that. Thing is - I'm not sure it works. That was the approach taken by my last employer: when they found out that their topic was too broad, they figured "Okay, let's build applications on our platform and show people that it's useful." But the platform - and all its mistaken assumptions - acts as a drag on future development, making you go *slower* than if you'd just thrown things out and started fresh. Then everything you do later ends up being harder to use than it otherwise would, because it has the accumulated warts of all the false starts you took.

There're a couple options for #2 that I want to bounce off people:

1.) Step back and write *a game*, just a game, and then gradually add customization capability to it. It'd probably be some sort of chain-reaction puzzle game, since those are the type I most like to play. But then I've got to come up with compelling gameplay, which can be very much hit-or-miss.

2.) Start with a *chat room*, and then expand that out so that anyone in the room can place graphical objects on the screen and manipulate them. Basically, it'd move from chatroom -> multiplayer game -> customizable multiplayer game -> full game creation platform. The advantage of this is that each individual step is compelling, fairly easily implementable, and useful on its own. Heck, people even manage to make money charging for chatroom applications. If the primary draw of games will be multiplayer, might as well do that as the fundamental instead of adding it on as an afterthought. And I could do like a FaceBook app for chat (I'm amazed people haven't done this yet...FaceBook is supposedly coming out with it as a site feature soon) and put it up. And if games turns out to be too small a market, I could switch into telecommuting tools (like WebEx), which will likely be huge soon if the price of gas keeps going up.

Thursday, April 17, 2008

More bad news

Got rejected from YCombinator. Again. Not a big surprise this time, but still disappointing. PG wrote back; apparently the problem is that the idea is kinda weak, not with the team per se (though I'm sure being a single founder didn't help).

Carl turned me down for cofounder. He doesn't think his skill set is really compatible with being a founder-level employee. That seems to be the story with a lot of my Amherst friends: they aren't really on startup-track careers. Also asked a former coworker from my last employer who's no longer at the company; he's got a new startup job that he's happy at, so no go there.

I launched a side-project that took about a week. Randomicity. It crawls the web and presents random sites to you. Launched it two days ago, but as far as I can tell, nobody likes it.

Still don't know what I'm going to do. In the near term, I wanna package up some of the open-source stuff I've done for Diffle/GameClay/Randomicity and release it, because it might be useful. Also looks impressive on a resume. After that, I dunno. GameClay is still quite compelling; I may want to finish it just for the sake of finishing it. OTOH, I seem to be the only one who thinks so. Maybe I'll just get a job at FriendFeed or some other Valley startup. Another former coworker offered me a job in his engineering department, but it's for Java (+ JavaScript), and I'm not so keen. Plus, I kinda feel like I need to get out of the Boston area.

Tuesday, April 1, 2008

More founder updates

Just asked Carl (a classmate at Amherst) to join as a technical cofounder, but his career's taking him away from pure development and he didn't think he was really qualified to be a cofounder (as opposed to an early employee) of a software startup. Sigh. Not sure who else to ask. One of the downsides of going to Amherst is that the risk-embracing, entrepreneurial, tech-savvy population is really small. Most of my classmates are becoming lawyers or financiers.

I'm working on getting some bugs ironed out before the YCombinator app is due (I've already got my app in), but the loss of a cofounder really kinda eviscerated the app. Half the questions are about your relationship with your cofounder. Looks like this round may not be ours...

Am trying to decide what to do after that. I'm tempted to put GameClay aside for a bit and do some side projects that are more tractable, like all the "other ideas" we included on our YC app. OTOH, the more market research I do, the more I think that casual games are really where it was at.

If only the particular problem within casual games we'd chosen to take on wasn't so damn difficult. Then again, if it weren't, then there'd be hundreds of other companies doing the same thing (like with game hosting, or the games themselves).