6 ms·
I've got 10 btc for the best CoffeeScript/JavaScript Nodewar bot
- GotAnyMegadeth 13y agoThis looks ace. I haven't looked into it much, but is not knowing either of the languages going to be an issue? Or should I be able to pick up what I need easily?
- malgorithms 13y agoI would say the programming skills requirement for the game is just beginner level. At least that was my hope making it. If those languages are new to you it will take a little overhead but not much.
- davman 13y agoI want to play, my JS is good, my geometry/math is not :(
- infrec 13y agoI'd be willing to give it a shot if you would like to partner up. I have reasonable (for some value) math chops. Email me at infrec.obs@gmail.com if you are interested. Time-wise I can commit only a couple of hours a week so I don't expect much but it seems like it could be fun.
- shocks 13y agoAwesome. I would love to participate, but I think my exams will get in the way. :( Downloading a replay is taking a very long time. Also, is there an easy way to plot things like projection vectors?
- prince_hakeem 13y agoI always thought sharting meant something else but love the sense of humor by these guys :-) This looks like a really cool game!
- deathbob 13y ago"Create a species" doesn't seem to work, even with all fields filled out.
- ambiate 13y agoDid you verify your email address?
- matthuggins 13y ago> In the unlikely case something very bad happens to bitcoins between now and then (or ours are stolen or become unavailable for reasons outside our control), we reserve the right to pay $2,000USD instead. Does this go both ways? What if Bitcoins are worth $500 USD at come award time? Will you still be paying in BTC, or will you just pay $2,000 USD instead?
- glomph 13y agoPresumably they have the 10btc set aside. It would be a bit stingy to hold it back if btc goes up, but I guess they might.
- malgorithms 13y agoNope, I will pay in bitcoins. I fully intend to pay in bitcoins (which I have set aside), regardless of the value, but reserve the right to pay in cash in case something happens to mine AND they become ridiculously expensive. I would pay $500/coin to buy them back in the case you describe. I would not pay $10,000/coin, however, if my 10 were stolen. Just protecting myself and my family from a crazy event.
- matthuggins 13y agoFair enough, just thought I'd ask. :) I can't even view the site properly because of my work proxy, but I'm interested in taking a look later and perhaps participating.
- seanalltogether 13y agoMight I suggest transferring the 10 btc to a custom wallet with a single address in it, encrypting the wallet and simply putting it online for everyone to see/download. The winner gets the password to the wallet.
- TallboyOne 13y agoThe amount of effort I put into this is directly proportional to how much Mt. Gox is being hacked or DDOS'd. Lol.
- matthuggins 13y agoMt. Gox was not being hacked or DDOS'd, it had a legit influx of users opening accounts.
- wamatt 13y agoUm, there was definitely DDOS'ing going on. I witnessed it myself with a bunch of other sites (bitcointalk, bitstamp, bitcoincharts etc). Mt Gox was trying to do damage control and spin it positively. That failed and now they are reporting DDOS again.[1][2] "@MtGox Maintenance Over however we are now under a DDoS attack." [1] Mt Gox has taken a credibility knock, which has a ripple effect on the BTC pricing right now. Overall it probably a temporary setback, but does bring to light irrational exuberance voices ignoring others that were calling for a more decentralized ingress/egress between USD and BTC. IOW bitcoin needs more exchanges to drive competition, and perhaps even meta-exchanges too. [1] https://twitter.com/MtGox/status/322281690309468160 https://twitter.com/MtGox/status/322281690309468160 [2] https://www.facebook.com/MtGox/posts/456123227805423 https://www.facebook.com/MtGox/posts/456123227805423
- polshaw 13y agoWhat evidence do you have that each of these sites weren't going down just because of real high traffic? I don't think it's at all unreasonable to think that each of those sites would have naturally seen their greatest traffic surge with the events of yesterday. For example, over 20% of all subscribers were present on /r/bitcoin (for comparison, (eg) /r/android is currently at about 0.5%, /r/bitcoin is around 10% now).
- lowboy 13y agoThere have been large sequences of micro-transactions of 0.01 BTC, all on the heels of one another. That points to market manipulation/DDOS. I'll see if I can dig up sources.
- deleted 13y ago[deleted]
- ecto 13y agoThis looks pretty awesome! I'm going to try my hand at a species today. FYI, the confirmation email went to my junk mail box on Gmail.
- noddingham 13y agoIBM offered games like this through their academic initiative when I was in school. Cool idea moving it into modern JS environment.
- Siecje 13y agoWhere can I find what 'speed_to_nearest_moon' does?
- malgorithms 13y agoThat's a function in one of the sample codes I wrote, so it should be in the same file you encountered it. It likely uses some of the lib functions defined on the documentation page.
- hleszek 13y agoIs it possible to send positions/result to an outside server to use some kind of genetic algorithm ?
- deleted 13y ago[deleted]
- malgorithms 13y agoYou are free to analyze existing recordings, if you like. So you could make entries and study their recordings. I don't intend to document them during the contest, though. As for sending info out during the battle, probably not. Although - you are free to do that with the sandbox, of course. It all runs in your browser.
- andypants 13y agoWhat's up with the sign up form? What the hell does @name mean? A twitter username? Does it have to be twitter? Is it just a regular username? Then why does it have an @ sign? Do I need to enter an @ sign or are you going to prepend it after I submit the form? Edit: okay, so it prepends the @ as you type. Now I'm even more confused about whether or not it's supposed to be my twitter username or not. Edit 2: Signed up, seems to be just a username. The website refers to usernames in the same way as twitter? The top bar says '@<username>' and links to the account settings. On the home page it links two @usernames to twitter, not a website profile. On the ladder, it shows more @usernames but don't link to twitter and look like they will link to user profiles. Please don't mix twitter usernames with your site's usernames, it's confusing, especially when some are internal links and some are twitter links. Anyways, awesome site, reminds me of the google ai challenges. I hope you keep this open perpetually though, or keep running different challenges. Sucks that the google ai challenges only run once a year.
- andypants 13y agoI'm posting again as a reply, since it's kind of separate from my parent comment. What kind of environment does the code execute in? What standard javascript functions/libraries do we have access to?
- malgorithms 13y agoThe browser version runs in a WebWorker (each team gets one). I didn't even know what WebWorkers were before I programmed this. The server side runs in a NodeJS process (each team gets its own), and your code runs in a fresh VM context. These both provide commonly expected JS such as Math and Date, but not other stuff such as console (which I provide in the webworker case and send messages back to the browser).
- malone 13y agoAny plans to release the nodejs code? Coding in the browser is ok, but it'd be much nicer to be able to code in my usual editor and test locally using the nodejs version.
- shmageggy 13y agoIs this supposed to happen? http://youtu.be/vndQFnesPT8 http://youtu.be/vndQFnesPT8 edit: specifically, the part at the end when the moons fly off the screen, the world shrinks to nothing, and the counter on the right expands wildly.
- asselinpaul 13y agoyes, you haven't loaded any species so there are only moons.
- pokpokpok 13y agothat's meant to end the game in case of stalemates
- deleted 13y ago[deleted]
- joaorj 13y agoi would love to be able to use machine learning with this. for example, if you released the "universe simulator" in a binary/open source would be more than enough to start. any thoughts on this from the creators of the project?
- jazzychad 13y agocrud, I've been nerd-sniped... guess I know what I'll be doing at nights now.
- lnmx 13y agoThe Nature of Code [1] has some nice examples on how to calculate steering/acceleration behavior for targeting. http://natureofcode.com/book/chapter-6-autonomous-agents/ http://natureofcode.com/book/chapter-6-autonomous-agents/
- tthisk 13y agoI like the idea, never participated in this kind of competition. However I had to write an AI for a same kind of game in college. It was a 2d football simulater and we had to write the AI in haskell. The tactics however had nothing to do with real life football (rushing was the best strategy). Does anybody here know if this is an evolution of an existing game, or did the creators invented this game by their self's?
- Jach 13y agoCool. I've played with a few of these over the past several years but the problem was typically few participants and no incentive to win. This one shouldn't have either problem, plus it's not C++! (I hope they get ClojureScript working in the next few days, but JS is so much better for this sort of thing than C++...) How often do ladder matches get scheduled and played?
- malgorithms 13y agoThanks! If you want to use ClojureScript, maybe just work in an editor of your choice and paste into the site for now. I do that anyway when I play with it, as I prefer Sublime to Ace. Right now it starts a game 1 minute after the previous one ends. I will likely speed that up as the number of submissions increases.
- jnhnum1 13y agoIt looks like the API doesn't give access to the whole shape of a ship - only its centroid position and the direction of the sharpest vertex. Do the other vertices not matter? In any case, we should probably be able to compute which edge we would be splitting and stuff like that.
- malgorithms 13y agoThey matter in that they might ram you :-). You also have another ship's moment of inertia, which tells you something about it. But no, you're not provided other ships' geometries. I could change this, but likely not during the contest.
- deleted 13y ago[deleted]
- octatone2 13y agoHaven't received a verification email, can't create species, can't edit profile to check my email was correct ... want to play ...
- triplesec 13y agofor luddites, 10 Btc = $300-2000 depending on the exchange rates of the past two months, or even possibly $5000 by the time you win. Possibly a quite uncertain prize!
- psionski 13y agoThe certain prize for me is having fun and learning CoffeeScript and physics. That's really more than I'd expect from any game :) The 10 BTC would be nice, but meh.
- Cakez0r 13y agoWould be handy to expose the AI step delta in the API.
- malgorithms 13y agoThis is uncertain. The game steps at a specific rate (the physics is deterministic) but does not wait for callbacks from your AI to proceed with the game. If a specific ship hasn't replied to the last request for instructions, the game won't call it the next round. I was thinking that rather than providing the game step in the API, the simplest thing is for an AI to study the gametime and draw its own conclusions.
- Cakez0r 13y agoAfter playing around with it for a while, it hasn't actually made that much difference to me. I perhaps shouldn't have made the suggestion so hastily ;) Really great fun to play. I love it.
- ZirconCode 13y agoLooks amazing. It bothered me that I had to sign up to watch the replays though, it's a pretty big threshold and I almost didn't. You might want to have a demo because watching a replay really is quite convincing. I don't know any JavaScript, but this seems like an amazing way to learn.
- darkmethod 13y agoI wish the ladder and replays were available publicly, I have a few friends that are interested but are put off from the signup form. I think if I could send them a link to a replay without signing in, they would get a kick out of it and potentially join in on the fun.
- lowboy 13y agoSweet. Now, is there any way to code in ones editor of choice and deploy from the command line? Chrome tab crashed on me while I was editing my species and I lost all of my changes.
- jedanbik 13y agoThis has potential to be really fun! But how to select others to compete?
- psionski 13y agoWhen you click "Add team" you can add other species, but I think only the open-source ones and you get no ladder points (but it's very useful to test your design). To compete against everyone you'd have to "submit to ladder", I think.
- jedanbik 13y agoOh, I just meant to compete against specific species. Seeing that they use a Glicko rating system makes more sense; not having the option to compete against a specific species means that top ranked players won’t have to worry about tradeoffs between game activity and game rankings. Well maybe they’ll still worry, but they won’t be able to do anything about it except build stronger AI.
- Zren 13y ago> vectors are 2-item arrays (for example, a velocity might be [2.3, -1.2]) Would be nice if they mentioned what each item was. Is it magnitude + direction or deltaX, deltaY?
- kandalf 13y agoIt would be great for debugging purposes if all ships could return an array of color coded vectors (or even just a single vector) to display every step.
- Anderkent 13y agoI created a typescript declaration file for the environment of nodewar, if someone wants to try writing it in TS. https://github.com/JacekLach/NodeWarTyped https://github.com/JacekLach/NodeWarTyped
- robinator 13y agoCan I remove my node from the ladder? I am so ashamed.
- reledi 13y agoDo any beginners want to team up? Going to give this a try to learn more JS and learn how to build an autonomous agent, I don't have any intention on winning.
- zhodge 13y agoI want to! See my comment regarding infrec's offer to help.
- shazow 13y agoI am really excited about this. Here's some feedback from my first impressions: 1. Offline support: I'd love to work on this offline, write unit tests, use vim, all those nice things. You mentioned elsewhere that you're running the server-side simulation in Node—would be great if that was open sourced. :) 2. Better auto-saving: If offline support isn't available, editing online needs to be improved. I was messing around with my AI while on a shuttle with flaky WiFi. I saved my progress and navigated away. Later I came back, and turned out my progress was not saved. (a) Let me know if saving failed? (b) Maybe use LocalStorage as a fallback? 3. Better built-in library for common operations: o.lib.physics is a great start, but I'd love to not have to implement things like: "orbit around TARGET at distance X", "maintain distance X from TARGET", "orient towards (or away from) TARGET", etc. Sounds like these kinds of libraries could sprout organically from the community, but it's not obvious where to find them.
- Cakez0r 13y agoTo implement point #3 would go against the spirit of the competition, I think. Part of the challenge is to implement a good core of navigation code. Unit testing a physics simulation could be quite tricky too.
- coherentpony 13y agoUnit testing a deterministic one is not too bad. Unit testing a stochastic physical system is a nightmare.
- carb 13y ago@3 I hope that they don't implement that. Good navigation code is half of the game. If you want to see examples of competitions like this, many teams for Battlecode hosted by MIT have open sourced their code.
- i_cannot_hack 13y agoGreat game! However, I would suggest changing the behaviour of the moons. Right now the moons are such a big threat that the best way to win is to simply devote all resources to avoiding them, and hope the enemy collides with them before you do (as all the top bots in the ladder clearly demonstrate). This not a very fun strategy and makes for quite boring matches. One way to avoid this problem is to make the moons harmless. They still pull you in and push you around, but when you collide with them nothing happens. Thus they would no longer be the biggest threat on the field, but rather a nonfatal annoyance. The biggest threat on the field would instead be your enemy, and to increase your chances of winning you have no choice but to actively try to kill him. The moons will still have to be dealt with accordingly by the ships if they want to be effective, but a majority of the resources will now go towards battling enemy ships. Much more fun to code and to watch.
- Cakez0r 13y agoOr change the 3 moons to an expanding black hole that pulls you in. Perhaps that could be another level ;)
- uvdiv 13y agoI think the moons are okay. The very early algorithms we're seeing are primitive -- they try to avoid moons by thrusting directly away from them, which is a bad idea. When people introduce proper route planning, moons will look less overpowered.
- lrem 13y agoNot really true. A quick hack that does two things (evade moons and kill queen) provides already some interesting chaos. Look at my Ripoffs (only 1 match in ladder right now, but wins with the #6 pretty consistently). As people develop some better bots, evading moons will be less and less noticeable part of their behavior. Especially if some of those will be open sourced too.
- Cakez0r 13y agoThis is awesome fun! Just spent my whole evening toying around with it. GOGOGO Prima Polys and Totally Turtle!
- james4k 13y agoIs there no way to get the direction vector of the ship? You have rotation in radians, but no way to convert that.. not even cos/sin to roll it yourself. Am I missing something?
- teraflop 13y agoIt's just Javascript, so you should have all the usual array of built-in functions. https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Math https://developer.mozilla.org/en-US/docs/JavaScript/Referenc...
- james4k 13y agoHmm, I thought I tried using a Math function without success, but I must have done something wrong. Thanks for steering me off the wrong path.
- ozten 13y agoGreat way to short sell BTC!
- deleted 13y ago[deleted]
- joshblake 13y agoBeen playing with this for a few hours. Very interesting stuff! I'll second what shazow said about auto-saving and resiliancy to internet/browser issues. The page has crashed multiple (7-10) times in Chrome. Fortunately I didn't lose too much, but even losing a couple obscure changes is rather annoying. The UI for reloading your own species was rather confusing at first. I thought when I reloaded the page I would have my species there already and freaked out when it wasn't! Eventually I figured out I had to Add Team with my existing team. I'd love to have a bit more robust vector libraries, such as doing vector dot product (vector projection) and vector rejection, in additional to just speedTowards. It would be particularly helpful during testing & debugging to have a mode with no moons, or perhaps just a single static moon in the center. Continue having the three moons for ladder and competition, but it'd be super to have the more basic map to make it easier while training my geometries how to move and maneuver. Maybe limit the option to when only one team is loaded. Thanks!
- deleted 13y ago[deleted]
- jeremyfp 13y agohow do i compete against others in the ladder? i have a team that seems to beat anyone i test against, but i can't figure out how to rank up.
- darkmethod 13y agoThere is a "Submit to Ladder" link under the title of your species. From what I can tell, after clicking that link, the ladder takes over and sets up matches automatically.
- rurabe 13y agonot worth quite as much as 14 hours ago hah
- FiloSottile 13y agoA thing I would love is deploy via git push. Simply activate a post-push hook that runs a specifically named js/coffee file! This would both accomodate for offline editing and any compile-to-js language.
- pepijndevos 13y agoCan I just see some matches without signing up? Juts a video if you must.
- jasonkester 13y agoNo undo in the editor makes things a bit painful. It just eats CTRL+Z, so If you accidentally delete a line, you pretty much have to exit (remembering not to save), remove your team, re-add it, and click edit again. Other than that, I forsee thousands of dollars in otherwise billable hours evaporating before my eyes. Nice work!
- aymeric 13y agoI have ported a programming game http://terrariumjs.wiselabs.net http://terrariumjs.wiselabs.net a while ago (javascript). You can write the AI of a herbivor or carnivor, and try to invade other people's terrariums :) The documentation is a bit lacking though.
- lrem 13y agoIt seems that the ladder updates are slow. Is it intentional that each bot gets one match per hour? Is it processing power determined? If the latter, can we somehow contribute cycles to it? I've got a piece of iron sitting mostly idly, so I could spare a VPS. I guess many people here could pledge something similar for a fun project like this.
- mikeycgto 13y agoPut this together (quickly) so I can dev locally and upload new code with a single command: https://github.com/mikeycgto/nodewar-tools https://github.com/mikeycgto/nodewar-tools My "species" code then uses grunt for all sorts of awesomeness (basic tests, concatenation of files and autoupload on save).
- darkmethod 13y agoI'm having way too much fun with this.
- darkmethod 13y agoI kinda wish there was a dedicated forum/community of some sort for this.