Hacker News new | comments | show | ask | jobs | submit login
Write Code, Crush Foes, Get Hired – Multiplayer Programming Tournament (codecombat.com)
58 points by gsaines on May 20, 2014 | hide | past | web | favorite | 47 comments

Someone should really retitle this to $512 programming tournament.

Yeah, I don't like the trend of eye-catching false advertisements either. In a way, this resembles those infomercials that give you a bunch of random stuff along with the core product and then claim that it's a $500 value that you're getting for free!

I would think that they'd want to attract those coders who are not directly interested in cash prizes because anyone with half a brain could tell that the prizes do not match the original $40k advertisement. If you're advertising to a bunch of smart developers, don't treat them like idiots who buy into infomercial style advertising scams. These guys should reconsider spinning the contest as a fun & challenging way to top the leaderboard, and the prizes are just a small token of appreciation for attending the contest.

Haha, agreed!

Great to see CodeCombat getting more exposure.

I've actually started to use it to teach Javascript to 10 year olds in my local primary school (through a CodeClub I run). It has been a great experience and a lot of kids are moving quickly through the campaign levels. I even have a few kids who moved on to the multiplayer levels.

Quick remark: the computers in the school are Core 2 Duo machines with 1.75GB of RAM. They are running the latest version of Chrome on XP but often crash on CodeCombat (lack of RAM?). It's a shame but reloading usually solves the problem. Also, getting coordinates on the map is usually quite tedious (it doesn't seam to work all the time).

I am really excited about the future of CodeCombat.

We'll keep working on the RAM needs, but yeah, that is just about the lower limit that I would expect to be able to play the game at all currently. We have a lot of work to do, but don't worry, we'll get it running on older and older hardware as we optimize. Thanks for your patience (and your students').

I've started a GitHub issue to track that coordinate selector bug: https://github.com/codecombat/codecombat/issues/1038 – appreciate the bug report!

Interestingly, we have a 10-year-old who hangs out in our dev chat and helps us playtest and simulate. He actually came up with a strategy that did pretty well on the ladders for this latest one, and we'd challenge our other (existing developer) playtesters to c'mon, surely you can beat the 10-year-old!

Looking to the future, we have some ideas to push that younger and younger, too.

Oh wow. Please tell me he's French (although in an english school). That might be one of my students, he ranked 7 on a multiplayer level!

I might have a go at a few bugs over the summer after I finish my high-school exams.

Oh, which player is your student? Our ten-year-old is American, actually.

Have some self-respect. If this was any other profession, a contest like this would not be tolerated. If people get the idea programmers work for free, as long as you have a clever contest, that idea becomes popular and it's bad for all of us in the long run. The fact there's lots of prizes here doesn't change the underlying problem. Contests, in any field, devalue the profession.

Even if I was a high school teacher (winning this might look good on a resume) I would still tell my students to avoid contests because: Why work for free when you can work for money and have an even greater feeling of accomplishment? When I was in high school (20 years ago) I had paying clients and paying subscribers and had won programming contests and I still value the real-world work experience more than the contests.

As someone who won lots of contests in school: sometimes they are rigged, often the prizes never materialize, often it's free publicity (great photo opportunity) for whoever organized the contest. Live and learn.

No. You may be borrowing this stance from graphic design, which has a (mistakenly) rigid position on "spec work", complete with a "no-spec!" movement that generates complaints in any forum where the notion of a design contest is introduced. Graphic designers feel victimized by "contests" that were actual thinly-veiled attempts to solicit actual uncompensated work. When thinking about no-spec, you should remember that other professions --- particularly law --- routinely do speculative work in the hopes of inking long-term deals with lucrative customers.

There are exploitative contests for software developers. For instance, when a platform vendor hosts a "come up with the best new application for our platform!" contest; whether the contest is rigged or not, all those developers are doing gratis work for the platform, sinking costs that the vendor hopes will result in salable IP bound to their platform.

This, on the other hand, is a video game. The game happens to be controlled in terms of software. The best strategies and solutions for the video game have no value to anyone. Nobody's platform is being built up by gratis work generated by unsuspecting developers. Instead, time that might have been spent playing Netrek or OpenTTD is being spent on a more interesting game.

One way to tell the difference between an exploitative game and "just a game" is whether the organizer of the game gets something more than "publicity" and "stats on the people who played" (both of which are natural outcomes of running any online game). For example, in the exploitative platform game I alluded to above, the organizers got a raft of new applications for their platform that they didn't have to pay for.

I haven't looked carefully at this game, but I sure have run other games --- https://microcorruption.com is one of them --- and I'm happy to discuss them with you as long as you want until you understand that nobody is being exploited by them.

I do understand where this no spec movement is coming from, but I have lots of problems with that.

First, it's like the big players (and the opinion leaders) are telling the small ones how to behave.

I'm reading a bit in a designer's forum, especially the parts about work and jobs, and the situation for "normal designers" is dismal. Everytime I've visited that forum I'm happy I'm working in tech. Really.

So most small firms and single person freelancers don't have a choice. They really don't.

Of course it's easy for EdenSpiekermann to reject such spec work. They are booked. Others aren't.

Second, speaking of Spiekermann, he's strictly on the no spec side. And his old company, FontShop, is as well.

If you're reading (German) discussions on the Fontblog, you'll learn that spec workj is disgusting and you're traitor to your fellow designers if you do that.

No exceptions! Spec work for a charity that cannot pay a dime anyway is the same. Never!

Well... unless Spiekermann is on the jury himself. Like for some design competition somehow affiliated with the United Nations. Then it's all okay, because, hey UN!

And this hypocrisy is pervasive.

I don't know why you're so down on this. It's a competitive game that looks fun, no one is forcing you to take part. The code created here isn't even useful for any other purpose! It's not some 99 designs contest for code, it's like the Stripe CTF challenges if anything.

Agreed, I don't believe they are taking advantage of you.

Hey pj, sorry you feel that way. I can assure that our intent here is not to get cheap labor, the code that people write won't be usable to use in any way by us or third parties, so as pdenya mentioned you should only enter the contest if you think it's fun!

The part about "let us help you find a job" sounds condescending, as if the industry wasn't begging for developers that can actually write code.

I would argue any developer that understands the Traveling Salesman Problem is turning down job opportunities left and right. Call me a skeptic but if you don't care about the code, then sounds like the ulterior motive is to screen/recruit young developers and get some publicity.

In any case, I'm glad you're concerned about my feelings. I'm not attacking you, I'm attacking the trend. The only type of contest I believe in is a contest for charity. Anyway, you knew the contest would be a risk when you came up with the idea, right?


Ah, didn't mean to condescend to people, we've actually met with quite a few great developers who just aren't good at marketing themselves or who aren't aware of the opportunities in the field. People on HN might not fall into that category for sure, but we feel really good about matching good developers with great companies.

Screening is definitely a motive for us, but it's entirely opt in and we don't bother people who don't respond (or ask us to remove them entirely). We're developers and understand the issue with LinkedIn spam.

Contests are risky for sure, which is why we spoke with some friends/advisers/lawyers about it before launching. There is a critical difference between randomly won prizes and games of contest (legal term). After discussing it, we thought it was worth the risk.

One thing I believe is that artificial limitations sometimes bring the most out of us -- contests are unique in this sense, if well designed. You deal with problems you wouldn't deal with otherwise, and more than make you good at solving those specific problems, they entice your creativity and tact for principles.

Just noting that I'm thoroughly codecombat (just started), amazing work.

Sometimes contests are just harmless fun. This contest is about finding suitable people jobs, not harvesting work for free, as you imply.

I wonder if the marketing copy of this is inherently biasing it away from women. This isn't to say that there aren't plenty of women who like to "crush foes" - but societal norms are definitely still in the realm of associating that with men.

We pay a lot of attention to the way we position our site content, and thought this was in line with the copy for other competitive games. I don't think that competitive games are inherently masculine or feminine, but the critique is valid: competitive games I'm familiar with do tend to rely on marketing language that's more targeted at men.

This comment does not deserve to be downvoted. It's thoughtful and asks a legit question.

All: when you see substantive, civil comments in faded-out territory, please give them a corrective upvote.

Though 'crush foes' is just rpg/fantasy-speak for 'beat your opponents'. So they would have to take the competition-part out of it if they wanted to change it.

I remember seeing these guys get accepted to Ycombinator on stage at at Start Up School 2013.

Cool concept!

Here's the link if anyone is interested.


Thanks iMuzz, that was an intense day for everyone, and it's always surprising to see how much of a splash that made!

My experience with CodeCombat:

Pros: I liked it, and I find it fun to learn to make a game that way.

Cons: I found the "campaign" shockingly short - like 10 missions or so, and a few of them weren't even working (stuck on loading). After finishing that campaign, I found the jump to the "user-created" missions too high. I would've expected at least a 50 mission campaign, that walks me through to the more advanced concepts, until most of the user-generated ones feel easy.

Which levels didn't load for you? I'll check it out. Sorry about that!

The campaign is certainly short a few thousand levels. It will take time for us to get there, since making good programming levels is a challenge even when you aren't trying to fit them into a cohesive campaign. We'll get there, though. Lots to do!

Funny I just started to learn Clojure 2 days ago and dropped it because I lost interest in it.

I always wanted to join some AI competition and this might actually be fun.

The sad part is, there are no game rules. Yes he explained them a little bit in the blog but it was way too broad.

Also there is no tutorial on how to get started anywhere. I am assuming I need this https://github.com/codecombat/codecombat

Hey Maikklein, did you start playing? We built a mini-tutorial into the level itself, along with documentation and API details. We also have a rules tab on the ladder page that describes how the tournament works in broad strokes. If you still have questions, drop us a line at team@codecombat.com

Oh, then it was my fault! I didn't even think to press the play button because I haven't written any code yet.

Now I am seeing the interactive tutorial. Thanks

> Custom CodeCombat Wizard (est. $500 value)


Yeah, artwork is surprisingly expensive if it's customized. Obviously it's possible to get really cheap artwork, but we've found that quality and reliability are worth paying for. We also allow every winner to iterate the design a few times to get what they want.

What is a code combat wizard and why would we be interested in having one? It sounds like some sort of in-game reward or skin for your avatar, and giving it an imputed value of $500 is pretty optimistic. Has anyone ever paid $500 in cash for a CodeCombat Wizard? NB that the value delivered is not related to the cost for you to produce it.

You might consider putting in an explanation of what these things are and why they are worth more than the services you're giving away with a link on the text, and putting them at the end of the list, because for most people not familiar with your game the value for an in-game character or avatar will hover just above $0.

Is there an API you can use to submit code and get back simulation results and stats?

That's a great idea! I'll add it to my todo list.

Right now, there isn't a nice and well documented way to do this as we haven't ever had demand for an API like that. You can reverse engineer the POST for the code ranking to submit your code and the GET for the leaderboard information.

Also, could you email me at michael@codecombat.com with details on what stats you'd like to have access to?

I've been playing around with the challenge in python, but I've been completely unable to get (nested) classes working.

Which is too bad, without classes it's much harder to coordinate a bunch of peons.

Interesting that there's an option to simulate games to speed up tournament progress. I wonder how the output of the simulation is validated.

Hi michaelmior,

Those simulations are used to calculate the public leaderboards during the competition. They aren't used for final rankings as the simulation results need to be validated. However, they provide a nice way for people to gauge their standing.

To perform the final ranking/validation, we'll play n of the top games on each team against each other and then sort by wins and losses. We're not quite sure of how large n will be, but I think it will be 150-250. It would be nice to calculate the public leaderboards this way, but as a O(n*m) calculation, it really doesn't scale in practice (we have to strike a balance between accuracy and responsiveness of the ranking system). The public leaderboards are calculated with a Bayesian algorithm.

If you have any other questions, feel free to ask! :)

Thanks for the response! So in theory, a player could game the public leaderboards by returning incorrect results for a simulation? This seems like a reasonable choice.

Yep, they could.

If people start doing that to mess up results, we have ways of remedying that situation. We haven't had to deal with any cheaters thus far as our users are pretty awesome (and there really is no reason to cheat).

We'd probably send each game out multiple times and require consensus or run all the simulations ourselves. I don't anticipate having to do anything of that nature, but it's interesting problem to think about!

A company blog with no clickable link to the main page?!

In 2014?!

EDIT: it's there if you widen your browser super wide

Hi malloreon,

You can find the link to the main site in the middle of the top bar of the blog where it says "Click Here for the Main CodeCombat Site".

That doesn't show up if the window is too narrow. And "too narrow" is pretty wide.

Good catch! I'll have to send some feedback to the guy who runs the blogging platform.

I wonder how their last employment program went. Any comments, gsaines?

Really well actually. The TLDR summary is "we got swamped and made 4 placements."

We had ~50 good candidates that got in touch, but we took PG's advice to do things that don't scale, which meant I was doing high touch recruiting. About 2 weeks in, we decided to refocus on 12 of the candidates and we placed 4 of those. In the interim we've built out an automated profile system, employer portal, and a bunch of internal tools to scale up so that this time we can handle increased demand.

The overall feedback from employers was very favorable. One startup told us that our candidates were 5x more likely to pass technical screens that their other recruiting channels.

That's a great response, thank you.

You're quite welcome!

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