
Win $10,000 by creating a race car bot in haskell, scala or clojure - brutopia
https://helloworldopen.com/
======
jfim
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](https://helloworldopen.com/rules)

~~~
miahi
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
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](https://helloworldopen.com/rules)

~~~
miahi
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."

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

~~~
bencoder
Thank you!

------
spuz
> 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
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
_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
Yes, we'll provide test game servers that you can use.

~~~
mcv
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
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?

~~~
mcv
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
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

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

~~~
ccozan
I was also surprised that erlang did not show up in the list. I had already a
team in head. We all do AI + Erlang.

~~~
anttipoi
I believe Erlang will be supported, so just enlist :)

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

~~~
Gurrewe
> All code created by teams must be licensed with Apache License v2.0.

[https://helloworldopen.com/rules](https://helloworldopen.com/rules)

------
tinco
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
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
I thought it was supposed to run on your own laptop during the competition?

~~~
omahlama
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
> 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
"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 ?

~~~
thinkpad20
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
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?

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

~~~
d_theorist
I agree ;). I didn't down-vote your answer.

------
Oculus
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
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
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
Thank you! Is it necessary that all members of the team arrive in Finland, or
just one?

~~~
thrantal
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](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
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.

~~~
mikko-apo
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
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
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/](http://torcs.sourceforge.net/)

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

~~~
ravich2_7183
Another even better guess is that the udacity self driving car course [1] will
see a huge upswing in enrollment.

[1]
[https://www.udacity.com/course/cs373](https://www.udacity.com/course/cs373)

------
ah-
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
There is a slightly longer description in the Technical Instructions section
on the Rules page
([https://helloworldopen.com/rules](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
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
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.

------
macmac
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
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
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
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--
It would be interesting to know if C++ support is on the table.

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

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

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

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

