top | item 6601712

CodeCombat in Y Combinator

224 points| skotzko | 12 years ago |blog.nickwinter.net | reply

82 comments

order
[+] sillysaurus2|12 years ago|reply
Hi, gamedev here.

At one point on stage, you brought up the possibility of open sourcing your code, and Paul cautioned you that you may want to follow game industry conventions.

There are two reasons the game industry tends to keep their code closed-source. 1) It has been lucrative for game studios to sell licenses to their closed-source engine. Some game studios, such as Id Software, have made hundreds of millions of dollars (if not $1B) from licensing their engine. This is the main reason game studios tend to keep their source code closed. 2) There is strong institutional bias against releasing source code precisely because nobody else releases source code.

If you're not planning on licensing your engine, then I just wanted to reassure you that it's not a bad idea to go open source. You own codecombat.com, and hence you own the pipeline of users. Even if someone uses your code to launch their own version of CodeCombat, it's very unlikely that you'll suffer any problems for it. The only possibility is if your servers go down and theirs don't. But anyone who tries cloning your idea is going to suffer the wrath of the gaming community. E.g. see what happened to "War Z," a videogame that was blatantly ripping off the recent hit "Day Z." The War Z developers were basically tarred and feathered for it. Gamers may be fickle, but they are loud and they are loyal. I can't imagine them defecting to some competitor who steals your code.

Beyond code, there's art assets. You could release the code with a permissive license, and release art assets with a restrictive license. Nobody will be able to catch up to you if they have to develop all new art for their clone.

I wanted to speak up as a voice from inside the game industry: Don't follow industry conventions out of fear. Their conservatism wasn't derived from experience. Rather, it's because no studio wants to take any risks whatsoever.

Let's put it this way. If Notch (the creator of Minecraft) hesitated to follow his instincts, he would've tried to write Minecraft in C++ rather than Java. If, before Minecraft was written, he tried to convince any professional gamedev that using Java was a good idea for writing a multiplayer 3D game engine, everyone would've laughed in his face. And everyone would've been mistaken, as Notch wound up demonstrating. Java turned out to have many unexpected advantages new to the gamedev industry (e.g. the ability to deploy the game through a web browser and the ability to edit code without recompiling the engine).

So if you see an advantage in open sourcing your code, go ahead and do it. Don't second guess yourself just because it goes against conventional industry wisdom. The conventions are just groupthink, not pragmatism.

[+] gsaines|12 years ago|reply
Hi Sillysaurus, thanks a lot for the feedback. We've been talking to gamedevs and VCs and so far nobody has raised a flag about opensourcing everything, which is what we're thinking we're going to do. In the words of one VC we spoke to "it's all about the branding and community, who cares who has the code?" It feels risky, but we really think that it's consistent with the intention of the game to make it easy for people to be both players and makers. In a perfect world we'd get so good at educating players they could go through our campaign and contribute to the CodeCombat github repo as their first open source project. That's a ways off in the future, but it's definitely one of our dreams. :)

So here's a question for you: we spoke with a YC alum that has open sourced 90% of his codebase and recommended keeping a small subset of it proprietary. He said that when he was out fundraising it defused a lot of tension when VCs and angels would ask about his open source policy and he could say "well, I keep some of my hardest algorithms in a closed repo." As a game, we have the art, which I agree is a pretty substantial barrier to copying us (many tens of thousands of dollars in our case), but would you still recommend 100% open source vs 90 or 95%?

[+] physcab|12 years ago|reply
Let me make one counter-point here though.

> Gamers may be fickle, but they are loud and they are loyal.

Zynga. Zynga has made a fortune profiting off of other smaller outfits, just merely by studying and copying. They didn't have source-code (to my best knowledge), but they knew how to make a game mass-appeal. This happens more often in gaming than you'd like to think.

My advice (I work at a gaming company) is to hold all your IP close as possible. Game design, art assets, source code, whatever. You have a right to own it so why not hold on to it for a while until you establish a solid competitive advantage.

On the otherhand, your IP is very closely tied to how well you can integrate teaching. This is something others cannot do easily, so you have atleast that protecting you.

[+] highCs|12 years ago|reply
Id Software, have made hundreds of millions of dollars (if not $1B)

They didn't make that much, far from that. Id Software has been sold to zenimax with all its assets including their IPs and their people for only (edit: and around) 1 hundred million dollar - because they were runnning out of cash.

My advice to the codecombat devs is at the opposite of pg's one: don't talk to the game industry. Most of all those said big players of the game industry aren't at all. They are actually bad software companies with poor revenues. Ubisoft for example never made more than a dozen percents a year or similar - I mean they never made 300%. You could be worth more than Id Software and even Ubisoft "easily" following the valley advices instead of the game industry ones. Really it's a myth the game industry is making well. At least, nothing comparable to the web startups. Only a very very few of them actually does like Valve, Riot and Blizzard.

Edit - a source about Id Software acquisition: http://www.sec.gov/Archives/edgar/data/1092835/0001092835090...

[+] bennyg|12 years ago|reply
If you can maintain a competitive advantage while open sourcing your code, then I think it's better to do so. I mean your whole shtick is teaching people to code - so open sourcing follows naturally from that.

Keeping up competitively means keeping your design better than everyone else's and keeping your feature set better than everyone else's. If you do that and open source your code, you'll be alright.

[+] fizx|12 years ago|reply
Make the level editor open source, and the main site closed source? Make the core game engine open source, but keep the surrounding infrastructure closed? Let people modify and run forks of the game engine (different art, physics, perhaps) on your main site? Open source your last generation work (as applicable)? Just thinking out loud here.
[+] 6ren|12 years ago|reply
FWIW, Notch hasn't open sourced Minecraft.

Id did open source some games, but only well after the main burst of sales had dried up.

Counterpoint: reddit and HN are open sourced (are they games? they have points...)

Just some data points, not advice.

[+] novaleaf|12 years ago|reply
professional gamedevs are NOT going to care, not unless your game (using your engine) reaches $1 million in revenue.

real time simulations are hard. professional game devs need technology that enables them, and right now the engine-of-choice is unity (or some other 'real' engine).

Now hobbiests/hackers, sure, maybe they might find interest in your engine. But really no professional will care unless you can prove it's benefit.

Making a fun game is hard, making a good engine is damn near impossible.

PS: i am a game industry professional, and I've created my own engine.

[+] iamkoby|12 years ago|reply
I didn't get it when you where on stage, but seeing your website I have to give you thumbs up. It looks great, it's fun to play (even for me as experienced dev), and overall very promising. Congrats on YC!
[+] gsaines|12 years ago|reply
Thanks for the kind words iamkoby, it was a complete rush to be on stage and as Nick's post suggests, it was even more crazy that we got accepted there and then. We can't wait to be a part of the program!
[+] reneherse|12 years ago|reply
Congrats to the CodeCombat team! Their recruitment-oriented business model reminded me of an 80's movie called The Last Starfighter [1]: A young guy living in the middle of nowhere masters a space fighter arcade game. He has no idea that it's actually a fighter pilot training and recruitment tool until one night, when he's picked up by a "headhunter" (in a spacebound DeLorean) to join the force defending the galaxy against alien invaders. Fun flick, with some decent early CGI.

The parallels, I think, really help demonstrate how the CC concept has the potential to change young people's lives.

http://www.imdb.com/title/tt0087597/

[+] gsaines|12 years ago|reply
That is an excellent movie, here's hoping that we can pick up some excellent space pilots, er, devs, with the platform. It's incredible how many people have written to tell us that they started their dev careers building games, I think it's a common entry point. I know that I started working with computers because of a game called gorillas.bas on my dad's Kapro '86 (whopping 3 megahertz processor and 512k hard drive). Here's hoping I'm not the anti-pattern!
[+] mhamel|12 years ago|reply
And every company after them in Office Hours walked just a little bit slower leaving the stage...
[+] gsaines|12 years ago|reply
Yeah, we felt pretty bad about that too. PG wasn't kidding about the surprise, we thought that if we did well we might get an interview, it was a complete shock. We had met the other teams backstage, the founders of both startups impressed us quite a bit and we hope we get to see them in this batch.
[+] qqg3|12 years ago|reply
Yeah, a bit awkward for those guys
[+] reillyse|12 years ago|reply
yes I felt very sad for the rest :(
[+] iamshs|12 years ago|reply
Congrats, it is a very nice initiative and a novel idea. I am trying to get back into coding, I do have experience with MATLAB programming (and also VB6 some 10 yrs back), but this website makes it so much easier. I would like to see some UI changes as you progress through your Y Combinator phase, the coding editor sometimes disappears for me, and I don't know how to get it back and have to restart the level and sometimes browser. I am sure the idea will be polished a whole mile now. Also, habit of using keyboard shortcuts sometimes prolongs the coding process. I used Ctrl+S too much, before refraining myself to not use any shortcuts.

I like your website and concept very much. Great idea, may you go places.

Edit: What languages will I be able to learn through this?

[+] gsaines|12 years ago|reply
Hi iamshs, we just noticed that we are getting traffic from HN, pretty wild, we've barely stabilized things and now traffic is picking up again. Yikes.

When you say the code editor disappears, do you mean the entire right pane of the player screen? Could you send me a screenshot and any steps to reproduce it at [email protected]? Would love to get that fixed for you.

What browser are you using by the way? Although it's technically capable of running on FF, we had a lot of problems on FF and basically told people to just use Chrome after a while. We need to get it working properly on FF, but that's the simplest solution for now.

Yes: polish is definitely coming up! I agree with you that the whole "switch between mouse and keyboard" thing is bogus, we need a more complete keyboard shortcut list.

The languages we are most interested in teaching are Javascript, Python, and Ruby in that order, but it will be a little while before it's ready for those new languages to be added. In the interim we're just going to be building out content for the JS campaign.

[+] testing12341234|12 years ago|reply
I gave the first level over to my wife (who is a non-programmer, and has no interest in programming, but loves RPGs). Unfortunately, it didn't work out too well. She was able to make it to the ogre, then then misspelled the attack command. At that point, her browser froze, then continued to give her a script error at "http://codecombat.com/javascripts/vendor.js:52612".

Which is too bad, because I'd love to show her that programming isn't as "hard" as she thinks it is.

[+] gsaines|12 years ago|reply
Sorry about that testing, our server sometimes messes up the code sync; for now, just copy it, delete it, and paste it in again (all the code). We have it on our list of stuff to fix, but didn't expect another traffic spike so soon and so had pushed it off a bit!
[+] woud420|12 years ago|reply
That is a pretty cool idea. Actually, my girlfriend has been wanting to learn how to code yet I haven't been able to find something to motivate her. Maybe her love of RPGs and this will get her down on that path.
[+] gsaines|12 years ago|reply
Funny you should mention that woud420, we started this to teach me (gsaines) because I wanted something more engaging than online lessons. But when choosing the artwork, genre, and overall style, we went more cartoony/cutesy because of Nick's wife's gaming preferences. We also made the main character a strong female figure so that girls could associate with story that we're putting together (not currently in the levels). We've got a half dozen new units we'll be adding shortly, and 4 of them are female to sort of balance things out a bit. In short, we're hoping it is something your girlfriend will not just feel comfortable using, but actually enjoy!
[+] iamshs|12 years ago|reply
Agreed, the visual feedback is so satisfying to watch. I cannot wait to see what they put out after going thorough Y Combinator batch.
[+] aymeric|12 years ago|reply
I think games are a good way to teach the first principles in coding.

Last year as a pet project I ported Terrarium.Net to javascript (this is definitely not noob-friendly at the moment but it is open source :) )

http://terrariumjs.wiselabs.net/

The idea is to code the behaviour of a critter that can move / attack / eat and reproduce.

So a species that survives well can grow and invade a terrarium.

But the cool factor is the blue ball. It is actually a teleporter that sends critters randomly to someone else's terrarium, so your critter can invade other terrariums too :)

[+] xarien|12 years ago|reply
Love the concept, will definitely be interesting to see what you come up with to teach some more abstract lessons. Wish you all the luck.

Here's a small big from the couple minutes I spent playing with levels 1 / 2: While it does execute the code on the right perfectly even if it's not the expected optimal entry, the camera focus during a playback will lose sync with the "spells" if you add a few extra calls like moving left and right.

[+] gsaines|12 years ago|reply
Ahh, that's a good point xarien, thanks for reminding us of that. The ending "coolcam" is a bit fragile but is engineered in a way that it should be capable of handling variable win conditions, will speak with Nick and Scott about how best to tweak that.
[+] aymeric|12 years ago|reply
For graphics, you guys should look at the RPGMaker community. There are plenty of sprites ready to use that would match the universe you have chosen. I am trying to find an adaptation of the http://terrariumjs.wiselabs.net universe where I could use these sprites instead.
[+] ryanjodonnell|12 years ago|reply
This is the same guy from skritter.com. Wonder what's happening to skritter?
[+] gsaines|12 years ago|reply
Hi Ryan, we've been working on stabilizing the Skritter code base for the last year, and have hired a team of extremely dedicated and intelligent folks to continue running it. We're planning to make an announcement about our commitment to CodeCombat in the next month or so when we get all the team changes finalized, but needless to say that Skritter is still moving forward.
[+] forktheif|12 years ago|reply
I tried it out briefly, and it came across as extremely buggy and unintuitive.
[+] nwinter|12 years ago|reply
Thanks for the feedback--remember anything off the top of your head that you particularly didn't like about it?
[+] atldev|12 years ago|reply
So glad you posted this video. I didn't get to see your interview live and had been looking for it. Fantastic job! Imagine the pressure for the next team up :)
[+] gsaines|12 years ago|reply
Yeah, it certainly wasn't our intent to up the ante for those coming after us, we spoke with both teams right before on stage, and liked both of them a great deal, smart folks with good ideas.
[+] mpr3|12 years ago|reply
This is incredible. I have shown a few people, and they just keep playing and trying to fix their buggy "spells". Nice job guys!
[+] gailees|12 years ago|reply
I can help you guys match people who have gone theough the game with the right startups: facebook.com/davefontenot
[+] neovive|12 years ago|reply
Congrats to Nick and team. You guys are doing an amazing job and my son loves CodeCombat. Best of luck in YC.
[+] asselinpaul|12 years ago|reply
Was chatting with a someone from CodeCombat on olark. they had no idea it was on HN but the traffic was booming.

Ah startups...

[+] gsaines|12 years ago|reply
Ha, Nick pointed it out to us about 30 minutes ago, the analytics have been so crazy we've largely stopped watching them for the time being. It's not quite the Techcrunch effect, but the traffic has been through the roof for the past 4 days, HN was sort of lost in the noise. I didn't ask Nick how he figured it out, but I maybe one of the Olarkers mentioned it. :)
[+] kgodey|12 years ago|reply
Congrats Nick, Scott, and George! I can't wait to see where you guys go with this.
[+] gsaines|12 years ago|reply
Thanks kgodey, we are (understandably) extremely excited to be a part of YC and have the opportunity to really push this project to reach it's full potential.
[+] imron|12 years ago|reply
Hey, it's the Skritter guys :-)

I knew I recognised the names from somewhere.

Best of luck with this new venture!

[+] gsaines|12 years ago|reply
Thanks, just for the record, Skritter is still a going concern, but we have shifted our attention over to CodeCombat.