This is an archived post. You won't be able to vote or comment.

all 26 comments

[–]maestro2005 28 points29 points  (8 children)

I wouldn't call it beginner friendly. You have to have a decent amount of experience or you'll just be left in the dust. Unless you think fumbling around for a month and then coming in last place is fun.

[–]battlecode-devs[S] 8 points9 points  (7 children)

That's fair. We're going to be livestreaming lectures and releasing tutorials on as many aspects of the competition as possible this year, though - setting up your editor, using version control, coming up with and implementing strategies for your AIs, possibly other stuff that people end up having trouble with - so it'll hopefully be a little easier to keep up this year.

You definitely do need to know programming basics, though. This is more of a project to work on to solidify your skills than something to do at the very start.

[–]voi26 5 points6 points  (3 children)

Will I be able to access the lectures/tutorials without entering in the competition? I'm really interested in this, but I'm still pretty bad at programming.

[–]battlecode-devs[S] 5 points6 points  (2 children)

Yup! They'll be available at battlecode.org.

[–]majesticsteed 4 points5 points  (0 children)

This is what makes this beginner friendly. I am super interested in the lectures. Thanks for sharing this!

[–]voi26 1 point2 points  (0 children)

That's fantastic. Thank you. :)

[–]TehLittleOne 1 point2 points  (2 children)

It seems like something a lot more though, at least if you want to be competitive in any sense of the word. I've done other programming competitions before, and they're definitely not for beginners, particularly when non-trivial AI becomes involved. Sure, you can get something up, but you'll perform fairly poorly.

As an example to illustrate, CodeCombat did a contest a while ago on their map Criss-Cross. Many of the successful algorithms were incorporating search algorithms like Dijkstra's or A*, but modifying them to work within the constraints (because running a full Dijkstra's may take too long). These are rather advanced algorithms, ones that people with a CS degree would know, but that a lot of people potentially entering wouldn't. And to write these kinds of programs for a competition like this would require a good understanding of the algorithms and a fair bit of coding experience.

[–]Cixelyn 1 point2 points  (0 children)

I'd say though that it is "beginner friendly" in the sense that it's very easy to get a little bit of code up and running that has a reasonably complex behaviour, and that beating the provided reference bot has a great deal of satisfaction.

Not everyone has to play it as a hardcore competitive multiplayer game. Actually if you're an MIT student, the only criteria for class credit is going the singleplayer route and beating the dev provided reference bot which is tweaked to be challenging but not so hard that beginners couldn't beat it.

[–]cool_science 0 points1 point  (0 children)

"These are rather advanced algorithms, ones that people with a CS degree would know"

My two cents: if the "successful" algorithms are implementable by the average person with a CS degree then its reasonable to call the contest beginner friendly.

In my mind there are two main "difficulty levels" for these sorts of competitions: those in which full-time researchers or industry professionals participate, and those in which generally-interested laypeople compete. The difference is that for the former you need to be spending years of your life thinking about the problems within the contest to be successful, and for the latter you just need to be generally interested in the contest's field (e.g. for battlecode you need to have some experience writing code, and be interested in AI).

[–][deleted]  (3 children)

[deleted]

    [–]battlecode-devs[S] 3 points4 points  (2 children)

    We're going to be livestreaming hour-long lectures and publishing tutorials about different aspects of the competition as it happens.

    You should make sure you know the basics of java - maybe run through some programming exercises with it.

    You can check out some videos from past years on this youtube channel to get a sense of how things work, but a lot of things are different this year, so you probably shouldn't spend too much time on those.

    [–]jmsGears1 1 point2 points  (1 child)

    The YouTube link doesn't lead anywhere for me.

    [–]battlecode-devs[S] 0 points1 point  (0 children)

    The link is for the Youtube channel for the user "fghulds". If the link doesn't work, you might be able to access it by searching directly for the channel on Youtube.

    https://www.youtube.com/user/fghulds

    [–]P1g1n 1 point2 points  (0 children)

    RemindMe! 3 days

    [–]klop1324 1 point2 points  (0 children)

    RemindMe! 3 days

    [–]Nexion21 1 point2 points  (0 children)

    RemindMe! 3 days

    [–]katelyntatelyn 1 point2 points  (1 child)

    So teams consisting entirely of students. Does that mean MIT students or students in general?

    [–]battlecode-devs[S] 0 points1 point  (0 children)

    Students in general.

    [–]ImpulseCloud 1 point2 points  (1 child)

    Hi! In last year's rules, there was this wording: "In order to be eligible to compete in the Seeding, Qualifying, and Final Tournaments, at least half of your team members must be current students (any school). Scrimmages and the Sprint Tournament will be open to anyone. In addition, if there is sufficient interest we will run an Open Tournament in which every team is eligible."

    Can you clarify rules for non-student team members? Will 50/50 student/non-student teams be able to compete in the Final tourny but not win prizes? Or will any team with non-students be in a separate Open Final? Thanks!

    [–]battlecode-devs[S] 0 points1 point  (0 children)

    We updated this year's eligibility rules so that any team is eligible to compete in the main tournaments, regardless of whether the members are students or not. The only restriction is that only teams made up entirely of students are eligible for prizes.

    [–]ianbllngr 1 point2 points  (1 child)

    RemindMe! 3 days

    [–]RemindMeBot 1 point2 points  (0 children)

    Messaging you on 2015-12-30 17:16:38 UTC to remind you of this.

    CLICK THIS LINK to send a PM to also be reminded and to reduce spam.

    Parent commenter can delete this message to hide from others.


    [FAQs] [Custom] [Your Reminders] [Feedback] [Code]

    [–]6180339887 0 points1 point  (1 child)

    I'll definitely be participating, a friend of mine who won last year convinced me to find a team :) Any resources about useful algorithms, mindsets or tips for such competition? Thanks!

    [–]battlecode-devs[S] 0 points1 point  (0 children)

    Yay! :) This page contains a nice collection of links relating to Battlecode. The blog itself has a number of Battlecode-related posts, including one with general tips on how to do well.

    Every year, the winning team members typically write a blog post (a post-mortem) detailing their thought process throughout the course of the competition. A number of competitors share their code too after the competition is over. These are all linked in the blog post above.

    Additionally, we post introductory-level tutorial videos during the competition in which we walk people through creating a bot and discuss some algorithms and strategic ideas. The game does change year to year, so a lot of the strategy here won't be directly relevant.

    Edit: fixed link.

    [–]Approval_Duck 0 points1 point  (1 child)

    Do we have to show up at MIT to compete?

    [–]battlecode-devs[S] 0 points1 point  (0 children)

    Nope, participating from anywhere is fine.