Settings

Theme

Win $10,000 by creating a race car bot in haskell, scala or clojure

helloworldopen.com

132 points by brutopia 12 years ago · 85 comments

Reader

jfim 12 years ago

It's not only those three languages.

From the rules[1]: Programming languages that are currently available for selection are C, C# / Mono, Clojure, CoffeeScript, Haskell, Java, JavaScript, Python, Ruby, Scala, Go. At the moment, due to technical reasons, we cannot 100% guarantee that all of these will be supported, but we'll do our best. You can change the programming language at any time.

[1] https://helloworldopen.com/rules

  • miahi 12 years ago

    Also, first prize is $5000, not $10000 - that's the sum of all prizes. You also have to travel to Finland to participate in the finals.

    • jkytomak 12 years ago

      From the rules[1]: "The six teams that fight their way to the finals will receive a four-day, all-expenses paid trip to Helsinki, Finland. The trip will include great company, delicious food and one heck of a tour in the capital city of Finland."

      [1] https://helloworldopen.com/rules

      • miahi 12 years ago

        Yes. Sorry, I was reading below, but that was another event:

        "All six finalist teams will get exclusive tickets to the to-be-sold-out tech conference of the year Reaktor Dev Day, worth 500e/piece. More information on the conference. Travel and accommodations costs are not included."

    • lelf 12 years ago

      Also, it is €5000, not $5000

  • jnbiche 12 years ago

    What about OCaml or F#?

    • dom96 12 years ago

      I don't get why they restrict the programming languages that can be used. Why can't I just use whatever programming language I please?

      • misok 12 years ago

        This is due to the competition environment running in virtual environments that need to be able to build and run all the entries.

      • PeterisP 12 years ago

        It's not so easy to enable - there are no simple, reasonably automated and secure ways to deploy,run&evaluate solutions developed in/for an arbitrary environment; there are multi-language code-evaluation environments that allow to do this for many but not all languages.

        You don't want to run arbitrary binaries; linking of required libraries is an issue in many languages, and you can't install every version of every possible interpreter in the world to support all possible interpreted languages (and their multiple, incompatible versions).

    • omahlama 12 years ago

      F# is very likely to be added (unless we run into some problems), thanks for your feedback :)

bencoder 12 years ago

Was about to apply but I'm confused about the rules requiring all members to be the same nationality.

I have a French passport, so my nationality would legally be French, but I live in the UK, and work with English, Polish, Hungarian, Romanian developers(all living and working in the UK), some of whom I was considering asking to join a team with me. I think this rule needs some amendment.

Edit: also to explain some more, my French passport is a consequence of some awkward laws - I was born in the UK and have lived here all my life and can't even speak the language of my legal nationality. If I happened to win I wouldn't like to be a representative of "France" and I really dislike this "Passport must match" for the team - it makes no sense.

  • amsaarin 12 years ago

    Rules changed. Teams choose which country they represent, and one member needs to be a citizen of this country, but others can be from anywhere. Yay!

  • egeozcan 12 years ago

    Yeah, I have a Turkish passport and I live in Germany with a residence permit. I joined with two German colleagues, hoping that would be OK.

    • omahlama 12 years ago

      (Disclaimer: I'm not part of the organizing team, but I do work for Reaktor - so this is just my opinion, not an official position.) As I've understood, the same country requirement works just like in sports: you need to be a citizen of the country if you want to play in the national team.

      I would suggest contacting the organizers about your situation.

      • jwr 12 years ago

        I think what people are trying to point out is that within the hacker community the concept of a "national team" is obsolete.

      • bencoder 12 years ago

        > you need to be a citizen of the country if you want to play in the national team.

        Citizenship and Nationality are two distinct concepts. I am a citizen of the UK, but I do not have UK/English Nationality

      • no7hing 12 years ago

        I think that comparison is flawed as there's only one team per country (and discipline) sent to e.g. the Soccer World Cup or the Olympic Games, whereas here it could be potentially way more. As a sibling already mentioned: there shouldn't be any artificial borders in a global (hacker) community.

      • egeozcan 12 years ago

        It would be a shame if they disqualified me/us. I'm in this for fun. I guess everyone is. If I can travel freely in Europe and have no problems being in a "German" team, I think there mustn't be any problems.

        • omahlama 12 years ago

          I agree. The main point of this competition is fun - having beta tested the system I can promise that writing bots and watching them compete is a lot of fun. I hope your team can participate.

  • maaaats 12 years ago

    I have a Danish passport, but have lived in Norway my whole life. Would have liked to join with some of my friends, well, well...

spuz 12 years ago

> The server will send you track details and car positions and your job is to send car control messages to the server. You'll communicate with a game server using JSON over TCP. More details will be delivered later.”

I don't understand how this could work for a real-time game. I don't know what the input format is like but assuming you need to provide control commands eg:

    {accelerate:1.0, steer:-0.01, brake:0}
Then the behaviour of my car depends wholly on when that command arrives at the server. If there is a small delay it could have a dramatic effect on the position of the car. Similarly, my AI needs to react to information sent by the server which similarly could be delayed when sending over TCP.

Assuming the input format is the actual status of the car, eg:

    {positionx:123, positiony:234}
Then what is to stop me from submitting illegal inputs? Validation might work but it will be impossible for me to validate the output of my AI without access to the simulation code (apparently that is being kept closed source).

Maybe there is another technical solution I haven't thought of? Or maybe the simulation won't run in realtime but will actually work on fixed time steps?

  • mikko-apo 12 years ago

    Hi!

    Very good question :) The message protocol is synchronized because of latency. When the developers test their bots against the game servers, the server allows long response times. When automated races are run in the cloud (with low latency), the response times need to be more strict.

    • mcv 12 years ago

      Can you test your own bots? As far as I can tell, the rules only specify that they're automatically tested daily. I'd like the ability to test whenever I need to.

      • mikko-apo 12 years ago

        Yes, we'll provide test game servers that you can use.

        • mcv 12 years ago

          Are there limits to how much you can use them? Suppose I want to use AI techniques that require tons of tests to be run. Is that okay?

          • mikko-apo 12 years ago

            Unfortunately due budget constraints we can't allow unlimited access to test game servers. Do you have an estimate on how many rounds would you need to evolve the algorithm enough?

            • aerique 12 years ago

              The Google AI challenges allowed one to run a game server locally so testing was only limited by one's own resources. (A bot made using genetic programming did pretty well: http://planetwars.aichallenge.org/profile.php?user_id=4038)

            • mcv 12 years ago

              No idea. I have no idea how complex the simulation is going to be. How about a simple version that can be run locally?

              • mikko-apo 12 years ago

                I would image the complexity being really high because the game is about racing against other AIs. What do you think?

                And I'm afraid local versions are out because:

                1. players would reverse engineer the server's simulation code

                2. we don't want to give access to other team's bots

          • SixSigma 12 years ago

            Couldn't you record the received messages and replay them?

            • mcv 12 years ago

              I don't see what use that would be. If the test server was a simple data repository, it would be useless for testing algorithms.

          • d_theorist 12 years ago

            I would like to know the answer to this.

  • omahlama 12 years ago

    It does work - I've seen it :) It does depend on a low ping between the bots and the server, but that is taken care of by the organizers.

    • TeMPOraL 12 years ago

      Well, the ping (and uncertainty of it) is just a parameter in an closed-loop feedback control system ;). You can handle it.

davidw 12 years ago

Perhaps they don't let Erlang race cars because of the "let it crash" philosophy?

kriro 12 years ago

Are there any limitations on the licensing of my AI (didn't see anything on the front page rules)? I'm somewhat concerned this is just an cool way of outsourcing the AI development for one of their mobile games :D [at the very least it seems like a smart investment for recruiting]

Otherwise the competition seems cool and Helsinki is a nice place. Will certainly think about participating. All members being from the same country is a strange constraint though. I was actually looking forward to using this as an opportunity to co-develop with some US-based friends (I get why it's done though but I think allowing multi-country teams and having them participate as the country of the majority of the team members could have worked).

Edit: The screen shot makes me think it'll be a 3d game but since one of the company behind this is in mobile games it could be 2d (micro machines style). That's one point that should be clarified. Some more info would be helpful as well i.e. how is the world represented, what can we control etc.

tinco 12 years ago

It sounds like a cool competition, but it would be nice if they gave a little more explanation about their technical solution. If it's true that the only way to test your bot is by uploading it to them and waiting for the CI to finish (once per day), then that's not very nice at all.

Will the participants get an environment in which they can test their bots outside of the competition CI?

  • omahlama 12 years ago

    Servers are available for testing during development, running the code on your own computer - the CI server is useful in that it verifies that your code compiles and runs on the linux machine used during the competition.

    • mcv 12 years ago

      I thought it was supposed to run on your own laptop during the competition?

      • omahlama 12 years ago

        During the finals yes. The qualifying round is run with standardized virtual linux boxes, so all bots must have the same build and run scripts. With the amount of participants we're expecting, it wouldn't be possible to run the competitions manually.

Gonzih 12 years ago

> All team members must be from the same country. By the same country, we mean you should all be of the same nationality.

Why? What if I don't have any coding friends from my country? Silly.

Kurtz79 12 years ago

"The AI must have have near real time performance on CI and qualifying round. Slow response time is grounds for disqualification."

Will bots with a fast response time have an advantage over "slower" (but still meeting the minimum response time) ones ?

If so, for the sake of argument, won't a C bot have an inherent advantage over a python bot ?

  • RogerL 12 years ago

    You can get more done in a constant amount of time in C or C++ vs all the other languages, so yes. More compute time == more sophisticated AIs.

  • thinkpad20 12 years ago

    C code isn't necessarily more efficient; it's definitely possible to write slow C code if you make poor choices, and the performance-critical work in python can be written in C (it might be already, e.g. if you're using numpy). And if the performance is IO-bound (e.g. communicating with their server), there might be a negligible difference anyway. Also, being high-level can give a big advantage in development time and bug prevention which is more likely than response time to be where things get difficult.

    • d_theorist 12 years ago

      Right, but what's he's getting at is: will a bot that responds faster have an advantage over one that responds slower, even if both respond within the time time limit? Or, is the server waiting for both responses to come in before progressing the world state?

      • omahlama 12 years ago

        I don't want to give any information out before it's revealed to everyone, it wouldn't be fair. I'll just say that the response speed does matter, but at least in our beta tests the benefit of using one language over another was how productive the team was - so I would recommend choosing the language you're most comfortable with. Anyways, you can switch language at any point.

      • thinkpad20 12 years ago

        Ah, I see. Well, I misunderstood the question I guess. I'm not sure why my answer was downvoted, however, seeing as I don't think I said anything incorrect, and it is a reasonable (though incorrect) understanding of what he was asking. Namely, responding to the implication that a C bot will be necessarily faster than a python bot.

  • Lambdanaut 12 years ago

    Commands will be sent over a network to the bot, so it's probable that wire latency will be the bottleneck, not the language.

Oculus 12 years ago

Emailed them and just got this:

> We just made a little change to the rules:

> "Team represents one country. At least one member of the team must be a citizen of this country."

Looking forward to competing now!

  • Lambdanaut 12 years ago

    Forgive me for my density, but I'm still uncertain as to what "this country" means. Does this mean that at least one member of the team must be from Finland?

    Can a team of 100% Americans compete?

    • misok 12 years ago

      Yes, you can. That rule just means that if you declare your team to be from US, then at least 1 person needs to have a US passport.

      • Lambdanaut 12 years ago

        Thank you! Is it necessary that all members of the team arrive in Finland, or just one?

        • thrantal 12 years ago

          Well it says " All team members must have passports valid up until at least July 5th 2014. Finalists will be required to travel to Helsinki, Finland for the onsite finals. Any finalist who is unable to obtain appropriate travel documents, such as a passport or visa, may be disqualified from the onsite finals and an alternative finalist may be selected." https://helloworldopen.com/rules

          so I would suppose that if you get to the finals (meaning to be in the top two teams of your region), then yes you must all travel to Finland, but expenses paid.

          However, the qualifying rounds are organised via Internet, so the vast majority of teams will not need to travel. Of course Helsinki in June is a really nice place to visit if you want to come on your own and check out the finals live ;)

rakoo 12 years ago

This sounds exciting, and I'm sure I'm not the only one in thinking that coding an AI for a race car bot is at least as interesting as the final prize.

Will the server be open-sourced later ? I think it would be awesome to be able build a bot at home.

  • ravich2_7183 12 years ago

    If you want an open sourced car racing game server, you can always use TORCS [1] and SCR [2].

    [1] http://torcs.sourceforge.net/

    [2] http://scr.geccocompetitions.com/

  • mikko-apo 12 years ago

    During the competition the server code is not released. There are going to be game servers where developers can connect and test their bots.

    We haven't discussed about what happens after the race. Lets see :)

    • rakoo 12 years ago

      Yeah, I understand you don't release the code during the competition so as to not make it too easy for competitors :)

      I think building such a bot can be a very interesting exercise at AI and realtime programmation, which is why I'm interested in the potential educational aspects of it.

      I'll keep an eye on it !

ravich2_7183 12 years ago

Its a good guess that the simulator or game engine behind this competetion is TORCS (The Open Racing Car Simulator) [1].

Simulated Car Racing (SCR) [2], is an existing annual AI car racing competition based on TORCS, though without the attractive prizes. It also has a client-server architecture with controls and sensor information sent over UDP using what seem like lisp sexps.

[1] http://torcs.sourceforge.net/

[2] http://scr.geccocompetitions.com/

ah- 12 years ago

Signed up in the hope to find some time to have a go at this. But it would be great to have some idea what the task will be beyond "creating a race car bot".

  • roryokane 12 years ago

    There is a slightly longer description in the Technical Instructions section on the Rules page (https://helloworldopen.com/rules):

    “The goal is to create an AI for a simple real time racing game. Your AI will sit on the drivers seat of a racing car and race against others AIs on different virtual tracks. The server will send you track details and car positions and your job is to send car control messages to the server. You'll communicate with a game server using JSON over TCP. More details will be delivered later.”

    • sycren 12 years ago

      I wish I knew specifically what kind of data we would be given.

      For example, is track details a 3d representation of the map to use for collision detection, the weather in a particular scenario. How much detail do we have for the cars? Drag coefficient, acceleration, max speed, bounding box?

      • mikko-apo 12 years ago

        We're trying to keep the competition both fun and challenging so the simulation is kept fairly simple. More details will be revealed when competition starts.

      • bencoder 12 years ago

        Those details would allow you to start working on it (even if in your head). Presumably they want everybody to start at the same time.

macmac 12 years ago

There are no clear rules regarding rights in the code submitted, but the combination of "All content the team provides can be used for marketing purposes without notifying the team by the organizers of Hello World Open 2014." and "Reaktor may change these rules, the contest or its prizes, at any time for any reason without incurring liability to any of the contestants." aren't exactly comforting.

d_theorist 12 years ago

From the rules page:

"Access to game servers where they can test their bot and compete against other bots"

Does this mean that teams will be able to run their bot an unlimited number of times against other bots before the actual competition?

I'm wondering whether neural network/genetic algorithm approaches will be feasible given the testing infrastructure.

  • mikko-apo 12 years ago

    Hi

    Unfortunately due budget constraints we can't allow unlimited access to test game servers. Do you have an estimate on how many rounds would you need to evolve the algorithm enough?

yaddayadda 12 years ago

I don't have a passport, and even if I did and I were to miraculously become a finalist, I've already got other obligations for the first weekend in June, so no formal entry from me.

BUT I'd still like to compete, is there anyway someone can unofficially compete?

C-- 12 years ago

It would be interesting to know if C++ support is on the table.

  • eclark 12 years ago

    I wonder the same. Since they are supporting C it seems like a small amount of effort would get them C++ support.

bamdadd 12 years ago

this is stupid : "ALL MEMBERS FROM THE SAME COUNTRY". Why? I don't really understand the reason behind it

  • TwoSheds 12 years ago

    It's fixed now, the rule is that one of the team must be a citizen of the country the team represents.

imdhmd 12 years ago

where does it mention that oly haskel, scala or clojure should be used?

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection