Hacker News new | past | comments | ask | show | jobs | submit login
We've Open-Sourced Everything (codecombat.com)
305 points by nwinter on Jan 7, 2014 | hide | past | favorite | 43 comments

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.


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:


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.

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.

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.

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

Another way to quickly discover that Hacker News was back would be to a part of a Facebook group that automatically posts Hacker News stories.


@hnstatus on Twitter was posting percentages:


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/ 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....

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?

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

(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...

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.

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!

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?

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.

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

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.

They're in the DB to keep the repository lean and mean. But they're also licensed under CC. You can find 'em here:


They're in a custom JSON-vector format, and the app turns them into sprite sheets in the code.

Brunch is pretty awesome, by the way. We chose it because it only compiles the files that have changed, which is good because it takes at least 15 seconds to compile the whole app on a fast machine.

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.

Sure! This is what we are trying first: http://blog.codecombat.com/beat-this-level-get-a-programming...

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.

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

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.

I'll let you see how it stacks up at Kaggle: 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.

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.

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.

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.

Schools are very much into Service Level Agreements, implementation consulting, and support contracts. Open source can be seen as an additional warranty (Did we go out of business? Are we not delivering the service you desired, but you love the product? Hire anyone to take over hosting, support or development you'd like with no restrictions).

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

That's the idea! We would love for you to give it a try and let us know how it goes.

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.

> Simple clones are competition.

Will they be able to combat them with better code?

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.

Bret Victor's talk in question: http://youtu.be/PUv66718DII

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

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?

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.

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.

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

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.

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

Also, just want to point out the CLA specifies contributed content is still owned by the creator, but we're also granted the right to distribute and license it on our end. So creators can always do what they want with their content.

Cool. Congrats, and thanks, for opening everything up. It looks like you have not only opened it up, but invested significant effort into making it super easy to hack on (including a VM appliance!).

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

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

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

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

Nicely done!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact