
CodeCombat in Y Combinator - skotzko
http://blog.nickwinter.net/codecombat-in-y-combinator
======
sillysaurus2
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
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%?

~~~
sillysaurus2
_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%?_

Well, you have users beating down your door. Fundraising is never easy, but
you'll have a much easier time with it due to your popularity. And if Sequoia
are smart, they will invest in you, because you've discovered an entirely new
game design. Historically, whenever someone has invented a game design that
turns out to be immensely popular (Pong, Doom, Minecraft, etc), that's almost
always resulted in the company becoming a hugely successful game studio. So if
you focus on growing your community and on keeping the game fun, then it's
quite plausible your studio will be hugely successful too.

Additionally, if you release your code 100% open source, you will get an
_insane_ amount of goodwill from the gamedev community. Right now the
community is starved for examples of open-source games _that actually work_.
Right now newbie programmers can go find some code snippets for various little
tasks, little parts of a game's engine, like how to draw a sprite. But a
tangible, cohesive product? Something that newbie programmers can git clone
and actually run, and which actually functions? That's almost unheard of.
(Quake and Doom engines are open source, but they don't provide any art
assets, so newbie programmers can't download the code and do anything useful
with it.) And that's a very good position to be in, because it's unheard of in
the same way Rails was unheard of before it became popular. Meaning, if you do
it, then you'll earn the instant loyalty of thousands of indie gamedevs. The
wonderful PR you'll receive will be such a huge benefit to your company that
it seems totally unjustified for anyone to be concerned that someone will
steal your idea by stealing your code. (For what it's worth, I know of exactly
zero times it's happened in practice. Code theft is a very overblown concern,
especially in a hits-based industry like game development.)

You'll also enjoy many intangible benefits derived from open sourcing a fully
functional game. For example, after Rails became popular, 37signals probably
found it much easier to find and hire talent, since they were a sexy company
to work for. I would bet you'll wind up in the same position. In fact, just
thinking about you open sourcing this game makes me want to go work for you.
If newbie gamedevs can download it, run it, learn how it works, tweak it, and
become inspired to make thier own games... well, that's what gamedev is all
about. It's why kids want to be gamedevs rather than other kinds of devs. So
you'll be a huge boon to the gamedev community, which means talented people
will want to work for you because of it.

~~~
gsaines
That's a very useful 2c, we haven't worked in the game dev industry, so it's
extremely useful to get the opinions of folks that have that experience.

If we have our druthers, we'll release 100% of it and include the game art
under a noncompetitive license so that anyone (and here we're hoping that
includes teachers, professors, tutors, etc) can clone and release their own
versions with different content. In a perfect world we would also be able to
sync the content created like that back to our servers so that 1) we can give
it more attention from the larger community and 2) let others benefit from
their experience.

One of our primary interests is in releasing a game that CAN be cloned and is
functional from the ground up because that's something we would have loved to
have around. We didn't know it was rare for such things to exist, only that we
thought it would be a cool thing to do.

Again, we really appreciate the advice, we're still learning this game dev
stuff. :)

------
iamkoby
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
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
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/](http://www.imdb.com/title/tt0087597/)

~~~
gsaines
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
And every company after them in Office Hours walked just a little bit slower
leaving the stage...

~~~
gsaines
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.

~~~
Finbarr
As one of the founders who was on right after you, I can say that it was
awesome to see you guys get in right in front of us. We were a little
disappointed that we weren't also called back as we walked off the stage, but
after watching a recording of your talk with PG and Sam, I think you guys
totally deserved it.

------
iamshs
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
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 george@codecombat.com? 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.

~~~
iamshs
Sure, I will chronicle the bug next time and send you the screenshot and
steps. I am on FF 23 on Win 8. Basically, after the code finishes auto-casting
the whole right coding pane disappears. It has happened two times out of maybe
20-25 sessions, and I do not know what triggers it.

Awesome. Looking forward to new additions.

~~~
gsaines
Great, we'll look forward to reproducing and destroying this bug. Of course
the best thing for us to do will be to do a comprehensive QA pass through
Safari and FF rather than doing a "oh my god, the launch is tomorrow"
runthrough. :)

------
testing12341234
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"](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
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!

~~~
testing12341234
Unfortunately, she doesn't want to try again. But good luck!

~~~
vdaniuk
That is actually a problem in trying to introduce someone to coding. First
attempt frequently is experienced as boring and/or too complex. It would be
absolutely wonderful to have several standard entry points to programming for
various target audiences. There are some cropping up with popular MooC courses
but nothing for adults that have a barrier to better understanding that
programming is not that hard.

------
woud420
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
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!

~~~
woud420
I sure hope so too! :) I guess we'll see.

Good luck at YC!

------
aymeric
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/](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
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
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
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](http://terrariumjs.wiselabs.net) universe
where I could use these sprites instead.

------
ryanjodonnell
This is the same guy from skritter.com. Wonder what's happening to skritter?

~~~
gsaines
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.

~~~
ryanjodonnell
Glad to hear that, skritter is amazing! Good luck with your next endeavours :)

~~~
gsaines
Definitely, thanks for your understanding!

~~~
gsaines
Hey Adam, thanks can't seem to respond to you: but it is, hopefully not for
too much longer, can't say too much right now, though. :)

------
forktheif
I tried it out briefly, and it came across as extremely buggy and unintuitive.

~~~
nwinter
Thanks for the feedback--remember anything off the top of your head that you
particularly didn't like about it?

------
atldev
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
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
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
I can help you guys match people who have gone theough the game with the right
startups: facebook.com/davefontenot

------
neovive
Congrats to Nick and team. You guys are doing an amazing job and my son loves
CodeCombat. Best of luck in YC.

------
asselinpaul
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
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. :)

~~~
asselinpaul
yep I was talking to Nick :)

------
donpdonp
in-browser programming seems like a great way to get people interested in how
code works.

here is an earlier site called RubyWarrior that works similarly.

[https://www.bloc.io/ruby-warrior/](https://www.bloc.io/ruby-warrior/)

------
kgodey
Congrats Nick, Scott, and George! I can't wait to see where you guys go with
this.

~~~
gsaines
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.

~~~
mhartl
Please forgive the pedantry, but I'm on a one-man quest: s/it's full
potential/its full potential/. P.S. Congrats on getting into YC!

------
imron
Hey, it's the Skritter guys :-)

I knew I recognised the names from somewhere.

Best of luck with this new venture!

~~~
gsaines
Thanks, just for the record, Skritter is still a going concern, but we have
shifted our attention over to CodeCombat.

------
recursive
The backspace key didn't work for me in the email box in the signup form.

~~~
nwinter
Ah, right! On our bug list; thanks. Will fix as soon as we can. Server is
unhappy again right now with the load.

------
pla3rhat3r
So happy for these guys! I let my kids play this and they love the game!

~~~
gsaines
Thanks for the kind words pla3rhat3r, we're hoping to release a bunch of new
content soon as well as open up the level editor so folks can contribute their
own levels, so please do check back! Also, if you kids find anything we can
improve, please let us know.

~~~
pla3rhat3r
Will do.

------
byosko
This is super cool. My kids are going to love this.

