HN user

drzel

208 karma
Posts18
Comments50
View on HN
    plans = { 
      1.month => {standard: 10, pro: 50, enterprise: 100},
      1.year => {standard: 100, pro: 500, enterprise: 1000}
    }
    
    plans.each do |interval, details|
      details.each do |name, amount|
        Billing::Plan::Factory.find_or_create_by!(name: , interval:, amount:)
      end
    end

FortressOne is a fork of 1996 QuakeWorld Team Fortress. International tournaments are still played and streamed in Twitch. Next weekend there will be players from around the world meeting in Sydney Australia for a in-person LAN event.

The copied data will one day get out of sync. And you will have a difficult and urgent issue to solve.

Query complexity on the other hand requires knowledge, to make the query work and again to make it fast. But it won’t be urgent, and having made it work you will be a better developer.

Of course, sometimes we need to copy / cache etc. but avoid it if you can.

Modern QuakeWorld has the option of enabling ‘air step’ which allows surfing up stairs. I don’t think the deathmatch purists use it, but it’s become standard in FortressOne (modern QWTF fork).

In 1997 I played my first online multiplayer game. It was QuakeWorld Team Fortress. It was incredible, janky, fast, ugly, complicated and absorbing. I found a community of other players through IRC and devoted 8 hours a day to playing this treasure.

By 2005 (a very decent shelf life), the game was all but dead. This was a significant part of my life gone.

In 2018 I found the source, forked it and began FortressOne, a modern port of this classic game.

There are now a thousand people on our discord channel and daily games in four continents. I’m over the moon but more work needs to be done. This year my goal is to get it on steam.

I maintain a free, open source, fast paced shooter that really only works with <100ms pings. To this end I have a dozen servers around the globe. Each server runs a docker-compose with four instances of the game server (each for 24 players), along with some auxiliary services that do things like download updates, upload match demos and statistics.

I frequently need to re-provision new servers and close existing ones.

I've been doing all this with the help of docker-machine (now deprecated), and a collection of handy bash scripts. While this has worked, it's become more and more fragile and I need something better.

For years I've resisted Kubernetes because I keep hearing "premature optimisation", but at this point I'm not sure I have any other options. So before I dive head-long into Kuburnetes by what feels like necessity, how else could I possibly: - Push button provisioning of new hosts across a number of cloud providers - Monitoring so I can restart services under certain conditions. - Notification of failures etc. - Automatic / continuous deployment across all servers and regions.

I have all those things, but I used a very specific email address for AWS.

Basically, name+unique_identifier@domain.tld

The unique_identifier is unique to this AWS account.

Yep the email address is of the format: name+serverlocationyear@domain.tld and has absolutely only ever been used for this one purpose.

FortressOne dev here. Noticed quite a few 'TF' bots that I hadn't heard of. Anyone know more about these? Or even just the vanilla bots? Looking for something that can bunny hop mostly.