There’s that whole health mechanic that we had to add, again, in response to players being creative. I’ve mentioned we’ve been doing this for a number of years… The first time we held it, there was no health. So this is a mechanic we added early on to make it competitive. So it gets really advanced in a really sort of like gentle way. So there’s this really interesting, natural progression of like you start just by deploying a server that just goes a loop, or just goes up, or something like that, and then you get into concepts like concurrency, you get into concepts like code optimization, you get into concepts like collocation, and data centers, and this kind of stuff. In order to be a competitive battlesnake developer you have to think about not only latency, which we talked about, but you have to think about concurrency, of like “How can I be in multiple games at the same time and guarantee response times in all these different games, so that I’m competitive?” And what we really like about this is it mimics real web development. Yeah, I think that’s very much part of the platform, and as you explore and you start joining different ranked arenas and you start playing with different friends and people at your school, you learn that your battlesnake can be in multiple games at any given time. So most of what you’re seeing when you’re interacting is actually replays, buffered replays of pre-run games that usually happened 5-10 minutes ago. And then part of what we do on the platform is we slow games down to make it much more consumable to most people. If you’re watching the game in real time, the battlesnakes that are in the game are very fast, and the game plays back really fast. But it’s all happening in real-time, so if you don’t hit that window, then your snake will just move forward at your own peril. Then you have 500 milliseconds to decide that. Your response is really simple - it’s up, down, left or right. And you have a 500 millisecond window to get your response back to us and back to the game engine. What’s your move?” And all of your opponents are gonna get the same requests in real time as well. It’s interesting – so the game itself… I can talk about why, because I think it’s interesting, but we’ve actually put a timeout on the request, so that you get a request from our game engine that says “Here’s the current game state. And we can talk about where it goes from there, but that’s the base level you wanna be at. So that’s kind of what you’re wanting to bring to the table… If you know a little bit about how to deploy an app, or you’re looking to figure out how to deploy a web server and you understand what a basic HTTP API might look like, that’s a really good starting place to start getting involved. And the game engine, which kind of runs centrally and is heavily concurrent, is constantly sending web requests to your Battlesnake, which is represented as this live web server that’s somewhere it’s a URL that’s reachable. So it’s kind of like a webhook API that we publish, and so you’re actually programming the server side of the relationship. And then the actual building of a Battlesnake - what you’re doing is you’re coding a web server to match an API. So most Battlesnake developers have a little bit of programming under their belt, they’re familiar with a common language, they’ve deployed some apps and they’re familiar with that process. We’re not necessarily teaching you to program, it’s more taking people that know how to program a little bit and giving them a venue to explore that on their own. Typically, a strong Battlesnake developer is typically already a programmer, to some extent. Yeah, I think this is another thing that makes Battlesnake unique.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |