[33] Poison And Resting

04/27/2021, 11:15pm

I've been chipping away at more content and bugfixes for the game. Not a lot of screenshots to share, so this will be a quick update.

Poison

In the codebase, the functionality is called "Poison", but it basically just refers to any spell effect that deals damage over time.

Spiders now have a venomous bite, and being inflicted will "poison" you, dealing damage over time. You can fix this by consuming some form of Antidote. I also tweaked a few other monsters on the Isle to inflict various debuffs.

Hopefully this makes combat a bit more interesting. The mechanics behind it have stayed the same for a long time now. Tip: You can make Antidote Buns yourself by cooking Deadcap mushrooms and Dough together.

Resting

Resting is the opposite of Poison. Players that are now out of combat for a little while will gain the Resting effect, and slowly start regenerating health. I added this because it was annoying to have to go cook food to heal after every little combat encounter.

After initial player feedback though, it is a little overpowered in the current form. I need to do another pass on the feature, so I'll be writing about that some time soon.

New Belmart

I revamped Belmart, it's pretty spacious and has a bit more going on now. I'll be adding even more stuff to it soon.

This has actually been in progress for 2 months, but I just recently wrapped up the work.

Metrics

This was a really fun thing to work on. Instead of doing LD48 this past weekend, I did a little rat wizard dev-ops jam.

This is a Grafana dashboard, reading game server metrics collected by Prometheus. I spent a ton of time figuring out docker to get these set up locally, but after some initial frustrations it was surprisingly straight-forward to get the entire thing working. I've never worked with a time-series database before, so my dashboard is lacking, and I'm still figuring out the best metrics to display and the best ways to display them. All of my past experience is with event databases and more SQL-like query languages, so learning PromQL has been interesting.

I'm using the prometheus crate, which is really cool. It makes it pretty simple to collect metrics, such as the timing of certain game systems:

// Database Sync let metric_timer = metrics::METRIC_DB_SYNC_HISTOGRAM.start_timer(); db_sync_dispatcher.dispatch(&world); metric_timer.observe_duration(); // Network Sync let metric_timer = metrics::METRIC_NET_SYNC_HISTOGRAM.start_timer(); network_sync_dispatcher.dispatch(&world); metric_timer.observe_duration();

I'll keep working on these as time goes on and as I collect more useful metrics. I'm just glad to finally have the infrastructure taken care of, and so far it's been working well, even on the official (and remotely hosted) game server. Speaking of which...

Play Antorum Online

I'm sneaking this in here. You can actually join the discord, download, and play the game now! I've been running another alpha test with a limited number of players, and it would be cool to add some more. Click here to join the Discord server, where you'll find download links. If you have been reading these dev logs, now is your chance to get involved as a player and help shape the game.

As a quick disclaimer though, the game is still far from done. There is no tutorial to help you out, so be aware that you will probably be a bit clueless. That's what the discord is for though, I guess.

Other

  • Implemented an '/add-effect' admin command for testing spell effects
  • Implemented support for consumables clearing a specified spell effect
  • Added some new NPCs to fight around Antorum
  • The Ritual skill guide now displays a list of Rituals that can be performed
  • All scroll bars in the user interface should scroll much faster now
  • Added a new gear set and weapon, craftable from spider parts
  • Changed the combat, defense, and HP of all NPCs in an effort to re-balance the game
  • Implemented option for certain spell effects to not persist on player logout
  • Added experience bars to crafting, ritual, and cooking windows (instead of only being visible in the skill guide window)
  • Signposts can now actually be read
  • All NPCs now have more complete and interesting dialog trees

- Declan (@dooskington)