Hacker News new | comments | show | ask | jobs | submit login
A Programming War Between 545 Wizards (codecombat.com)
244 points by gsaines 1194 days ago | hide | past | web | 42 comments | favorite

This is a brilliant platform! Didn't realize the company was YC-backed.

Curious to know if there has been any interest from junior or high schools to adapt to a classroom curriculum? Current CodeCombat business model seems to be connecting employers with budding Javascript programmers, but the educational angle may be a possible recurring revenue stream to explore.

I teach programming classes at my kid's K-8 school. I was looking for fun ways to teach Javascript and took a long hard look at Code Combat but ultimately had to reject it. It might be a good option for an elective course or after school program, but I was teaching a class that 100% of students were required to take. The focus on killing and violence simply would not fly for all students or in the context of a required curriculum. I am guessing maybe 75% of the students would love it, but the remainder would be marginalized and I am sure I would get some parent complaints.

Wow, has education really become that pc?

I don't think the issue is political correctness... I think it is more about creating an inclusive, gender-neutral curriculum that doesn't marginalise girls. I agree that this game looks amazing, but would not be engaging to 100% of students, in the same way that a football game wouldn't be.

As for complaints, I think it's important to respect some parents' wishes for their kids not to play games that include killing. Although most parents wouldn't complain.

Spot on. With so many choices out there for ways to introduce coding, I try to pick the ones that can engage everyone. Scratch for example. I teach a lesson on "projectiles" with Scratch where we explore methods of aiming, launching, detecting collisions, scoring, power-ups, shields, etc. The boys all launch right into building SWAT team versus Ninjas shooting games, while the girls build a game about shooting soccer balls at a goal. Same learning happens, but they get to come to it on their own terms rather than a one-size-doesn't-fit-all "plug the orc full of arrows" objective.

It is easy to marginalize this as bowing to political correctness. What brings it home for me is the actual classroom experience where you can visibly see a significant portion of the class tune out with the reaction "this is not for me" if you start to focus on shooting, exploding, killing etc.

With Scratch I can build lessons around music, art, and storytelling that teach the same programming fundamentals and are much more engaging to the girls who don't play FPS or RPG shoot-em-up games. Those inclined in that direction always find ways to introduce some explosions and blood into their projects, so it is not really at the expense of their experience.

I raised these concerns to the CodeCombat team on their forums several months ago when I first looked at their offering. They acknowledged that their platform could be used to design non-violent activities, and maybe they have done so by now. I could see how they could build some resource gathering or other missions that don't require killing.

So exactly like "gold rush" then?


So you're saying it's not about PC and then arguing how it violates political correctness and therefore shouldn't be used ?

Something that would get 75% of your students involved sounds like a huge win compared to standard curriculum programs, as soon as a class is required it's going to involve people that have 0 interest in it from start.

I didn't say it violates PC, I said it isn't inclusive. And aiming for 75% engagement is an awful teaching strategy.

I do however agree that a required class does pose an engagement challenge. Computer Science will be a compulsory subject for UK school kids from September.

There is PC and there is the practical matters of engaging a group of students. Make no mistake, that's one of the hardest things about teaching, and if the GP says it's a bad idea, it very well might be. Imagine a policy at your workplace that would alienate 25% of your co-workers, maybe even making them actively resent you. Would you still think it's a good idea?

Sure, I can understand that. But has the world really become such a place that role playing a medieval/fantasy world is banned? Will the only books of the future available to study in an educational environment become grey monotonous tomes expounding at great length on neutral values? Is it the idea of violence that is the issue or the fact that it exists at all I guess is the question. I have no experience with this so am just trying to gauge how these things work in parts of the world.

I would never ever propose banning something like CodeCombat. Personally I love it and think the world is better for its existence. Heck, I am one of those boys who loves RPG and FPS games. I also know they are not what motivates or engages my daughters and their friends. You don't have to go down to grey monotonous pablum as a lowest common denominator method of getting kids interested in technology, but you also don't want to just turn off a big chunk of your audience, especially when they are at age 10 - 13.

We do have a lot of students and teachers using it, but we haven't built a long-enough beginner campaign to provide much of a curriculum yet. That's something we'll be focusing on starting in early fall as US schools start swinging again.

Our mission is to become the way that pretty much everyone learns to program.

Here's one reason why it's not a brilliant platform, check the URL after clicking log in:


edit: Seems to only happen after clicking log in on the main page right side bar rather than the header one.

Can you email nick@codecombat.com to help us reproduce this? It sounds like a form is getting submitted somehow, which shouldn't happen. I haven't been able to reproduce in Firefox, Chrome, or Safari yet.

Sorry about this–we take security seriously.

Thanks, I've dropped you an email with the steps to reproduce. Somehow I had landed on a particular ladder page and it looks like it may have an older style log in modal.

Thank you! I'm tracking the bug over here and will fix soon: https://github.com/codecombat/codecombat/issues/1153

Nice response time!

No, it might be insecure, but that doesn't mean that it's not brilliant. The platform is not designed for security. It's designed to play a game while coding, and it does that.

It was a blast playing! Thank you CodeCombat team!

PS. Here's my entry code: https://gist.github.com/mpolyak/8af627cbdf596b5e294a

I wish I had more time to optimize it as well as develop additional army building strategies.

See you at the next tournament!

I want to play in one of these, but this one has ended. Can we spin up another one somehow?

You can still play this one, there's just no tournament cutoff date or prizes any more. There are three other ongoing arenas here: http://codecombat.com/play/ladder

We're working on the next tournament level, which will be ready for playtesting soon–message me if you want to help! Otherwise, it should be launched in a few weeks, so follow our blog to know when it starts. Not sure whether there will be prizes, but there will be glory.

Finished 30th woo! Really enjoyed the challenge. Thank you Codecombat team.

Hope to see some more in the future.

It was fun to host the competition! Hope to see you in the future competitions.

I've played the game a bit but I just don't feel like I understand it. It seemed like there were only one or two commands so you basically coded that up and you pressed play. How does the game work exactly?

I think you probably played the beginner levels? The tournament level in question was http://codecombat.com/play/ladder/greed

If any of the Code Combat gang is lurking:

1) What did you use (javascript libraries, gaming engine etc.) to make the intro/tutorial?

2) The intro/tutorial is fantastically well done. Like really, really well done.

Hehe, from our point of view, the intro/tutorial needs a lot of work–if you watch the playtesters, anyway. We will continue to work on it.

Most of our libraries and engines and such are listed here: https://github.com/codecombat/codecombat/wiki/Third-party-so...

There are probably a few more in use. If you are really interested, all the code is open source, so you can dig into it here: https://github.com/codecombat/codecombat

I'm worried that these sorts of things can 'railroad' programmers, by giving them well-defined problems instead of truly open-ended ones.

The real difficulty in learning programming isn't syntax - it's semantics. And when you finally become skilled in that, it's separation of concerns and modularization. Any programming learning tool should mirror those notions as players develop "skill". Otherwise, as a user, you'll end up great at programming simple AI's...without any knowledge of how programming actually works.

If a programmer can't learn new ideas after learning poor ones, they're in trouble. Even pg started with BASIC.

I'm worried they may push themselves into this:


An expert beginner is a person who is very competent in one area, but is unable to expand their horizons without making some very big changes.

In a perfect world, I would love it if this game slowly turned into a real programming environment, where the user experiences freedom with a trajectory that will push them into learning core programming concepts.

Actually, to see lots of elite programmers makes me sad. Because i try to be a good programmer long enough to be frustrated about myself.

highsea kindly posted his (very good) code in this thread.

Study that, for starters.

I also linked to the code of the winners in the blog post (you can also find them here https://gist.github.com/schmatz)

This is neat, and I just started playing with it.

Please fix how it scales for vertical displays. I know that's a strange case, but it's near unplayable on a large 1200x1920 due to the graphics being scaled by the horizontal size of the browser.

Perhaps when a display like that is encountered, logic moves the code editor below the gameplay window and keeps them equally sized horizontally?

i would love to play one of these, provided it would be c++/python/haskell based.

We have experimental Python support now! blog.codecombat.com/new-experimental-languages-python-lua-clojure-and-io

I would spend way too much time on codecombat if Haskell were available. If I wanted to implement it like others implemented these languages would I just look over their code and try to emulate their process (except for Haskell differences) they've done? Is there any documentation on this?

Should I just wait for the next blog post explaining things more? :D


Come find us on our public hipchat room:


We're on all the time that we're working (though we may often be afk hacking away on the site/business). There you'll also often find the people who wrote the parsers we have, but mainly you'll want to chat with Nick Winter, who wrote Aether.


Is there a video of 'how' you play?

Awesome work George....

Thanks Jimmy, just emailed you with a question about some business related stuff, but this post definitely did quite well!

Anyone can play at a game like this. It's called Linux Kernel Development.

Applications are open for YC Winter 2018

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact