Well-deserved Congratulations to the Battlesnake team on joining DevCycle! It sounds like an excellent fit for the team, and I couldn't be more excited for you!
I'm also thrilled to hear about your vision of Battlesnake going forward. I liked the quote about "the ultimate side project" I think it really captures what brought me into Battlesnake and kept me hooked.
If you're reading this, you already know how much I love Battlesnake and the community I've found here. I really enjoyed hosting the community tournament last weekend.
I'm here to stay, and I want to help support the community however I can
I've always been a tools and systems maker. I enjoy making things for other developers. I'd make a framework rather than an app, and it might turn out that I enjoy working on a game engine more than making a snake.
So this post is going to be my thoughts on Battlesnake going forward.
To be explicit and set the stage, I am currently a community member and moderator in the Battlesnake Discord. I've been playing Battlesnake for about 2 years now. I've never been formally affiliated with Battlesnake.
I'd like to "apply" to become part of the "Core Team."
Quotes because part of this post will be more detailed about those terms and ideas. But again, nothing here is official; it is my proposal/thoughts.
Every project needs a core team that maintains the service and acts as a steward of the project. For Battlesnake, this has historically been the Battlesnake company. I propose a new "Core Team" is created to take on these duties. Practically I think this will be composed of any and all ex-Battlesnake employees who want to participate (and potentially myself and other interested community members)
The core team would take over the duties of the Battlesnake Company. In the future, if Battlesnake grows, this could become multiple teams as necessary. But a single core team would likely be enough today.
Can members of the "Core Team" still compete in Battlesnake? Historically Battlesnake employees have not competed competitively in Leagues or Tournaments. I'm not sure this was a written rule, but it's likely worth discussing with the community. I like making snakes like Hobbs and Irene, but I think I'd "retire" from competition if the community feels that is best for the Core Team.
With being a more community-supported project, I think Battlesnake needs a way to agree on decisions and proposals. I'm specifically inspired by the Rust project, which says this about RFCs or Request for Comments.
The "RFC" (request for comments) process is intended to provide a consistent and controlled path for changes to Rust (such as new features) so that all stakeholders can be confident about the direction of the project. Many changes, including bug fixes and documentation improvements, can be implemented and reviewed via the normal GitHub pull request workflow. Some changes, though, are "substantial", and we ask that these be put through a bit of a design process and produce a consensus among the Rust community and the sub-teams.
RFCs could be a great way to introduce changes to the engine and potentially even propose and finalize the rules of new Game Modes.
Adopting some RFC processes would also be excellent as an extension to the "ultimate side project" and expose developers to an RFC process. I know I have yet to directly participate in an RFC process, and Battlesnake seems like the perfect opportunity.
In my mind, there is an immediate need to be addressed, which is hosting costs. Hosting will be covered at the current scale for a few more months, but in the summer, that will need to be handled by the community. This is probably the core team's primary concern for the time being. Interweaved with that could be the ongoing/current infra and engine changes, as I imagine they impact the architecture and cost.
I think there are two directions that can be taken for hosting, and they can likely be looked into in parallel.
A hosting partner that can sponsor some/all of the hosting costs
Reducing the cost via tuning of infrastructure and via rearchitecting the app
I'd love to see 1) work out, but I feel like that's where I can't provide as much personal support.
The second option though, is something I can do! I think this probably requires some investigation into the current architecture to see how best to optimize. I've been really interested in using S3 and SQLite for app storage in different contexts, and I'm wondering if using those code reduce the database costs of Battlesnake. But without actually seeing the current infra, this is kinda a shot in the dark.
Once the infra is stable and sustainable, I'd love to see things like challenges brought back, but first things first.
Let's get another tournament scheduled!
If hosting is covered for the next few months, let's use it!
As I said in the intro, I had a lot of fun hosting and would be happy to do it again. We might be best picking an existing game mode for this tournament, so we could stick with another Snail Mode or any current mode. With the looming hosting cost issues, most 'dev' effort is best spent on reducing costs rather than new game modes in the concise term. I want to do Chess Mode, but let's leave that for a later tournament.
So anyone have any ideas for our next tournament?! Hit me up in Discord if you do! If you aren't in the Battlesnake Discord definitely stop by: https://play.battlesnake.com/discord
My weekly newsletter tailored at developers who are eager to grow with me!
Every week will be unique, but expect topics focusing around Web Development and Rust