I've seen other robot fighting games, but I always liked the low-level-programming aspect of Robowar. It used a stack-based machine language with IO via register accesses, and it had some instructions for complex functions like trigonometry, which still only took a single cycle, so it was easy to reason about performance. I guess what I liked about it was that you had to be clever, and it gave you the right tools to be clever.
Unfortunately, while RoboWar is a lot of fun, after many tournaments it is somewhat played out. Just about every paradigm and technique has been extensively tested, so it's hard to come up with a surprising or exciting new idea. A successor that stuck to the simple low level machine programming concept but introduced new concepts would help.
Byte Arena is structured in such a way that we can plug in entirely new Game Modes with gameplays (and vizualizations) radicaly different of deathmatch.
So I can totally see such a gamemode happen, not based on physical movements but for instance on resource management.
I like that ByteArena is language-independent. That's a pretty uncommon feature, in my limited understanding. Good luck, folks!
I've also been thinking about building one of these based on killing the barrier of entry inherent in telling people "you can play, but you need to code a bot -- here's a tutorial". Perhaps it's just me itching for a fun little side project, but I've always wanted to code up a server and client as projects on github that could just be cloned, and use GitHub's API to e.g. automatically detect all repos forked from the client repo and run them in a persistent world -- and then also detect all servers forked from the server repo and run all clients across all worlds with some free hosting.
Obviously, there's a lot of security and stability concerns with hosting arbitrary code and effectively spinning up free instances for anyone who just clones a repo, but I think it'd be a super-simple entry for this kind of game that really benefits from having more players (especially when you bundle in some kind of skill-based matchmaking so newer players are often matched with players of their own skill and "move up" instead of just going against the top players all the time).
Is there any reason something like the above wouldn't work? I'm honestly surprised I haven't seen many "just clone this repo and it's automatically synced to your client hosted here" AI games.
There was some java version with distributed processing for battles so the results were the average over many battles on different machines. There was also the local graphical client which just ran on your own machine.
I coded up my own trig functions which were no more accurate than the arena could possibly use.
Locally my bots consistently won, remotely they lost badly.
My machine was very very slow.
It boils down to interruptibility and actually counting time slices (accurately) if you do not get that right you reward the physical machines not the code.
*  ba: The CLI
*  core: The lib containing the bulk of the implementation
To make Byte Arena, we made also made these projects:
*  Box2D for Go: Box2D 1:1 port to Go
*  ECS: An efficient and easy to use Entity Component System for Go
*  Schnapps: KVM tooling and API
It's cool that people are sharing other projects alike, there is some kind of curated list of this games/playgrounds?
Currently we don't have enough material for such a list tho but we can create an awesome-bytearena list.
I'd like to see a twist where you could actually engineer your own weaponry using simplified physics, sort of like a cross between Kerbal Space Program and crobots, but with WebGL. I once coded a two player button bashing QBasic snake version something like that, where you had competitive weaponry like flamethrowers and manually future-operable mine deployment. It was popular in our school for a few weeks.
Major improvement is on the way as we've worked with game artists to make up colorful worlds and agents specificaly for Byte Arena.
It's gonna look like this:  (actual rendering of the visualization)
Airmash is looking really cool, we'll definitely take a look at it.
 https://screeps.com (I'm not affiliated with it)
Byte Arena is similar in that you're expected to code agent behaviours to get it in the game.
What's different though:
* we support every programming language that has networking features
* in BA, you define behaviour for a single agent and not for a swarm
* we will support multiple game modes (deathmatch, CTF, speed racing) for agents that'll specialize in these game modes
* the perceptions in BA are very low level, and thus if your actions are within physical contraints, you may do things we have never imagined possible (it's sugarcoated by SDKs wrapping things for you if you don't want/care to make sense of the perceptions yourself)
Having example bots in other popular languages would be perfect. People could focus on what's important and don't worry about integration details.
> it should be highlighted in the docs, a short guide would help as well I guess
I had the feeling these points were adressed already in ; are you thinking about something more prominent in the documentation ?
> having example bots in other popular languages would be perfect
You're right; we're definitely going to focus on this
Wish I'd gotten in on that, but Bolo still exists, so I suppose I still can.
I remember reading about it on HN a couple of monthes ago, and it was definitely an inspiration yes.
But although competition is definitely a part of Byte Arena (and will be in the future), it is also about having fun making stuff, and self improvement while doing so.
However, more dramatic camera angles and close-ups of the action would be awesome!