"wave surfing" is necessary to beat AI-guns (statistical learning) to ensure your bots are "flattening the gun curve", to minimize the gradient, minimizing any system (be it statistical or neural-net) from learning your patterns. (Actually, good bots use wave-tracking on the offense: to collect statistics on how the *enemy moves* in relation to your own shots, and use those statistics to try and predict the enemy's movements) Risky yes, but "wave surfing" bots can keep track of when the enemy takes a shot, how much energy was used in the shot (0.1 bullets travel faster than 3 energy bullets), and calculate where drones need to position themselves to protect the radar drones. Great tool to explore programming at all levels. GAs exploit all loopholes, pretty interesting. Tried to then increase fitness based on movement, then it would just oscillate at one spot. I tried to deduct the fitness if it hit a wall. Mind you these were simple homemade nets, not sure deep learning even was a concept then. What to train on? So I used genetic algorithms to train this part of the net. That actually worked fairly well with a really simple net.įor movement, however, deep-RL etc wasn't that big yet, so I struggled a bit. One net that would learn the movement patterns of opponents (offline) and predict positions and shoot there (since bullets have move time). And when that works apply some more rules and geometric calculations. If close to wall turn, if pointing towards enemy shoot, etc. Most people went for an "if-based" strategy. Someone at work once made a Robocode tournament, and we spent a day paid playing with it. Of course there will be people making discord bots out there laughing at how simple this sounds, but the combination of reverse engineering as well as applying that to affect a new feature in the app I thought was pretty novel. So I took each frame of a gif, uploaded to their servers, and then used the api to update the message at the rate of the gif. After that I had two things: a way to get files on their servers, and an api to update messages. So I reverse engineered the ios app as well to find a way to get a file on their servers (I don't recall why I couldn't do it from the web api). The only problem was the file had to be on their servers or a client wouldn't display it. So I reverse engineered their api for sending/updating messages and I realized you could update a message that contained a file. What stops you from using discord messages as a database? :p I really enjoy this type of stuff though, is there a term for it?Ī while back after skype got rid of their sdk I was annoyed that the app didn't unfurl gifs. Like I said, genius yet very very hard to not see as deliberately chaotic-evil. If you presume the setup message is protected by some sort of key you'd be sorely mistaken :D your Wi-Fi SSID and PSK are available in plaintext to anything and everything that happens to be in monitor mode at the time. Soooo, when you "pair" such a lightbulb using this protocol, the companion app is actually just spraying empty packets with specific packet lengths to 255.255.255.255, and the lightbulb's ESP8266 (or similar) is sitting in monitor mode and circularly-logging the lengths of the packets it sees into a buffer in memory until it sees a valid setup message. TIL that Wi-Fi encryption is vaguely akin to a VPN, in that it encrypts at the TCP/UDP/etc level, not the IP level, and TIL also that Wi-Fi encryption (which is a stream cipher) does not alter packet lengths. That's a bit like the protocol some smart lightbulbs use to connect to Wi-Fi networks, which is simultaneously genius and depressingly dystopian.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |