SPUG: September 2010 Meeting Announcement
vaticide at gmail.com
Wed Sep 22 22:56:40 PDT 2010
It went pretty well -- it certainly suffered from some first try bugs,
but we all had fun.
The contest was duelling cannons. Each player was a fixed cannon
somewhere on a 1000 meter linear playing field.
They knew their own position, but not their opponents. Each turn they
could provide an angle and a power. If they hit they would get
information on where it landed and if it did any damage to the
opponent or themselves.
The task was to build the client that would register itself for a
tournament, request status, and if it was their turn, fire.
Things I will do differently next time:
1. Provide the reference client immediately and suggest people start
with that. While that part was interesting and an opportunity for
learning for some contestants who had never used anything like a REST
protocol or JSON, it added unnecessary complexity to the problem.
With a reference client they could focus on the logic of search and
2. Simplify the registration. I had included an overly-robust
security layer on the game which caused issues. Players were assigned
session-based tokens for each tournament, but due to the quick coding
time, clients would crash and lose their token info. Rather than
session based, I am leaning towards one-time registration to get a
3. More prep time. There were a couple bugs with the server, and I
had to do some major late night crunch work a few nights in a row to
get it ready in time for the meeting.
4. Reuse my tournament management server. The overhead of registering
clients, managing turns, brackets, status, and leaderboards is 99% of
the code. The actual cannon-specific logic is miniscule. Hopefully
that will enable me to do more competitions in the future without
quite as much prep time.
5. Simple is good. The goal in this game was pretty simple. It still
took from about 6:30 to 9:30 to get everyone ready to compete. If I
decide to do any more interesting problems, they will be take home and
compete at SPUG.
6. Easier testing for the clients. Partway through the competition I
added a testfire method. This helped people quite a bit. The
overhead for creating test matches against yourself was still a manual
process by me, though. In the future I'll plug increased ability for
people to test as they build.
As for the results, we didn't actually succeed in running the full
tournament. Laptop batteries died, clients kept crashing, and it was
too late to try and salvage things. In the end we walked through
examining everyone's implementations and I picked the winners based on
completeness of implementation. It was really hard and a very close
call. I was really counting on the tournament to pick the winner.
Turnout was fairly low, possibly due to the long break between SPUG
meetings, but that wasn't necessarily bad. It made it easier for me
to help people out.
In the end, team "And Elbows" of Mark and Josh were awarded the
trophies. (Yes, there were trophies) They managed to net a win in
the trophy when their opponent suicided.
Team "rcroot" was also a great implementation, with a team of just
Rick. He not only managed a working implementation, but it was OO
Perl. He had a very compelling argument for receiving a trophy too,
and if I had another I probably would have also awarded him. He also
managed to net a win in the competition when my entry (the reference
client) killed itself.
Team "imadeamarshmallow" of Dave and Auggy won the "square root of a
negative number" prize, and was the only team (so far as I saw) who
used version control.
Finally, team "sameteam!sameteam!" another solo competitor (sorry! I
forgot your name :( ) had a very creative entry. He created a web
interface using jQuery that used Ajax to poll the server for when it
was his turn and allowed him to enter his moves to play manually
against the other team's AIs.
If I can catch up on some sleep, I'll patch up the server and send out
the API specifications so people can play around with it, if you like.
It was also a lot of fun for me, and I definitely plan on doing it again.
On Wed, Sep 22, 2010 at 7:18 AM, Jonathan Hogue <jon at hogue.org> wrote:
> On Wed, Sep 22, 2010 at 10:04 AM, Joshua ben Jore <twists at gmail.com> wrote:
>> This sounded like fun. I couldn't be there. I obviously can't win
>> anything but could you tell the list about the contest and its
> How did it go?
> I'm thinking about doing something similar in Columbus PM with this
> game: http://www.weewar.com/
> Seattle Perl Users Group Mailing List
> POST TO: spug-list at pm.org
> SUBSCRIPTION: http://mail.pm.org/mailman/listinfo/spug-list
> MEETINGS: 3rd Tuesdays
> WEB PAGE: http://seattleperl.org/
More information about the spug-list