

We've Open-Sourced Everything - nwinter
http://blog.codecombat.com/we-have-open-sourced-everything

======
rickdale
Good stuff going on over there at CodeCombat. My favorite part about this
headline is that during office hours PG questioned them about their decision
to go open source, so I wasn't sure if they would do it. This shows me that
CodeCombat has a vision they are following and I believe a big bright future.

[http://www.youtube.com/watch?v=ABuvRv4Vv3s](http://www.youtube.com/watch?v=ABuvRv4Vv3s)

~~~
nwinter
I had a personal blog post about that story that someone posted to HN, and the
top comment thread there was very helpful to us in the decision to open source
anyway:

[https://news.ycombinator.com/item?id=6601712](https://news.ycombinator.com/item?id=6601712)

sillysaurus2 and highCs made some excellent points about ignoring what the
gaming industry as a whole was doing, and this went a long way toward allaying
our concerns. Then we talked to everyone we could think of who might have
reasons why this wouldn't be a great idea, including some good lawyers, and no
one could think of anything.

For a startup like CodeCombat where the audience may be interested in the
code, open source should be the default choice, and hopefully we can succeed
in this and start to make that happen by example.

------
sinak
I'm just going to hazard a guess that that Nick, George and Scott made a very
clever decision to set up a script to alert them when HN went up (and perhaps
even to submit this post as soon as it happened). This was the first post
after the site went up. They might just be lucky, but somehow I doubt it.

Way to hack HN. You win my upvote.

Edit: Also, more specifically to the news of them open sourcing: It'll be
particularly awesome if people eventually graduate from learning to code on
Codecombat to working on its codebase. Since the backend is all node, it's not
inconceivable. A virtuous loop for sure.

~~~
nwinter
I just had a Chrome extension refreshing the page every couple minutes is all.
I think it was actually a bad decision, because we were #40 on the new page in
under 10 minutes with everyone doing the same thing. I just posted it because
it's news today, and fortunately some people like it.

~~~
sinak
That makes sense, though given the result I don't think it was a bad decision.
Congrats on open sourcing today in any case!

------
ivan_ah
This is awesome! There are lot's of things to learn from this code base...

In particular, I had not heard about [http://brunch.io/](http://brunch.io/)
before and it looks like an interesting frontend build tool. The config file
looks totally readable, even for a complex app like this:
[https://github.com/codecombat/codecombat/blob/master/brunch....](https://github.com/codecombat/codecombat/blob/master/brunch.coffee)

I can't seem to find ''app/assets/images/sprites'' in the git repo which I was
interested in for an RPG project of mine. Were these not included to simply to
keep the repo light, or are these not to be released?

~~~
nwinter
Brunch is amazing. I was using Grunt in another project, but Brunch is so, so
much faster to recompile changes, since it's very clever about caching.

Oh yeah, those sprites were in the repo as raster files, but we managed to
move them all over to our awesome vector-graphics-in-the-database system just
before launch. Check the DB dump to get a copy:
[https://github.com/codecombat/codecombat/wiki/Developer-
envi...](https://github.com/codecombat/codecombat/wiki/Developer-
environment#setup)

(We did a ton of cleanup work before open sourcing, which managed to get our
gzipped GitHub clone download from 203MB to 3.5MB.)

It might be hard to use these art assets in another game unless you take a lot
of CodeCombat code on top of EaselJS to render the sprites directly from the
vector graphics data, though, because of how they are stored:
[https://github.com/codecombat/codecombat/wiki/Surface#vector...](https://github.com/codecombat/codecombat/wiki/Surface#vector-
art)

I could send you the old raster versions if you did want to use EaselJS for
their animations but not go whole-hog with the CocoSprite solution.

~~~
epaga
FWIW, I would be interested in the old raster versions! Think you could put
them on a public Dropbox folder or something? Thanks in advance for any help!

~~~
nwinter
I just put some exported .png copies of some of them in the Dropbox folder you
shared with me, but I'm realizing that without the associated metadata it's
not going to be very useful (I can perhaps find where that was put later but
it's not in the places I'm looking). Would you be able to use them in .swf
form?

~~~
epaga
Wow, this is just amazingly helpful. Thanks a ton! SWF format would also be
helpful for me personally at least.

A couple of questions:

* I assume you'd be fine with me putting these up on Github, pointing to your project and the license document?

* At this point I only see one "ally" folder, is that because the other ally sprites (magician etc.) were made later when you had the vector format?

Again - massive props to you all for just giving away your hours and hours of
hard work! Not every day you see professional-grade artwork like this. Deeply
appreciated.

~~~
nwinter
Sure, that's what CC-BY is all about. Will be happy to see the art used in
more places. (We don't actually draw the stuff ourselves; we're hiring an
excellent game art studio to draw it for us, RetroStyle Games.)

Right, this is an old export, and the latest batch of units have never been
exported in raster. Let's keep discussing the best way to get the exports
here–Scott has come up with a better idea for it that'll stay current:
[https://github.com/codecombat/codecombat/issues/94](https://github.com/codecombat/codecombat/issues/94)

The SWFs are also part of the old format, so they won't be kept up-to-date; I
wonder if we could just build some process around the vector -> raster export
Scott's talking about through our site and still be useful.

------
thejteam
Would it be rude of me to ask what the business model is? This doesn't seem
like the type of venture that lends itself well to the standard ways of making
a profit off of open source, ie consulting or support.

~~~
nwinter
Sure! This is what we are trying first: [http://blog.codecombat.com/beat-this-
level-get-a-programming...](http://blog.codecombat.com/beat-this-level-get-a-
programming-job)

Now we know we can definitely have enough skilled candidates, and though it's
only been a week, it is looking really good on the employer end as well.

~~~
bertil
I hate to be that guy but… If you do HR, could you clarify the need for a visa
early on?

~~~
nwinter
We are so new to this that I'm not sure how big a deal it is going to be.
We'll definitely find out soon, as a lot of great candidates are not US
citizens.

~~~
bertil
I'll let you see how it stacks up at Kaggle:
[http://www.kaggle.com/users](http://www.kaggle.com/users) Jobs threads on HN
seem to have the same callous approach, but… I have never met an American,
even expatriated for a decade, that didn't grossly underestimated how US-
centrism was hurting them.

~~~
nwinter
You're almost certainly right that I'm underestimating the detriment of US-
centrism, since I don't quite understand what you're suggesting–maybe you can
explain some more?

Seems the only three things we can do with skilled non-US candidates are 1)
try to find them work in the US, 2) try to find them work outside the US, and
3) not try to find them work. We are of course focusing on 1), since we
currently only have manpower to do matching in person and we live in SF, which
happens to be in the US. 2) would be nice if we grew big enough, and we have
one employer in Australia so far. 3) would be an unfortunate necessity if we
couldn't get an international employer network and it proved way too hard to
convince US companies to sponsor visas. But it's going to be up to our
employers, not us, to decide whether that's worthwhile.

~~~
bertil
The most urgent thing to do is to ask companies if they’d consider an H1B visa
applicants, or international contracts and post that information for
applicants to see. Taking the time to write applications to dozens of
companies to receive a handful of “Sorry, when we meant skilled people, we
obviously didn’t mean _you_.” is… well, not great.

There is a special level of WTF when you read for now several years in every
business magazine that what you do is the most looked for skill-set, that
they'll be millions like you needed, and having that conversation “It is so
difficult to hire the right kind of people! I’ve tried that for months! —
Couldn’t you argue that to get me a H1B? — Nah, it's too difficult: you have
to put out an ad and wait three months.”

My point is: your brand can be associated to that kind of experience for 60%
of your user-base, or try to avoid it.

Your response seems to come exclusively from your perspective, both as US-
based and as an intermediary. Great products are made by walking in the shoes
of every party involved.

One thing you could do too, as you have a list of candidates, is some instant
__feedback __to employers on whether or not lobbying for a visa would make
sense: just say how many candidates are available for each options, how
expensive they are or, better, how the best candidates for each option rank in
your game; when they might be available. That would require coding, and I
appreciate you have limited ressources — but being open-source should let you
hope for an interested party to do it for you. So I guess: congratulation on
your strategy.

~~~
nwinter
We'll definitely be up front on how necessary an H1B turns out to be once we
have that info from our employers. Preliminary results suggest that around 2/3
of companies are fine with sponsoring H1B transfers, but we don't have data
yet on sponsoring new H1Bs, which I guess is the big question.

------
foxly
Holy crap. They opened-up their entire stack! You can literally spin up a
clone of the site.

~~~
quadrangle
It's wonderful, but the absurd thing is the whole protective start-up culture
that thinks this is crazy. The truth is that people _ought_ to not trust
businesses whose main function is to lock you in with trade secrets and other
anti-competitive measures.

Obviously the only real risk to their business would be if someone else
completely outdoes them, like does everything they do and better with their
codebase. Simple clones are competition. Yes, competition makes things harder.
But isn't competition what all these capitalists say is the answer to things
anyway?? These guys are among the few non-hypocrites.

~~~
Zecc
> Simple clones are competition.

Will they be able to combat them with better code?

------
ranman
This is so fantastic. The tools you've made really remind me of some of Bret
Victor's ideas around the future of programming. I look forward to the day
where I can play an MMO where my character progresses inline with my
programming ability. You could program your own spells and weapons... Non
destructive exploits and hacking would be encouraged rather than
discouraged... that's the world I want to live in right now.

~~~
glabsounet
Bret Victor's talk in question:
[http://youtu.be/PUv66718DII](http://youtu.be/PUv66718DII)

------
epaga
This is just absolutely insane in a good way, and will at the very least prove
to be incredibly valuable as a case study of whether or not being this
generous to the open source community can actually be a good, profitable thing
for a company to do.

Obviously we all hope it can be, and if this catches on, the Internet would
become a much better, freer, more "open" place.

Huge thanks to CodeCombat (gsaines and co)!

------
jffry
You talk about the levels contributed by your community - will there be / is
there a way for those to be shared under open licenses too?

~~~
nwinter
If someone makes a level on another CodeCombat server in their own database,
they can share that with other CodeCombat servers all they please. We are just
being cautious about the levels that end up in the main codecombat.com
database, because at some point we might want to either make premium-only
campaigns or allow others to sell access to their campaigns, and we can't do
that if the levels are all MIT.

Hopefully we can keep all levels free for everyone anyway, since recruiting is
looking pretty good as a monetization strategy so far.

~~~
pyromine
I'm honestly amazed at the idea of recruiting as a monetization strategy for a
project like this. It seems to be a way to make money while keep literally
everyone happy. I think the only thing that could be worrisome is if perhaps
there will end up being a disconnect in how hard a challenge needs to be to
make it worth it as a screen, and how good of a programmer the primary user
base will be.

~~~
scast
What does recruting as a monetization strategy means? That is, what is
recruting? Truly curious.

~~~
lazerwalker
If their plan is anything like similar startups (like the also-YC-funded
Hacker School), the idea is that they can connect employers looking to hire
with engineers looking for jobs. Maybe this means something like letting
people flag on their profile that they're looking for a job, and giving
companies tools to search, filter, and contact the users who've said they're
looking (and vice versa).

After someone takes a job through CodeCombat, the employer would pay them some
sort of referral fee. This sort of arrangement is common; a typical fee
structure is around 20% of the new hire's annual salary.

Employers get a concrete way to assess the skill of potential employees, job-
seekers get free visibility they wouldn't otherwise get (this sort of thing
tends to benefit newer programmers whose limited experience doesn't accurately
represent their raw skill and potential), and CodeCombat gets paid. Everybody
wins.

~~~
girvo
MOOCs have struggled with this avenue unfortunately, but considering CC is so
different and more "practical" if you will, I hope they have a much better go
at it, as what they're doing is awesome :)

------
dimillian
This look awesome. I'm an experienced developer who wants to learn game
development, will it works for me?

------
z3phyr
I could upvote this a hundred times... Its so damn good. I want to be the kid
who learns to code, again.

------
Keats
That's awesome, I will have some busy time looking through it ! Thanks

------
Trufa
Wow that is commitment! Good job guys, keep it on!

------
seivan
Nicely done!

