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.
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%?
For what it's worth - I'm in the process of reading the biography of John Carmack and John Romero of id software (interesting read...recommend it!) and apparently Carmack is a pretty big proponent for open source software: http://en.wikipedia.org/wiki/John_D._Carmack#Free_software
Don't forget that in addition to code and art, you have data. Even if someone clones your codebase and invests time in recreating visual assets, they won't be able to draw on the player experiences you've been collecting. With data, you're able to identify trends and test new approaches smartly in order to maintain the edge; your would-be competitors wouldn't have much more to go on than their own intuition.
I won't claim to know what he thinks exactly -- maybe he's the alum you refer to? -- but I wonder if Samuel Clay (Newsblur, YC S12) would agree with that sentiment, given that he has published https://github.com/samuelclay/NewsBlur for all to see. I haven't committed to my own startup idea yet, but my plan for it does involve open-sourcing the code while keeping a custom corpus and its associated NLP models private.
Hey Cyranix, yeah the db will definitely be an asset, especially when it comes time to test the business model of recruiting. Sam Altman's comment on stage about recruiters being sorts sleazy is definitely true, and so casts some doubt on our business model research, but we really do want to try the viral method before putting up a paywall.
We did in fact speak with Sam at startup school, pretty small world I guess. He not only had good data about what it took to get devs interested but what kind of conversation rates we could expect from interest -> pull request -> valuable input. To be fair, Sam does keep 10% of his codebase proprietary so it's not 100% out there.
I know I'm quite late to the party, but I actually keep 100% of the source code open. The only parts I keep in a secret repo are tied to keys, hostnames and addresses, and certificates. But, just having a secret repo where sensitive information (including proprietary algorithms) was enough to satisfy the few investors I talked to.
Mind you, my next project is closed source, as I plan to open-source reusable pieces that will actually help people instead of a massive codebase that few have the means to run.
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.
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. :)
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.
Gaming IP must lose value over time. It's hard to imagine anybody paying very much for the quake 3 IP now since more advanced engines are available for free.
That's not to say they didn't make many $ licensing it back in the early 2000s. That said in the case of this startup the tech itself is probably not where most of the value is.
That's useful feedback highCs, but open sourcing doesn't necessarily select our industry or business prospects. It seems to me we could be open source and high growth, or closed source and slow growth and the two factors are not necessarily causative. Would love to know if you have data to the contrary!
> 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.
Your main point seems to be that opening their source code will make it easier for someone else to clone their idea:
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.
But that's wrong because, as you say, if some company wants to clone an idea, they're not even going to bother reading the code, let alone steal the code. And I know of no one who's ever stolen code for a game since, say, 2003, and gotten away with it. Reddit changes the game. You can crucify a competitor for such behavior, and gamers will shun them.
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.
I think your advice is coming from a gut feeling or intuition rather than experience. But empirically it's mistaken. It's a natural reaction to be hesitant to release code powering your product, but I'm pretty sure it's never been a problem in practice. They will get major major PR and respect, both of which can only help a fledgeling startup.
Competitors with lots of money and who have most to gain from squashing competition, won't be affected by Reddit or bad reviews. They can just buy more traffic (we're talking studios with tens to hundreds of thousands in ad budgets per week).
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.
I don't share your point of view. Zynga - which is what I consider a web startup - has been at the origin of a revolution in the game industry. At the same time Activision did with Call Of Duty, this is one of the first company which leads the XP + items revolution. That was the first time you saw XP + items in a game from another style than RPG. This is also the reason of the success of the Call Of Duty franchise: COD 4 was the first FPS to have XP + item which were previously reserved to RPGs.
Nowday, you can't find a game without XP + items. These things came from companies outside the game industry - except Activision and a very - very - few others.
The energy for example is now a main game design and monetization component you find in many, many video games published by the industry now and this is Zynga's invention. Also, Zynga uses big data far before any other big publishers did - except Valve.
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.
Sorry, I think what they are doing has nothing to do with a video game IP. They are doing a product which solves a problem: it teach to code.
For all those common misconceptions (ie. see my other comment below), I strongly advice the codecombat devs to be careful of what is told from and about the game industry.
Their game is inextricably linked to how well it teaches people to code. Lets consider that their "game engine" is their competitive advantage. If they open-source their game, they are giving away that edge leaving another company with more money easily able to take it and run.
That said, I'm not sure how many gaming companies would actually do that, since they are not in the recruitment business.
The concept of limiting a user's action with an energy bar should not be attributed to Zynga. I played games before Zynga that was limiting the number of "turns" I would have access to.
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.
Thanks for that data point bennyg, appreciate it. Our intention is definitely to do as you describe (keeping ahead of the pack in terms of features and design). One thing YC is going to allow us to do is invest heavily in those areas in the coming months so as to differentiate ourselves.
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.
Yeah, those are all definitely on our radar, especially the idea to keep some surrounding infrastructure closed. That might be motivated by the wrong reasons though, if we don't have to open source it, we can keep it at "internal use tool" quality and devote our time elsewhere. :)
If it works, who cares what the code looks like? It can even be inspiring for others to see that code doesn't need to be "perfect" in order to get things done, and it's unlikely that people will think less of you just because there are some unfinished ends.
While it's true that you should be embarrassed by the first version and imperfect code is instructive, I would feel bad about inflicting some of our internal use tools on other people! :)
To be clear, the newbie gamedev community is starved for examples of codebases that actually work. Don't worry about whether it's ugly. If it works, then newbie programmers can run it and learn from it, which is more than what's available to them currently.
We're not really open source zealots or anything, but Quake did score points in my book for being cross platform back when everything was released only for windows.
For most projects/businesses, there's always a tension between open sourcing and making money, I really hope that we're at a market intersection where it actually makes monetary sense to keep things open.
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.
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!
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!
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.
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!
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.
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.
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?
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.
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.
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. :)
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.
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!
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.
Yeah, that's understandable, thanks for trying though, we'll have more content soon, and it should be more stable to boot, so perhaps we can impress her at a later date. :)
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.
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!
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 :)
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.
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.
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.
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.
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 :)
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.
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. :)
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.
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.
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.