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.
The Schemaverse (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.
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.
That would be a really fun game mode! It would require a lot of thinking about game mechanics and the technical challenges involved, but it's definitely possible, but probably not in the immediate future. I think if we implemented features like a resource system and figured out how to make the game performant, a persistent MMO would be really entertaining, something like coding the AI to a long-running Starcraft game.
Some of the things on that list actually sound like pretty cool challenges.
I'm thinking about the mobile one, for example -- since the commands players use are limited to an API, could a drag-n-drop interface for that API work? Then the only things actually requiring typing would be function arguments.
As a programmer noob, this sounds really cool. Imagine instead of me trying to get more hats in Dota 2, I'm using that same time to instead learn more programming. My motivation would be on overdrive to fight against those who are infinitely better than me.
I'm not a kid anymore, but I want to act like one.
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/ which when tried was a little too complicated to setup for casual usage.
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.
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.
Actually, in my opinion, this could actually increase the feeling of impostor syndrome. Because no matter how good you are, there will be many people better than you. So any forum which puts your skills up against a random selection of others skilled in your craft will clearly show how far from the top you are. Unless, of course, you are consistently the best, but then it really stinks for everyone that you beat.
This reads like it has an assumption that people's programming ability is some hidden constant that gets compared. In reality it depends a lot on the task, motivation, current physical health, and mental exhaustion.
This will be a very interesting thing to study. Our leaderboard rankings tend to be extremely fluid, and I wonder what the net effect tends to be in terms of impostor syndrome.