

Introducing Competitive Multiplayer Programming - schmatz
http://blog.codecombat.com/introducing-competitive-multiplayer-programming

======
dkhenry
This is awesome. hey @schmatz since I see your reading this. See if you guys
can figure out a way to make it persistent and Massively Multiplayer. I want
to write a program to defend my tower while I am at work, then hop on at night
and tell my minions to attack someone else.

~~~
abstrct
The Schemaverse ([http://schemaverse.com](http://schemaverse.com)) is massive
multiplayer game that you play through programming, although the gameplay is
no longer persistent and is now played in one day rounds. I would love to make
a better persistent version one day but it needs a lot of hardware to support
most users complete lack of optimization (or deliberate resource hogging
attacks).

Schemaverse isn't nearly as polished as this is but if you are looking to
battle some AI, give it a chance.

~~~
TrainedMonkey
Why not hard limit amount of time people's algorithms can spend?

~~~
abstrct
At some point there is so much data available to work with that even nicely
optimized queries become too slow. This may have also been a limitation of
hardware but either way the game quickly became not fun when it was
persistent.

------
Robadob
It would be great if you could view the source for the existing functions such
as getNearest(), It would save much time reimplementing modified versions of
them. For example if I wanted to make a getNearestArcher() method to enable my
archers to focus the enemy nearest enemy archer at certain points, I'd take
the existing function and just add an additional type check rather than
writing my own function from scratch.

These types of games are really interesting and having this one available in
the browser gives it a significant advantage over others such as
[http://aisandbox.com/](http://aisandbox.com/) which when tried was a little
too complicated to setup for casual usage.

~~~
schmatz
Hi @Robadob, great suggestion, thanks for pointing this out! You can actually
view the code for these functions in the Level Editor, but obviously it would
be much more awesome to have a way to view them from inside the game. We have
to strike a balance with the UI to make the learning curve less steep while at
the same time providing a wide range of features. I'll bring this up and see
what the rest of the team thinks.

------
AUmrysh
I like this, it reminds me a little bit of corewars. Is there a way to get an
enemy's type when programming from the base?

~~~
schmatz
Thanks AUmrysh! If you use `this.getEnemies()` it will return an array of
enemy objects, and each one of these objects has a `type` property.

------
dajohnson89
As if programming culture wasn't hyper-macho and competitive enough.

~~~
gsaines
That's a really valid concern, although we were surprised by how many of our
users specifically requested this feature set.

~~~
dajohnson89
Well it looks like a cool concept, and all the best!

~~~
gsaines
Certainly, thanks for checking it out. I hope it goes without saying, but if
you find anything that's terribly, broken, or in need of improvement, shoot me
a line at george@codecombat.com and we'll get it resolved for you.

------
sireat
This looks awesome(if a bit slugging right now, probably because of HN).

Reminds a bit of my darker days working with Macroquest.

------
riggins
it'd be cool if you made it so I could customize the characters eyes ... then
I could make my guy look like a jawa.

